แอปที่ลงนามโดยแพลตฟอร์มคือแอปที่แชร์ใบรับรองการลงนามเดียวกัน (หรือที่เข้ากันได้)
กับแพ็กเกจแพลตฟอร์ม (android
) แอปที่ลงนามโดยแพลตฟอร์มอาจเป็น
แอปของระบบ (อยู่ในพาร์ติชันอิมเมจของระบบ) หรือแอปที่ไม่ใช่ของระบบ
สิทธิ์ลายเซ็นของแพลตฟอร์มคือสิทธิ์ที่กำหนดโดยแพ็กเกจแพลตฟอร์ม
ซึ่งมีระดับการป้องกัน signature
ด้วย บิลด์ที่แก้ไขข้อบกพร่องได้คือบิลด์ที่android.os.Build.isDebuggable()
ส่งคืนtrue
เช่น บิลด์ userdebug
หรือ eng
ในอดีต ผู้ผลิตอุปกรณ์มีอำนาจควบคุมเพียงเล็กน้อยว่าแพลตฟอร์ม
signature
จะให้สิทธิ์ใดแก่แอปที่ไม่ใช่ระบบซึ่งลงนามโดยแพลตฟอร์มได้
ตั้งแต่ Android 15 เป็นต้นไป ผู้ผลิตสามารถให้สิทธิ์ลายเซ็นของแพลตฟอร์มอย่างชัดแจ้งในไฟล์ XML การกำหนดค่าระบบในไดเรกทอรี /etc/permissions
หากไม่ได้เพิ่มแอปที่ไม่ได้ลงนามในระบบของแพลตฟอร์ม
ลงในรายการที่อนุญาตสำหรับสิทธิ์ลายเซ็นของแพลตฟอร์ม สิทธิ์ดังกล่าวจะทำงาน
ราวกับว่าแอปไม่ได้ลงนามในแพลตฟอร์มในบิลด์ที่แก้ไขข้อบกพร่องไม่ได้
เพิ่มรายการที่อนุญาต
คุณแสดงรายการที่อนุญาตสำหรับสิทธิ์ของแอปในไฟล์ XML เดียวหรือในไฟล์ XML หลายไฟล์ที่อยู่ในไดเรกทอรี /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