Tính năng Cấu hình đã ký cho phép nhúng cấu hình về các hạn chế đối với giao diện không phải SDK trong 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 chặn để AndroidX có thể 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 những phiên bản Android đã được 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 chính xác 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à không yêu cầu OEM nỗ lực hỗ trợ.
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
. Thử nghiệm CTS CtsSignedConfigHostTestCases
bao gồm ví dụ về cách sử dụng và ví dụ về cấu hình 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 cụ thể nào về phần cứng.
Tính năng này sử dụng 2 khoá siêu dữ liệu ứng dụng để nhúng cấu hình và chữ ký bên trong APK. Đó là các khoá 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 chặn trong tương lai, thì các giá trị cho những khoá này sẽ được nhóm Android xuất bản và/hoặc là một phần của AndroidX.
Cả 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á bằng JSON sẽ được áp dụng cho chế độ cài đặt chung trong SettingsProvider
. Giá trị cho android.settings.global.signature
là chữ ký ECDSA-p256 của dữ liệu JSON.
Chữ ký này 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 được tính năng này.
Tuỳ chỉnh
Tính năng này không dành cho việc tuỳ chỉnh. Các OEM không nên sửa đổi tính năng này, kể cả việc thay thế các khoá. Mọi thay đổi đối với thành phần này đều có thể khiến AndroidX hoạt động khô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ả
Bài 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
...