我已经为我的驱动程序创建了卸载程序,它从中删除了匹配的 plist 文件,/Library/LaunchDaemons
这样它就不会在下一个引导周期被 launchd 再次加载。但是,它似乎对启动机器后仍在正常加载的驱动程序没有任何影响。
在对此事进行了一些研究之后,我发现这kextcache
是导致这种行为的原因,为了清理/使其无效,我需要touch
安装目标卷所在的文件夹。但是,它没有任何效果。
我的问题是如何正确地使 kext 缓存无效,以便在删除相应的 plist 文件后,launchd 不会加载 kext。
感谢下面的答案,我使 kext 缓存无效。但是,我希望在我的卸载程序助手所基于的目标 c 中访问现有文件夹的等价物。
准确地说,这是我想转换为 Objective-C 的代码:
sudo touch /System/Library/Extensions; sudo touch /Library/Extensions