删除驱动程序启动的plist文件

时间:2016-09-06 20:26:30

标签: macos launchd kernel-extension xnu

我已经为我的驱动程序创建了卸载程序,从/Library/LaunchDaemons删除了匹配的plist文件,以便在下一个启动周期中不会被launchd再次加载。 但是,它似乎对我的驱动程序没有任何影响,在启动机器后仍然正常加载。

在对此事做了一些研究之后,我发现kextcache是这种行为的原因,为了清理/使其无效,我需要touch该文件夹所在的位置安装目标量。然而,它没有任何影响。

我的问题是如何正确地使kext缓存无效,以便在删除相应的plist文件后,launchd不会加载kext。

由于下面的答案,我使kext缓存无效。但是,我希望在我的卸载程序帮助程序所基于的objective-c中具有访问现有文件夹的等价物。

准确地说,这是我想要转换为objective-C的代码:

sudo touch /System/Library/Extensions; sudo touch /Library/Extensions

1 个答案:

答案 0 :(得分:2)

使kext缓存无效的正确方法是

sudo touch /System/Library/Extensions

或支持从/ Library加载扩展的操作系统版本:

sudo touch /Library/Extensions

一旦执行此操作,就会自动重新生成kext缓存。