0

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

在对此事进行了一些研究之后,我发现这kextcache是导致这种行为的原因,为了清理/使其无效,我需要touch安装目标卷所在的文件夹。但是,它没有任何效果。

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

感谢下面的答案,我使 kext 缓存无效。但是,我希望在我的卸载程序助手所基于的目标 c 中访问现有文件夹的等价物。

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

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

4

1 回答 1

2

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

sudo touch /System/Library/Extensions

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

sudo touch /Library/Extensions

执行此操作后,kext 缓存将自动重新生成。

于 2016-09-06T21:21:53.343 回答