Делать недействительным kextcache после удаления драйвера

Я создал деинсталлятор для моего драйвера, который удаляет соответствующий файл plist из /Library/LaunchDaemons чтобы он не загружался снова при запуске в следующем цикле загрузки. Тем не менее, это не оказывает никакого влияния на мой драйвер, который все еще загружается нормально после загрузки машины.

Проведя некоторые исследования в этом вопросе, я обнаружил, что kextcache является причиной такого поведения, и для того, чтобы очистить / аннулировать его, мне нужно touch папка, в которой находится целевой том установки. однако, это не имело никакого эффекта.

Мой вопрос заключается в том, как правильно сделать недействительным кеш кэша, чтобы launchd не загружал кекст после удаления соответствующего файла plist.

Благодаря приведенному ниже ответу, я лишил законной силы kext кеш. Однако я хотел бы иметь эквивалент для доступа к существующей папке в target-c, на котором основан мой помощник по удалению.

Чтобы быть точным, вот код, который я хотел бы преобразовать в target-C:

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

1 ответ

Решение

Правильный способ аннулировать кэши Kext:

sudo touch /System/Library/Extensions

или в версиях ОС, которые поддерживают загрузку расширений из /Library:

sudo touch /Library/Extensions

Как только вы это сделаете, кэши кэста автоматически восстанавливаются.

Другие вопросы по тегам