【问题标题】:Packages installer how to detect if user consent to kext软件包安装程序如何检测用户是否同意 kext
【发布时间】:2021-01-22 21:46:19
【问题描述】:

我有一个 Packages created 安装程序,人们总是忘记允许加载 kext 的同意,是否有在隐私设置中检测用户是否允许,以便安装程序可以提示用户允许它?

【问题讨论】:

    标签: macos kernel-extension


    【解决方案1】:

    我知道的唯一一种方法是在 bash 脚本中使用 kextstat 来检查 kext 是否运行以确定用户是否允许。

    【讨论】:

      【解决方案2】:

      引用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 也不会立即加载。

      【讨论】:

        猜你喜欢
        • 2014-01-15
        • 1970-01-01
        • 2013-03-24
        • 2013-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多