Bir uygulamanın hangi haklara sahip olduğunu nasıl öğrenirim?


28

Sanal alan uygulamaları haklarını beyan etmek zorundadır. Tabii ki, hangi hakların beyan ettiğini söyleyemezsem, bu bana hiç yarar sağlamaz. Çekirdek Konum, Ağ Sunucusu ve Adres Defterim için yetkilerime sahip bir metin editörü bilgim olmadan, işaretlenmemiş bir uygulamadan çok daha kötü olabilir.

Bir uygulamanın hangi haklarına sahip olduğunu nasıl görebilirim?

Yanıtlar:


35

Biraz daha aradıktan sonra bir komut satırı cevabı buldum:

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

Bu, aşağıdaki gibi değerlere sahip bir XML pistini yazdıracak:

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

Daha fazla bilgi için https://developer.apple.com/library/archive/qa/qa1798/_index.html#//apple_ref/doc/uid/DTS40014167-CH1-IOS_STEPS adresini ziyaret edin.

Herhangi biri daha kolay / daha güzel bir yol biliyorsa, duymayı çok isterim.


1
Bununla ilgili ayrıca daha fazla dokümantasyon: developer.apple.com/library/content/documentation/Security/…

Mojave 10.14.4'te, yukarıdaki komut başlangıçta fazladan 8 bayt yazdırır: fade7171000000fbXML'i geçersiz kılar . Bundan kaçınmanın veya ortadan kaldırmanın bir yolu var mı?
luckman212

codesign -d --entitlements - <filepath> 2>&1 | LANG=C LC_CTYPE=C sed 's/^.*\<\?xml/\<\?xml/g' | grep "<.*>" Belki başka bir çözüm var, ama bu baytları bu şekilde soyuyorum. Ancak bunun gerekli olduğunu sanmıyorum: codesignbir uygulamayı xml haklarına işaret ederek yapabilirsiniz ve macOS bu baytları zaten yok sayar.
JayB

Bu baytları atlamak için bir codesign -d --entitlements :- /Applications/Whatever.app/
sütun ekleyin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.