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

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