我想监视
defaults read
的输出,以检测 macOS 和应用程序在没有用户交互的情况下首选项的变化,然后显示具有相同效果的相应 defaults write
命令。我想改进我的工作流程,以声明方式配置我的设置,如下所示:
defaults write
命令。我理想的工具类似于 Karabiner-EventViewer,它解决了不同的问题,但方式相似。
如何创建一个 macOS 监控工具来检测首选项更改并生成适当的默认写入命令?任何可以帮助我实现这一目标的指导、库或现有解决方案都将不胜感激。
顺便说一句,
defaults read
?更像是defaults dread
,我说得对吗?
取决于您的目标和限制。
你能监控用户如何通过执行
defaults write
修改偏好吗? - 是.
您需要运行 EndpointSecurity 系统扩展/守护程序才能执行此操作,这需要您从 Apple 获得自定义权利。
执行命令行默认实用程序是更改首选项的唯一方法吗? - 不
你能监控应用程序偏好的任何变化,包括 CFPreferences API 等吗?
我会说,启用 SIP - No,因为有偏好守护进程/代理存储偏好缓存,并且客户端和此类进程之间的通信很可能是 xpc - Apple 不允许与此类 IPC 进行交互。
你能用禁用的 SIP 实现这个吗? 是,编写驱动程序,将一些钩子库注入进程,钩子首选项 API 或其他任何东西。