Как узнать, какие права есть в приложении?

28

Приложения с песочницей должны декларировать свои права. Конечно, это не приносит мне пользы, если я не могу сказать, какие права он объявляет. Текстовый редактор с правами на Базовое расположение, Сетевой сервер и мою Адресную книгу, без моего ведома, может быть намного хуже, чем приложение без ящиков.

Как узнать, какие права имеет приложение?

кругозор
источник

Ответы:

35

После еще нескольких поисков я нашел ответ из командной строки:

codesign -d --entitlements :- /Applications/Whatever.app/

Это распечатает лист XML с такими значениями, как:

<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>

Для получения дополнительной информации см. Https://developer.apple.com/library/archive/qa/qa1798/_index.html#//apple_ref/doc/uid/DTS40014167-CH1-IOS_STEPS.

Если кто-нибудь знает более легкий / приятный способ, я бы хотел это услышать.

кругозор
источник
1
Также больше документации о том , что: developer.apple.com/library/content/documentation/Security/...
В Mojave 10.14.4 команда, приведенная выше, печатает дополнительные 8 байтов в начале: fade7171000000fbделает XML недействительным. Есть ли способ избежать этого или убрать это?
luckman212
codesign -d --entitlements - <filepath> 2>&1 | LANG=C LC_CTYPE=C sed 's/^.*\<\?xml/\<\?xml/g' | grep "<.*>" Может быть, есть другое решение, но вот как я убираю эти байты. Но я не думаю, что это необходимо: вы можете codesignприложить приложение, указав xml прав, и в любом случае macOS проигнорирует эти байты.
JayB
Добавьте двоеточие, чтобы пропустить эти байты:codesign -d --entitlements :- /Applications/Whatever.app/
artyom.stv