Wie finde ich heraus, welche Berechtigungen eine App hat?


28

Sandbox-Apps müssen ihre Berechtigungen deklarieren. Das nützt mir natürlich nichts, wenn ich nicht sagen kann, welche Ansprüche es deklariert. Ein Texteditor, der ohne mein Wissen über Berechtigungen für Core Location, Network Server und mein Adressbuch verfügt, könnte viel schlimmer sein als eine App ohne Sandbox.

Wie kann ich sehen, welche Berechtigungen eine App hat?

Antworten:


35

Nach einigem Suchen fand ich eine Befehlszeilenantwort:

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

Dadurch wird eine XML-Liste mit folgenden Werten gedruckt:

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

Weitere Informationen finden Sie unter https://developer.apple.com/library/archive/qa/qa1798/_index.html#//apple_ref/doc/uid/DTS40014167-CH1-IOS_STEPS

Wenn jemand einen einfacheren / schöneren Weg kennt, würde ich ihn gerne hören.



In Mojave 10.14.4 gibt der obige Befehl zu Beginn zusätzliche 8 Byte aus:, fade7171000000fbwodurch das XML ungültig wird. Wie kann man das vermeiden oder abstreifen?
luckman212

codesign -d --entitlements - <filepath> 2>&1 | LANG=C LC_CTYPE=C sed 's/^.*\<\?xml/\<\?xml/g' | grep "<.*>" Vielleicht gibt es eine andere Lösung, aber so entferne ich diese Bytes. Aber ich denke nicht, dass es notwendig ist: Sie können codesigneine App erstellen, indem Sie auf eine Berechtigungs-XML verweisen, und macOS ignoriert diese Bytes trotzdem.
JayB

Fügen Sie einen Doppelpunkt hinzu, um diese Bytes wegzulassen:codesign -d --entitlements :- /Applications/Whatever.app/
artyom.stv
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.