如何恢复MacOS对已授权第三方安装程序的默认不信任状态?
解决MacOS重置Kext信任状态的只读数据库错误及安全指南
问题原因
你碰到的「Error: stepping, attempt to write a readonly database (8)」,是因为系统完整性保护(SIP) 锁住了/var/db/SystemPolicyConfiguration/KextPolicy数据库——哪怕用sudo,正常启动模式下也没法直接修改这个受保护的系统文件。
分步解决方法
1. 临时关闭SIP(操作完必须重新开启)
- 重启Mac,按住
Command + R进入恢复模式 - 打开「实用工具」里的「终端」
- 输入命令关闭SIP:
csrutil disable - 重启回到正常系统
2. 修改KextPolicy数据库
- 打开终端,运行:
sudo sqlite3 /var/db/SystemPolicyConfiguration/KextPolicy - 执行删除命令(对应你要重置的三星SSD驱动):
DELETE FROM kext_policy WHERE bundle_id = 'com.samsung.portablessd.driver'; DELETE FROM kext_policy_mdm WHERE team_id = '8S33FS7Q5Q'; - 输入
.quit退出sqlite环境
3. 立刻重新开启SIP
- 再次重启进入恢复模式,打开终端输入:
csrutil enable - 重启回到正常系统
PRAM相关说明
PRAM和kext的信任授权完全无关,重置PRAM不会改变KextPolicy里的记录,没必要折腾这个。
安全操作提醒
- SIP不能一直关:这是Mac的核心安全屏障,完成操作后必须马上开启,别让系统裸奔
- 先备份数据库:修改前先复制一份原文件留底,防止误操作搞崩驱动:
sudo cp /var/db/SystemPolicyConfiguration/KextPolicy /var/db/SystemPolicyConfiguration/KextPolicy.backup - 只删目标条目:别乱删其他kext的记录,不然可能导致其他硬件(比如显卡、网卡)驱动失效
- 确认操作结果:修改完可以再查一遍,确保目标条目已删除:
如果没有返回结果,说明操作成功SELECT * FROM kext_policy WHERE bundle_id = 'com.samsung.portablessd.driver';
内容的提问来源于stack exchange,提问作者nostromo
相关产品推荐
相关产品推荐

