รายการที่อนุญาตของ UID ที่แชร์ซึ่งลงนามโดยแพลตฟอร์ม

แอปที่ลงนามในแพลตฟอร์มคือแอปที่แชร์การรับรองเดียวกัน (หรือใช้งานร่วมกันได้) พร้อมแพ็กเกจแพลตฟอร์ม (android) แอปที่ลงนามด้วยแพลตฟอร์มสามารถทำสิ่งต่อไปนี้ได้ แอประบบ (อยู่ในพาร์ติชันอิมเมจของระบบ) หรือแอปที่ไม่ใช่ระบบ UID ที่แชร์ที่แพลตฟอร์มลงนามคือ UID ที่แชร์ (android:sharedUserId) ที่ มีแอปที่ลงนามโดยแพลตฟอร์ม บิลด์ที่แก้ไขข้อบกพร่องได้คือบิลด์ที่มี android.os.Build.isDebuggable() แสดงผล true เช่น userdebug หรือ eng งานสร้าง

ที่ผ่านมา ผู้ผลิตอุปกรณ์ควบคุมได้น้อยมากว่าจะลงนามแพลตฟอร์มใด แอปที่ไม่ใช่ระบบจะเข้าร่วม UID ที่แชร์ที่แพลตฟอร์มลงนามได้ เริ่มต้นใน Android 15 ผู้ผลิตอาจอนุญาตอย่างชัดแจ้งให้ใช้กับแพลตฟอร์ม แอปที่ไม่ใช่ระบบสำหรับเข้าร่วม UID ที่แชร์ที่แพลตฟอร์มลงนามในการกำหนดค่าระบบ ไฟล์ XML ในไดเรกทอรี /etc/permissions หากระบบไม่ได้ลงนามในแพลตฟอร์ม ไม่ได้เพิ่มแอปลงในรายการที่อนุญาตสำหรับ UID ที่แชร์ที่แพลตฟอร์มลงนามและแอป ยังคงพยายามเข้าร่วม UID ที่แชร์ที่แพลตฟอร์มลงนาม (ด้วย android:sharedUserId ในไฟล์ Manifest) แอปดังกล่าวจะไม่สามารถติดตั้งในบิลด์ที่แก้ไขข้อบกพร่องไม่ได้

เพิ่มรายการที่อนุญาต

คุณสามารถแสดงรายการรายการที่อนุญาตสำหรับแอปในไฟล์ XML เดียวหรือในไฟล์ XML หลายไฟล์ได้ คล้ายกับ frameworks/base/data/etc/package-shareduid-allowlist.xml:

<!--
This XML defines an allowlist for packages that want to join a particular shared-uid.
If a non-system package that is signed with platform signature, is trying to join a particular
shared-uid, and not in this list, the installation will fail.

- The "package" XML attribute refers to the app's package name.
- The "shareduid" XML attribute refers to the shared uid name.
  -->

<config>
    <allow-package-shareduid package="android.test.settings" shareduid="android.uid.system" />
</config>

ค้นหารายการที่อนุญาตที่ขาดหายไป

หากต้องการค้นหารายการในรายการที่อนุญาตที่หายไป ให้ลองติดตั้งระบบที่ไม่ได้อยู่ในแพลตฟอร์มที่ลงชื่อ บนบิลด์ที่แก้ไขข้อบกพร่องไม่ได้ แล้วตรวจสอบว่ายังติดตั้งได้หรือไม่ หากไม่ คุณสามารถ สามารถตรวจสอบบันทึกอุปกรณ์เพื่อดูข้อความเตือนในรูปแบบต่อไปนี้

Non-preload app {PACKAGE_NAME} signed with platform signature and joining shared uid: {SHARED_UID_NAME}