1

В OS X 10.8 Apple представила функцию, которая затрудняет установку неподписанных приложений. Обычно, это работает, чтобы щелкнуть правой кнопкой мыши неподписанное приложение, выбрать Open и подтвердить появившийся диалог. В следующий раз это приложение может быть запущено как любое подписанное.

Как я могу сбросить знания OS X о подтвержденном приложении, чтобы оно отклонило его запуск в следующий раз?

1 ответ1

4

Gate Keeper использует функцию карантина , которая присутствует некоторое время, чтобы раздражать пользователей после загрузки файлов.

Вы можете просмотреть информацию о карантине файла, прочитав его расширенный атрибут com.apple.quarantine . Здесь я делаю это для никогда ранее не запускаемого .app скопированного из загруженного .dmg:

$ xattr -l Butler.app/
com.apple.quarantine: 0002;50697c0e;Safari;942183F8-A268-447B-AEAB-55CEA27DD911

Первое значение - это состояние карантина (то есть интересная часть). За ним следует шестнадцатеричная метка времени Unix (в данном случае: date -r 0x50697c0e приводит к Mo 1 Okt 2012 13:18:38 CEST), имя приложения, создающего файл, и уникальный идентификатор (UUID) объекта. оригинальный карантин Этот последний наследуется извлеченными файлами из их контейнера, в данном случае, файла .dmg .


Первая часть расширенного атрибута - это состояние карантина. Когда этот файл загружен и никогда не открывается, в нем содержится 0002 , что может указывать на загрузку через Интернет.

Когда вы дважды щелкаете по приложению, но прерываете при запросе подтверждения, это 0022 (вероятно, для записи более раннего выполнения без одобрения), а когда вы подтверждаете выполнение один раз, это 0062 . В этом случае вас больше не спросят. Это очень похоже на восьмеричное или восьмеричное представление битового поля, где третий бит значения 4 указывает на утверждение, а третий бит значения 2 указывает на предварительное выполнение.

Сбросив это значение в исходное состояние после загрузки, вы можете снова включить защиту Gate Keeper. Просто прочитайте значение после открытия (xattr -p com.apple.quarantine <filename>) и замените его тем же значением без битов "это уже было утверждено" (например, xattr -w com.apple.quarantine 0002;[rest of the previous value] <filename>).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .