如何以编程方式将OSX中的某些应用程序列入黑名单?

时间:2013-08-13 19:42:20

标签: objective-c macos blacklist

我正在尝试开发一些类似于自我控制的软件(它将某些网站列入黑名单一段时间)。但是,我希望能够在OSX上使用应用程序(例如,一个人在访问MineCraft应用程序之前必须回答一些数学问题)。

OSX SDK中是否存在某种家长控制API?我熟悉一些内核开发,但我只是在寻找一个可以查看的起点。

2 个答案:

答案 0 :(得分:0)

系统偏好设置包括家长控制选项。搜索com.apple.familycontrols以查找有关如何与可用设置进行交互的选项。

答案 1 :(得分:0)

我不相信任何允许您这样做的高级API。

但是,正如您所说,您熟悉内核开发,这是最佳选择,实际上它是父母控制的工作方式;使用内核扩展(kext)。

This article解释了内核中授权的4个感兴趣的范围。您需要编写内核扩展并监视VNode范围,该范围将通过调用kext中定义的函数来通知您所有vnode访问的kext。然后,此函数必须返回Accept,Deny或Defer之一。如果您在访问正在执行Execute操作的vNode时调用Deny,那么它将被阻止。

最后,如果您要编写任何内核代码,那么我建议您获取this book的副本,其中包括基于监视vnode范围的示例代码。