Tính năng Cấu hình đã ký cho phép nhúng cấu hình của các hạn chế đối với giao diện không phải SDK trong tệp APK. Điều này cho phép xoá các giao diện không phải SDK cụ thể khỏi danh sách đen để cho phép AndroidX sử dụng các giao diện đó một cách an toàn. Điều này cho phép nhóm AndroidX thêm tính năng hỗ trợ cho các tính năng mới trên các phiên bản Android đã phát hành. Tính năng này được hỗ trợ trong Android 10 trở lên.
Việc hỗ trợ đúng cách Cấu hình đã ký đảm bảo rằng các thư viện AndroidX sẽ hoạt động đúng cách trên các thiết bị trong tương lai.
Bạn không thể tuỳ chỉnh tính năng này. Tính năng này được hỗ trợ đầy đủ trong AOSP và OEM không cần phải nỗ lực để hỗ trợ tính năng này.
Ví dụ và nguồn
Việc triển khai tính năng này nằm trong máy chủ hệ thống tại frameworks/base/services/core/java/com/android/server/signedconfig
. CtsSignedConfigHostTestCases
kiểm thử CTS bao gồm ví dụ về cách sử dụng và cấu hình mẫu trong cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml
.
Triển khai
Bạn không cần phải nỗ lực để hỗ trợ tính năng này và không có yêu cầu phần cứng cụ thể.
Tính năng này sử dụng hai khoá siêu dữ liệu ứng dụng để nhúng cấu hình và chữ ký bên trong tệp APK. Các khoá đó là android.settings.global
và
android.settings.global.signature
. Nếu hoặc khi các thư viện AndroidX yêu cầu xoá các giao diện không phải SDK khỏi danh sách đen trong tương lai, thì các giá trị cho các khoá này sẽ do nhóm Android phát hành và/hoặc là một phần của AndroidX.
Khoá siêu dữ liệu APK android.settings.global
và
android.settings.global.signature
đều chứa dữ liệu được mã hoá base-64. Giá trị cho khoá android.settings.global
là các giá trị cấu hình được mã hoá JSON để áp dụng cho chế độ cài đặt chung trong SettingsProvider
. Giá trị của android.settings.global.signature
là chữ ký ECDSA-p256 của dữ liệu JSON.
Chữ ký được dùng để xác minh nguồn gốc của dữ liệu cấu hình.
Người dùng không thấy tính năng này.
Tuỳ chỉnh
Tính năng này không dùng để tuỳ chỉnh. Nhà sản xuất thiết bị gốc (OEM) không nên sửa đổi tính năng này, bao gồm cả việc thay thế các khoá. Mọi thay đổi đối với tệp này đều có thể khiến AndroidX không hoạt động đúng cách trên các thiết bị bị ảnh hưởng trong tương lai.
Xác nhận kết quả
Quy trình kiểm thử CTS CtsSignedConfigHostTestCases
xác minh việc triển khai tính năng.
Bạn cũng có thể kiểm thử tính năng này theo cách thủ công bằng cách cài đặt một tệp APK thích hợp và kiểm tra đầu ra adb logcat
:
$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...