【发布时间】:2021-01-22 21:46:19
【问题描述】:
我有一个 Packages created 安装程序,人们总是忘记允许加载 kext 的同意,是否有在隐私设置中检测用户是否允许,以便安装程序可以提示用户允许它?
【问题讨论】:
我有一个 Packages created 安装程序,人们总是忘记允许加载 kext 的同意,是否有在隐私设置中检测用户是否允许,以便安装程序可以提示用户允许它?
【问题讨论】:
我知道的唯一一种方法是在 bash 脚本中使用 kextstat 来检查 kext 是否运行以确定用户是否允许。
【讨论】:
引用the official documentation on the kext approval "feature":
要确定 KEXT 是否因为未经用户批准而无法加载:
如果您使用的是 kextutil 或 kextload,请检查退出代码 27。此外,kextutil 将产生错误消息系统策略阻止加载内核扩展。 如果您在 IOKit/kext/KextManager.h 中使用 KextManager API,请检查结果代码 kOSKextReturnSystemPolicy。
因此,您可以从安装程序包中调用 shell 脚本或类似脚本,或使用安装程序插件来调用 kextload/kextutil 或 KextManager API。请注意,在 Big Sur 上,用户还必须重新启动才能加载 kext,因此即使在用户批准后 kext 也不会立即加载。
【讨论】: