1

Я привык к Windows, но недавно начал использовать ограниченную (не могу запускать приложения от неопознанных разработчиков) машину OS X и хочу сделать ее полнофункциональной без необходимости переформатирования, сброса / воссоздания администратора и т.д.

У меня установлен MagicPrefs, просто поместив файл в папку «Программы» под моей учетной записью пользователя, и он просто запускается, но у gedit есть неопознанная ошибка разработчика, и даже при открытии правой кнопкой мыши требуются права администратора (я не могу отключить привратник из Системных настроек)

Портативные версии приложений OS X могут быть решением для основных приложений.

2 ответа2

2

Возьмите приложение, которое вы обычно запускаете, например, в магазине приложений или в Интернете. Убедитесь, что у вас есть разрешение на его изменение. Для этого я рекомендую загрузить простое интернет-приложение, такое как Keka, и перетащить его на рабочий стол.

Дублируйте приложение, щелкнув его правой кнопкой мыши и выбрав «Открыть содержимое пакета». Перетащите содержимое приложения и заполните пустую оболочку приложения содержимым приложения от неизвестного разработчика.

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

1

Единственный способ самостоятельно подписать приложение для Gatekeeper - это зарегистрироваться в программе Apple для разработчиков (в настоящее время 100 долларов США в год), подписаться на сертификат для подписи кода и установить XCode для создания "вашего" приложения.

Затем вы можете создать приложение в XCode и просто включить содержимое другого приложения, которое вы действительно хотите запустить, в свой пакет приложений, а затем подписать его своим сертификатом. Это приложение сможет запускаться где угодно (хотя вы, возможно, нарушаете лицензию оригинального программного обеспечения).

Очевидно, это не очень практично. Метод, предложенный в другом ответе здесь для копирования содержимого в комплект другого приложения, сам по себе не обойдет Gatekeeper. Проверка «Известный разработчик» требует, чтобы пакет приложений содержал подпапку _CodeSignature и идентификатор приложения, который соответствует подписанному разработчику в файле Info.plist пакета. Оба из них будут уничтожены, если вы замените все содержимое, и выборочная замена содержимого приведет к тому, что приложение будет иметь сигнатуру кода, которая не совпадает с сигнатурой приложения, которым она себя утверждает.

Если этот метод «трансплантации» работает, то это не потому, что он обманывает Gatekeeper; скорее потому что он предотвращает привлечение Gatekeeper. Независимо от того, подписан ли пакет приложений, система Gatekeeper будет проверять только те приложения, которые находятся на карантине. Это означает, что в файл был добавлен флаг расширенного атрибута, который указывает, что он был загружен из Интернета или в противном случае из неизвестного источника. Safari и Mail добавят этот флаг к загруженным файлам, но не требуется, чтобы все приложения работали таким образом. Вы можете увидеть этот флаг, выполнив команду ls -l@ в каталоге, содержащем ваш пакет приложений:

drwxr-xr-x@ 3 self  wheel      102 Jul  7  2013 My Sketchy App.app
    com.apple.quarantine         57 

Если вы копируете содержимое приложения в пакет другого приложения, то у вновь созданного приложения есть все расширенные атрибуты, которые ранее был у пакета. Так что, если у него не было флага quarantine , ни ваше новое приложение, ни вы не сможете его запустить. Но если это действительно есть флаг quarantine он все равно будет, и привратник будет действовать.

Пересадка содержимого приложения - это всего лишь окольный способ удаления этого флага. Вы можете сделать то же самое, просто удалив флаг quarantine непосредственно из приложения, например так:

xattr -d com.apple.quarantine "./My Sketchy App.app"

или вы можете косвенно удалить флаг quarantine , запустив / разрешив приложение на другом Mac (который не имеет действующих ограничений Gatekeeper, или если у вас есть учетная запись администратора, позволяющая переопределить его), а затем скопировав его на компьютер с ограниченным доступом с помощью метод, который не воссоздает флаг (например, приложения, скопированные из общего ресурса SMB, не будут помещены в карантин).

Короче говоря: щелчок правой кнопкой мыши "Открыть" (или "Открыть в любом случае" на экране "Безопасность" в Системных настройках) добавляет исключение для Gatekeeper для рассматриваемого приложения, которое требует прав администратора. Чтобы quarantine флаг карантина из приложения, требуются только разрешения на запись в комплект приложения, что не позволяет привратнику вмешиваться.

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