Ứng dụng được ký trên nền tảng là những ứng dụng có cùng chữ ký (hoặc tương thích) với nhau
chứng chỉ với gói nền tảng (android
). Một ứng dụng được ký trên nền tảng có thể
ứng dụng hệ thống (nằm trên phân vùng hình ảnh hệ thống) hoặc ứng dụng không phải hệ thống.
UID dùng chung do nền tảng ký là các UID dùng chung (android:sharedUserId
) mà
chứa các ứng dụng được ký trên nền tảng. Bản dựng có thể gỡ lỗi là những bản dựng có
android.os.Build.isDebuggable()
trả về true
, chẳng hạn như userdebug
hoặc eng
bản dựng.
Trước đây, các nhà sản xuất thiết bị có ít quyền kiểm soát việc nào được ký dựa trên nền tảng nào
các ứng dụng không thuộc hệ thống có thể tham gia UID dùng chung được ký trên nền tảng. Kể từ Android
15, nhà sản xuất có thể cho phép ký kết trên nền tảng một cách rõ ràng
các ứng dụng không thuộc hệ thống để tham gia UID dùng chung được ký trên nền tảng trong cấu hình hệ thống
Tệp XML trong thư mục /etc/permissions
. Nếu một nền tảng không phải hệ thống được ký
ứng dụng không được thêm vào danh sách cho phép đối với UID dùng chung do nền tảng ký, và ứng dụng
vẫn cố tham gia UID được chia sẻ do nền tảng ký (với android:sharedUserId
trong tệp kê khai), thì bạn không thể cài đặt ứng dụng đó trên các bản dựng không thể gỡ lỗi.
Thêm danh sách cho phép
Bạn có thể liệt kê danh sách cho phép cho ứng dụng trong một tệp XML duy nhất hoặc trong nhiều tệp XML,
tương tự như
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>
Tìm danh sách cho phép bị thiếu
Để tìm mục bị thiếu trong danh sách cho phép, hãy thử cài đặt ứng dụng ngoài hệ thống do nền tảng ký trên bản dựng không thể gỡ lỗi và kiểm tra xem có thể cài đặt bản dựng đó hay không. Nếu không, bạn có thể kiểm tra nhật ký thiết bị để biết định dạng thông báo cảnh báo sau đây:
Non-preload app {PACKAGE_NAME} signed with platform signature and joining shared uid: {SHARED_UID_NAME}