รายการที่อนุญาตสำหรับสิทธิ์ลายเซ็น

แอปที่ลงนามโดยแพลตฟอร์มคือแอปที่แชร์ใบรับรองการลงนามเดียวกัน (หรือที่เข้ากันได้) กับแพ็กเกจแพลตฟอร์ม (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