Проверка загрузки расширения ядра для одобрения пользователя на компьютере Mac (TN2459) - PullRequest
0 голосов
/ 25 апреля 2018

TN2459: https://developer.apple.com/library/content/technotes/tn2459/_index.html показывает, что в MacOS High Sierra для загрузки новых сторонних расширений ядра требуется разрешение пользователя.

kext, который я хотел бы проверить, был загружен до того, как обновлен до High Sierra, поэтому загрузка того же kext после обновления не вызывает поток одобрения пользователя, с которым я хотел бы протестировать.

Разрешение пользователя расширения ядра включено:

$ spctl kext-consent status
Kernel Extension User Consent: ENABLED 

Я удалил запись, соответствующую kext, в таблице kext_policy в / private / var / db / SystemPolicyConfiguration / KextPolicy в режиме восстановления и перезапустил несколько раз. Но поток подтверждения пользователя по-прежнему не запускается при загрузке kext.

Интересно, кэшируется ли информация о политике где-то еще, и нужно ли мне очищать NVRAM для моей машины или сказать syspolicyd очистить ее кеш? Или есть другие вещи, которые мне нужно сделать?

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Короче говоря, вам нужно загрузиться в режиме восстановления (Mac+R) и отредактировать таблицу sqlite /private/var/db/SystemPolicyConfiguration/KextPolicy.

Эта таблица доступна в режиме только для чтения при обычной загрузке:

sqlite3 /private/var/db/SystemPolicyConfiguration/KextPolicy
sqlite> SELECT * FROM kext_policy;
sqlite> SELECT * FROM kext_load_history_v3;

Вы должны удалить свои записи (режим восстановления) и перезагрузиться, как это ( Заменить 'G43BCU2T37'with your team_id ):

sqlite> DELETE FROM kext_policy WHERE team_id = 'G43BCU2T37';
sqlite> DELETE FROM kext_load_history_v3 WHERE team_id = 'G43BCU2T37';
sqlite> .exit

Чтобы избежать перезагрузки каждый раз, вы можете изменить конфигурацию «Защита целостности системы» (в режиме восстановления): csrutil enable --without fs --no-internal.Теперь kext_policy можно изменить с обычной загрузки.

Вся процедура описана здесь: https://forums.developer.apple.com/thread/79172#248518.

0 голосов
/ 30 апреля 2018

Был в состоянии проверить это, используя высокую Сьерра VM.Полный шаг установки виртуальной машины: https://www.howtogeek.com/289594/how-to-install-macos-sierra-in-virtualbox-on-windows-10/

...