这几年macOS的安全性要求越来越高,Apple Silicon的Mac电脑发布后,已经默认取消了对第三方内核扩展(Kernel Extension)的支持;此外,Big Sur开始也强化对系统扩展的限制。但是,仍然有部分设备由于各种原因还没彻底完善驱动,比如Apogee系列产品,安装驱动软件时需要手工降低安全性要求,加载Kernel Extensions。这就带来一个问题,删软件的时候会删不干净。稍微搜索了一轮,终于找到了位置。
内核扩展
首先,到/Library/StagedExtensions/Library/Extensions/
这个路径,可以看到安装的所有第三方内核扩展。如果和我一样装了Apogee驱动的,这里是5个驱动目录。
找到地方就容易卸载了。关机后长按电源/TouhID键,启动电脑时选择进入“选项”后,在菜单栏进入“终端”:
cd /Library/StagedExtensions/Library/Extensions/
ls
rm -rf *.kext
如果只是删除某一个驱动,当然可以把最后一条指令改成特定的驱动名。
最后关闭终端并重启电脑就行了。
顺便说一句,Apogee的安装包里有卸载程序,要先运行卸载程序后再做上面的手工步骤。安装包里面信息也不太全,对Apple Silicon的电脑,建议参考官方安装文档。
系统扩展
有些软件为了系统级权限等,用了系统扩展(System Extension)。它和内核扩展是不同的,内核扩展基本上是硬件驱动程序,系统扩展可能还包括网络类,比如一些代理、过滤器等。系统扩展可以用这个指令查询:
systemextensionsctl list
如果你安装了Adguard,在这里就可以看到com.adguard.mac.adguard.network-extension
。同时这里会有TeamID字段。
一般来说,软件本身会管理扩展,这个扩展会跟着软件卸载干净。如果极个别情况需要手工操作,那还是上面这个指令就行(注意替换<teamID>
):
systemextensionsctl uninstall <teamID>
总之,现在还在让你装内核扩展的,都是反应偏慢的厂家了。最后吐槽下,Apogee号称迭代推出了新一代的控制软件Apogee Control 2,但每次在我的电脑上打开时,都有个ApogeeMessager
的进程疯狂占用CPU,唯一值得欣慰的是它只占一个核。应该有几个月了,还没看到修复的希望(外站也有抱怨的,也没官方回应),只能手工干净卸载了,反正我的Apogee Duet现在只是个备用DAC。