1

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

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

4

2 回答 2

1

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

于 2013-08-13T19:50:50.597 回答
1

我不相信有任何高级 API 可以让你做到这一点。

但是,正如您所说,您熟悉内核开发,这就是要走的路,实际上这就是家长控制的工作方式;带有内核扩展(kext)。

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

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

于 2013-08-14T08:50:45.477 回答