MacOS下卸载System Extensions

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這個号令办理系統拓展。

因而系統提示以下:

1
2
3
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有關消弭限制的承諾能盡快兌現。

Licensed under CC BY-NC-SA 4.0
利用 Hugo 構建
主題 StackJimmy 設計
xxfseo.com