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

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