แอปที่ลงนามโดยแพลตฟอร์มคือแอปที่ใช้ใบรับรองการลงนามเดียวกัน (หรือเข้ากันได้) กับแพ็กเกจแพลตฟอร์ม (android
) แอปที่ลงนามโดยแพลตฟอร์มอาจเป็นแอประบบ (อยู่ในพาร์ติชันรูปภาพระบบ) หรือแอปที่ไม่ใช่ระบบก็ได้ สิทธิ์ลายเซ็นแพลตฟอร์มคือสิทธิ์ที่แพ็กเกจแพลตฟอร์มกำหนดไว้ซึ่งมีระดับการปกป้อง signature
ด้วย บิลด์ที่แก้ไขข้อบกพร่องได้คือบิลด์ที่ android.os.Build.isDebuggable()
แสดงผล true
เช่น บิลด์ userdebug
หรือ eng
ที่ผ่านมา ผู้ผลิตอุปกรณ์มีสิทธิ์ควบคุมเพียงเล็กน้อยเกี่ยวกับsignature
สิทธิ์ของแพลตฟอร์มที่จะมอบให้แก่แอปที่ไม่ใช่ระบบซึ่งลงนามโดยแพลตฟอร์ม
ตั้งแต่ Android 15 เป็นต้นไป ผู้ผลิตจะให้สิทธิ์ลายเซ็นแพลตฟอร์มได้อย่างชัดเจนในไฟล์ XML ของการกำหนดค่าระบบในไดเรกทอรี /etc/permissions
หากไม่ได้เพิ่มแอปที่ไม่ใช่ระบบที่ลงนามโดยแพลตฟอร์มลงในรายการที่อนุญาตสำหรับสิทธิ์ลายเซ็นของแพลตฟอร์ม สิทธิ์ดังกล่าวจะทำงานเสมือนว่าแอปไม่ได้มีการรับรองแพลตฟอร์มในบิลด์ที่แก้ไขข้อบกพร่องไม่ได้
เพิ่มรายการที่อนุญาต
คุณสามารถแสดงรายการรายการที่อนุญาตสิทธิ์สำหรับแอปในไฟล์ XML เดียวหรือในไฟล์ XML หลายไฟล์ที่อยู่ในไดเรกทอรี frameworks/base/etc/permissions
ได้ โดยทำดังนี้
/etc/permissions/signature-permissions-OEM_NAME.xml
/etc/permissions/signature-permissions-DEVICE_NAME.xml
ไม่มีกฎที่เข้มงวดเกี่ยวกับวิธีจัดระเบียบเนื้อหา ผู้ใช้อุปกรณ์จะกำหนดโครงสร้างเนื้อหาได้ ตราบใดที่แอปที่เหมาะสมและสิทธิ์ของแอปนั้นเพิ่มลงในรายการที่อนุญาต
ปรับแต่งรายการที่อนุญาต
AOSP มีการใช้รายการที่อนุญาตที่คุณสามารถปรับแต่งได้ตามต้องการ ซึ่งคล้ายกับรายการที่อนุญาตที่ได้รับสิทธิ์ เช่น
<!--
~ This XML file declares which platform signature permissions to grant to
~ platform signed nonsystem apps.
-->
<permissions>
<signature-permissions package="com.android.example">
<permission name="android.permission.READ_DEVICE_CONFIG"/>
...
</signature-permissions>
...
</permissions>
ค้นหาสิทธิ์ที่หายไป
หากต้องการค้นหาสิทธิ์ที่ขาดหายไป ให้ติดตั้งแอปที่ลงนามของแพลตฟอร์ม และตรวจสอบบันทึกอุปกรณ์เพื่อดูข้อความเตือนในรูปแบบต่อไปนี้
Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist
ระบบจะยังคงให้สิทธิ์ในบิลด์ที่แก้ไขข้อบกพร่องได้ แต่จะให้สิทธิ์ในบิลด์ที่แก้ไขข้อบกพร่องไม่ได้ เช่น บิลด์ user