Bagaimana cara mengetahui kepemilikan apa yang dimiliki aplikasi?

28

Aplikasi Sandbox harus menyatakan haknya. Tentu saja, itu tidak ada gunanya bagiku jika aku tidak bisa mengatakan hak apa yang dinyatakannya. Editor teks yang memiliki hak untuk Lokasi Inti, Server Jaringan, dan Buku Alamat saya, tanpa sepengetahuan saya, bisa jauh lebih buruk daripada aplikasi yang tidak dikotakpasirkan.

Bagaimana saya bisa melihat hak apa yang dimiliki aplikasi?

Ken
sumber

Jawaban:

35

Setelah mencari lagi, saya menemukan jawaban baris perintah:

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

Ini akan mencetak daftar XML dengan nilai-nilai seperti:

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

Untuk informasi lebih lanjut, lihat https://developer.apple.com/library/archive/qa/qa1798/_index.html#//apple_ref/doc/uid/DTS40014167-CH1-IOS_STEPS

Jika ada yang tahu cara yang lebih mudah / lebih baik, saya ingin mendengarnya.

Ken
sumber
1
Juga lebih banyak dokumentasi tentang itu: developer.apple.com/library/content/documentation/Security/…
Pada Mojave 10.14.4, perintah di atas mencetak 8 byte tambahan di awal:, fade7171000000fbmembuat XML tidak valid. Adakah cara untuk menghindarinya atau melepaskannya?
luckman212
codesign -d --entitlements - <filepath> 2>&1 | LANG=C LC_CTYPE=C sed 's/^.*\<\?xml/\<\?xml/g' | grep "<.*>" Mungkin ada solusi lain, tapi itulah cara saya menghapus byte itu. Tapi saya pikir itu tidak perlu: Anda dapat codesignsebuah aplikasi dengan menunjuk ke xml hak, dan toh macOS akan mengabaikan byte tersebut.
JayB
Tambahkan tanda titik dua untuk menghilangkan byte tersebut:codesign -d --entitlements :- /Applications/Whatever.app/
artyom.stv