我已经为我的驱动程序创建了卸载程序,从/Library/LaunchDaemons
删除了匹配的plist文件,以便在下一个启动周期中不会被launchd再次加载。
但是,它似乎对我的驱动程序没有任何影响,在启动机器后仍然正常加载。
在对此事做了一些研究之后,我发现kextcache
是这种行为的原因,为了清理/使其无效,我需要touch
该文件夹所在的位置安装目标量。然而,它没有任何影响。
我的问题是如何正确地使kext缓存无效,以便在删除相应的plist文件后,launchd不会加载kext。
由于下面的答案,我使kext缓存无效。但是,我希望在我的卸载程序帮助程序所基于的objective-c中具有访问现有文件夹的等价物。
准确地说,这是我想要转换为objective-C的代码:
sudo touch /System/Library/Extensions; sudo touch /Library/Extensions
答案 0 :(得分:2)
使kext缓存无效的正确方法是
sudo touch /System/Library/Extensions
或支持从/ Library加载扩展的操作系统版本:
sudo touch /Library/Extensions
一旦执行此操作,就会自动重新生成kext缓存。