Ứng dụng đã ký trên nền tảng là các ứng dụng dùng chung một 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 đã 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.
Quyền chữ ký trên nền tảng là các quyền do gói nền tảng xác định
cũng có cấp bảo vệ signature
. Bản dựng có thể gỡ lỗi là bản dựng
có android.os.Build.isDebuggable()
trả về true
, chẳng hạn như userdebug
hoặc
eng
.
Trước đây, các nhà sản xuất thiết bị có rất ít quyền kiểm soát nền tảng nào
Có thể cấp quyền signature
cho các ứng dụng không phải hệ thống đã ký trên nền tảng.
Kể từ Android 15, nhà sản xuất có thể
cấp quyền chữ ký nền tảng trong các tệp XML cấu hình hệ thống trong
thư mục /etc/permissions
. Nếu một ứng dụng ngoài hệ thống đã ký trên nền tảng không
được thêm vào danh sách cho phép đối với quyền chữ ký nền tảng, quyền đó có tác dụng
như thể ứng dụng không phải là nền tảng được ký 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ê các danh sách quyền truy cập được cho phép cho ứng dụng trong một tệp XML duy nhất hoặc trong nhiều tệp
Các tệp XML nằm trong thư mục frameworks/base/etc/permissions
:
/etc/permissions/signature-permissions-OEM_NAME.xml
/etc/permissions/signature-permissions-DEVICE_NAME.xml
Không có quy tắc nghiêm ngặt nào áp dụng cho cách sắp xếp nội dung. Trình triển khai thiết bị có thể xác định cấu trúc nội dung, miễn là các ứng dụng thích hợp và các quyền sẽ được thêm vào danh sách cho phép.
Tuỳ chỉnh danh sách cho phép
AOSP bao gồm việc triển khai danh sách cho phép mà bạn có thể tuỳ chỉnh nếu cần, tương tự như danh sách cho phép đặc quyền. Ví dụ:
<!--
~ 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>
Tìm quyền còn thiếu
Để tìm các quyền bị thiếu, hãy cài đặt ứng dụng đã ký trên nền tảng của bạn và kiểm tra thiết bị nhật ký cho định dạng thông báo cảnh báo sau:
Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist
Hệ thống vẫn có thể cấp quyền trên các bản dựng có thể gỡ lỗi, nhưng không thể bật
bản dựng không thể gỡ lỗi, chẳng hạn như bản dựng user
.