请注意,本文编写于 742 天前,最后修改于 742 天前,其中某些信息可能已经过时。
System Extensions是macOS的一套系统拓展机制,从macOS Catalina开始出现,具体可以参考Apple Developer的这篇介绍。
一般情况下,用户并不需要手动维护系统拓展。在拓展安装与应用卸载的过程中系统会自动检查并执行相关操作。
然而,既然有了本文就说明有那么一个问题。
What if an application fail to uninstall its own system extension?
这个问题发生在我正想卸载我的安全软件Avast Security上。
在执行卸载操作的时候,程序提示fail to uninstall
。
首先列出我的软件信息:macOS Big Sur 11.3.1、Avast Security(发文前最新版本)。
系统洁癖症如我,自然不指望厂商修复了,还是手动卸载吧。
搜索相关资料,得知macOS可以通过systemextensionsctl
这个命令管理系统拓展。
于是系统提示如下:
At this time, this tool cannot be used if System Integrity Protection is enabled.
This limitation will be removed in the near future.
Please remember to re-enable System Integrity Protection!
没错,就是不能卸载!
原因就是系统集成保护(SIP)的锅。有了这个机制甚至root用户也不能修改与系统及系统拓展相关的文件(也就是说root用户也没法手动关闭系统拓展)。
坑啊!
解决方案其实也很明了,使用command + R
进入System Recovery模式,通过csrutil
命令关闭这令人又爱又恨的SIP,再正常启动卸载系统拓展就行(执行过程中有种裸奔的感觉😓)。
卸载完成后别忘了用同样的方法开启SIP!
卸载完成后别忘了用同样的方法开启SIP!
卸载完成后别忘了用同样的方法开启SIP!
重要的事情说三遍,毕竟SIP还是一个非常优秀的系统保护机制的。
(希望Apple有关解除限制的承诺能尽快兑现。
3 comments
你好,还有个困扰我许久的问题,开机默认显示所有的隐藏文件及文件夹。
每次开机后 我还得手动快捷键隐藏一下,很是麻烦。去社区问了下,反馈说可能是 clear my mac删除了什么系统配置文件,导致每次开机会默认显示隐藏文件。我系统也没备份,就很难受。
mbp M1 Big Sur 11.6.2
要不你看看这篇文章?
https://discussions.apple.com/thread/250067524
一句话概括:“牛逼!”