Triển khai cấu hình đã ký

Tính năng Cấu hình đã ký cho phép cấu hình nhúng các hạn chế về 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 cụ thể không phải SDK khỏi danh sách cấm để 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. Công cụ 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. API này được hỗ trợ đầy đủ trong AOSP (Dự án nguồn mở Android) và không yêu cầu nhà sản xuất thiết bị gốc nào 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. CtsSignedConfigHostTestCases kiểm thử CTS bao gồm cách sử dụng mẫu và một 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. Đó là các khoá android.settings.globalandroid.settings.global.signature. Nếu hoặc khi thư viện AndroidX yêu cầu xoá giao diện không phải SDK khỏi danh sách cấm trong tương lai, thì các giá trị của các khoá này sẽ được nhóm Android và/hoặc AndroidX phát hành.

Các khoá siêu dữ liệu APK android.settings.globalandroid.settings.global.signature đều chứa dữ liệu được mã hoá base-64. Giá trị cho khoá android.settings.global là giá trị cấu hình được mã hoá JSON sẽ được áp dụng cho các 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ý này đượ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 nhằm mục đích 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 phần tử 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ả

CtsSignedConfigHostTestCases kiểm thử CTS sẽ 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
...