Macos 如何以编程方式读取mac系统首选项?

Macos 如何以编程方式读取mac系统首选项?,macos,electron,system-preferences,Macos,Electron,System Preferences,我试图告诉用户是否设置了特定的系统首选项。也就是说,应用程序需要知道他们是否提供了完整的磁盘访问,是否在可访问性下选择了我们的应用程序,等等,如下图所示 我知道我们可以这样做 defaults read com.apple.AppleMultitouchTrackpad defaults read com.apple.security.Privacy_Accessibility 但我很难找到完整的磁盘访问、文件和文件夹,以及安全和隐私下的可访问性 某处有com.apple.XXX的列表吗?

我试图告诉用户是否设置了特定的系统首选项。也就是说,应用程序需要知道他们是否提供了完整的磁盘访问,是否在可访问性下选择了我们的应用程序,等等,如下图所示

我知道我们可以这样做

defaults read com.apple.AppleMultitouchTrackpad
defaults read com.apple.security.Privacy_Accessibility
但我很难找到完整的磁盘访问、文件和文件夹,以及安全和隐私下的可访问性

某处有
com.apple.XXX
的列表吗?

我基本上是想做一些类似的事情

defaults read com.apple.AppleMultitouchTrackpad
defaults read com.apple.security.Privacy_Accessibility
我可以用类似于electron的工具打开系统首选项窗格

shell.openExternal('x-apple.systempreferences:com.apple.preference.security.Privacy_Accessibility')
所以我想可能有类似的方法来读取设置


要确定是否启用了可访问性访问,可以使用
AXIsProcessTrusted
及其对应的
AXIsProcessTrustedWithOptions
。两者都是
应用程序服务的一部分。从:

如果当前进程是受信任的可访问性客户端,则返回TRUE;如果不是,则返回FALSE


似乎无法检测FDA是否启用;这方面没有API。一些开发人员试图通过读取已知的受保护文件并查看其是否有效来测试访问权限;但这种方法是脆弱的,苹果确实反对这种做法。更多讨论。

请注意,这些隐私权限是安全策略,而不是普通的首选项,因此您无法使用常用的
默认值
etc命令检查或设置它们。检查
文件和文件夹如何?@gordondavison您如何通过CLI访问它们?@AlexCory我认为没有办法。整个体系相当不透明;看到了吗?@AlexCory整个权限系统非常分散,就像Gordon说的,不透明。一些隐私设置有一个API,你可以检查,但大多数没有。值得阅读/观看WWDC 2019课程,您可以阅读有关
tcc
/
tccutil
的内容,尽管您会发现目前它对消费者的使用有限。