Como descubro quais direitos um aplicativo possui?

28

Os aplicativos em área restrita precisam declarar seus direitos. Obviamente, isso não me serve de nada se eu não souber quais são os direitos que declara. Um editor de texto com direitos para Localização Central, Servidor de Rede e meu Catálogo de Endereços, sem o meu conhecimento, pode ser muito pior do que um aplicativo sem caixa de areia.

Como posso ver quais direitos um aplicativo possui?

Ken
fonte

Respostas:

35

Depois de mais algumas pesquisas, encontrei uma resposta na linha de comando:

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

Isso imprimirá uma lista XML com valores como:

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

Para obter mais informações, consulte https://developer.apple.com/library/archive/qa/qa1798/_index.html#//apple_ref/doc/uid/DTS40014167-CH1-IOS_STEPS

Se alguém souber uma maneira mais fácil / agradável, eu adoraria ouvi-la.

Ken
fonte
1
Também há mais documentação sobre isso: developer.apple.com/library/content/documentation/Security/…
No Mojave 10.14.4, o comando acima imprime 8 bytes extras no início: fade7171000000fbtornando o XML inválido. Alguma maneira de evitar isso ou retirá-lo?
sortudo212 22/04
codesign -d --entitlements - <filepath> 2>&1 | LANG=C LC_CTYPE=C sed 's/^.*\<\?xml/\<\?xml/g' | grep "<.*>" Talvez haja outra solução, mas é assim que eu removo esses bytes. Mas não acho necessário: você pode codesignum aplicativo apontando para um serviço xml, e o macOS ignorará esses bytes de qualquer maneira.
JayB
Adicione dois pontos para omitir esses bytes:codesign -d --entitlements :- /Applications/Whatever.app/
artyom.stv 01/07