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