¿Cómo puedo saber qué derechos tiene una aplicación?

28

Las aplicaciones de espacio aislado deben declarar sus derechos. Por supuesto, eso no me sirve de nada si no puedo decir qué derechos declara. Un editor de texto que tenga derechos para Core Location, Network Server y mi libreta de direcciones, sin mi conocimiento, podría ser mucho peor que una aplicación sin caja.

¿Cómo puedo ver qué derechos tiene una aplicación?

Conocer
fuente

Respuestas:

35

Después de buscar más, encontré una respuesta de línea de comandos:

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

Esto imprimirá un plist XML con valores como:

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

Para obtener más información, consulte https://developer.apple.com/library/archive/qa/qa1798/_index.html#//apple_ref/doc/uid/DTS40014167-CH1-IOS_STEPS

Sin embargo, si alguien conoce una forma más fácil / agradable, me encantaría escucharla.

Conocer
fuente
1
También más documentación sobre eso: developer.apple.com/library/content/documentation/Security/…
En Mojave 10.14.4, el comando anterior imprime 8 bytes adicionales al inicio fade7171000000fb, lo que invalida el XML. ¿Alguna forma de evitar eso o quitarlo?
luckman212
codesign -d --entitlements - <filepath> 2>&1 | LANG=C LC_CTYPE=C sed 's/^.*\<\?xml/\<\?xml/g' | grep "<.*>" Quizás haya otra solución, pero así es como elimino esos bytes. Pero no creo que sea necesario: puede hacer codesignuna aplicación señalando un derecho xml, y macOS ignorará esos bytes de todos modos.
JayB
Agregue dos puntos para omitir esos bytes:codesign -d --entitlements :- /Applications/Whatever.app/
artyom.stv