MacOS High Sierra KEXT 加载 - 有没有办法取消用户批准?

标签 macos macos-high-sierra kernel-extension

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

用户可以通过点击Approve来批准第三方KEXT按钮在 Security and Privacy .
但是,一旦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/

相关文章:

java - CodeNameOne 设计器堆设置在哪里?

c - GDB 中断 ptrace 和其他 API 调用在 OS X Mavericks 上不起作用

c - ld : file was built for unsupported file format on Mac OS X

c - 如何在 mac os x 的内核扩展项目中使用 zlib?

eclipse - Eclipse 中的数据流 : Cannot run program "gcloud"

macOS (10.13 High Sierra) 不再在 com.apple.screensaver 中存储屏幕保护程序设置

macos - 在 Mac OSX 10.13.2 上修复 Homebrew 软件

python - Apache Airflow 不调度任务

macos - macOS 内核如何验证 Security.framework 的完整性?

c - 防止 macOS 通用键盘驱动程序捕获 USB 设备