正如某些 MacOS 开发人员所知,Apple 实现了 Secure Kernel Extension Loading

用户可以通过点击 Approve 中的 Security and Privacy 按钮来批准第三方 KEXT。
但是,一旦KEXT获得批准,是否有任何取消批准的方法?

想象一下,使用 KEXT 加载等测试应用程序的情况。

如果除了全新安装别无他法,则测试应用程序非常困难。

最佳答案

有关审批的信息存储在 sqlite3 数据库中:

/var/db/SystemPolicyConfiguration/KextPolicy

您感兴趣的表是: kext_policykext_load_history_v3 。例如。以下是查看数据和表架构的方法:
sqlite3 /var/db/SystemPolicyConfiguration/KextPolicy

sqlite> select * from kext_policy;
54GTJ2AU36|com.joshuawise.kexts.HoRNDIS|1|Joshua Wise|1

sqlite> .schema kext_policy
CREATE TABLE kext_policy ( team_id TEXT, bundle_id TEXT, allowed BOOLEAN, developer_name TEXT, flags INTEGER, PRIMARY KEY (team_id, bundle_id) );

取消批准比较麻烦,因为系统完整性保护不允许您修改数据库。因此,您需要重新启动到恢复分区或不同的 MacOS 安装,然后 cd 进入卷的根目录,并运行如下命令(替换为您的 team_id,或使用其他标准):
usr/bin/sqlite3 var/db/SystemPolicyConfiguration/KextPolicy
delete from kext_load_history_v3 where team_id='54GTJ2AU36';
delete from kext_policy where team_id='54GTJ2AU36';
.quit

关于MacOS High Sierra KEXT 加载 - 有没有办法取消用户批准?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47810161/

10-12 20:42