Danh sách cho phép quyền chữ ký

Ứng dụng được ký trên nền tảng là những ứng dụng dùng chung cùng một chứng chỉ ký (hoặc chứng chỉ ký tương thích) với gói nền tảng (android). Ứng dụng được ký trên nền tảng có thể là ứng dụng hệ thống (nằm trên một phân vùng ảnh hệ thống) hoặc ứng dụng không phải hệ thống. Quyền chữ ký nền tảng là những quyền do gói nền tảng xác định và 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ư bản dựng 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 đối với những quyền signature của nền tảng có thể được cấp cho các ứng dụng không phải là ứng dụng hệ thống đã ký trên nền tảng. Kể từ Android 15, các nhà sản xuất có thể cấp quyền chữ ký nền tảng một cách rõ rà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 không phải là ứng dụng 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 ký trên nền tảng, thì quyền đó sẽ hoạt động như thể ứng dụng không được ký trên nền tả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 quyền cho các ứng dụng trong một tệp XML duy nhất hoặc trong nhiều tệp XML nằm trong thư mục /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. Các 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à quyền của chúng được thêm vào danh sách cho phép.

Tuỳ chỉnh danh sách cho phép

AOSP có một chế độ triển khai danh sách cho phép mà bạn có thể tuỳ chỉnh khi cần, tương tự như danh sách cho phép quyền có đặ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 các 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 nhật ký thiết bị theo định dạng sau của thông báo cảnh báo:

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ể cấp quyền trên các bản dựng không thể gỡ lỗi, chẳng hạn như bản dựng user.