ฉันจะทราบได้อย่างไรว่าแอปมีสิทธิอะไรบ้าง?


28

แอพที่ Sandbox ต้องประกาศสิทธิ์ของพวกเขา แน่นอนว่านั่นไม่ได้ทำให้ฉันดีเลยถ้าฉันไม่สามารถบอกได้ว่ามันมีสิทธิ์อะไร โปรแกรมแก้ไขข้อความที่ให้สิทธิ์สำหรับตำแหน่งหลัก, เซิร์ฟเวอร์เครือข่ายและสมุดรายชื่อของฉันโดยที่ฉันไม่รู้อาจแย่กว่าแอพที่ไม่มีแซนด์บ็อกซ์

ฉันจะดูได้อย่างไรว่าแอพมีสิทธิอะไรบ้าง?

คำตอบ:


35

หลังจากค้นหาเพิ่มเติมฉันพบคำตอบที่บรรทัดคำสั่ง:

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

สิ่งนี้จะพิมพ์ตัวออก XML ด้วยค่าต่างๆเช่น:

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

สำหรับข้อมูลเพิ่มเติมดูที่https://developer.apple.com/library/archive/qa/qa1798/_index.html#//apple_ref/doc/uid/DTS40014167-CH1-IOS_STEPS

ถ้าใครรู้วิธีที่ง่ายกว่า / ดีกว่าฉันชอบที่จะได้ยินมัน


1
นอกจากนี้ยังมีเอกสารเพิ่มเติมเกี่ยวกับเรื่องนี้: developer.apple.com/library/content/documentation/Security/?hl=th

บน Mojave 10.14.4 คำสั่งด้านบนจะพิมพ์ 8 ไบต์พิเศษเมื่อเริ่มต้น: fade7171000000fbทำให้ XML ไม่ถูกต้อง มีวิธีใดบ้างที่จะหลีกเลี่ยงสิ่งนั้นหรือลอกมันออก?
luckman212

codesign -d --entitlements - <filepath> 2>&1 | LANG=C LC_CTYPE=C sed 's/^.*\<\?xml/\<\?xml/g' | grep "<.*>" อาจจะมีวิธีแก้ไขปัญหาอื่น แต่นั่นคือวิธีที่ฉันตัดไบต์เหล่านั้น แต่ฉันไม่คิดว่าจำเป็น: คุณสามารถcodesignแอปโดยชี้ไปที่ xml entitlements และ macOS จะไม่สนใจไบต์เหล่านั้น
JayB

เพิ่มโคลอนเพื่อละเว้นไบต์เหล่านี้:codesign -d --entitlements :- /Applications/Whatever.app/
artyom.stv
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.