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 APK. Thao tác này cho phép xoá các giao diện không phải SDK cụ thể khỏi danh sách cấm để cho phép AndroidX sử dụng chúng 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 phiên bản Android đã được phát hành. Đó là được hỗ trợ trên Android 10 trở lên.

Việc hỗ trợ Cấu hình đã ký đúng cách đả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. API này được hỗ trợ đầy đủ trong AOSP và OEM không yêu cầu hỗ trợ.

Ví dụ và nguồn

Quá trình triển khai tính năng diễn ra trong máy chủ hệ thống tại frameworks/base/services/core/java/com/android/server/signedconfig. CTS (Bộ kiểm tra tính tương thích) kiểm thử CtsSignedConfigHostTestCases bao gồm cách sử dụng mẫu và ví dụ cấu hình trong cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml.

Triển khai

Không cần nỗ lực để hỗ trợ tính năng này và cũng không cần phần cứng cụ thể các yêu cầu liên quan.

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à một bên trong APK. Các khoá đó là android.settings.globalandroid.settings.global.signature. Nếu hoặc khi thư viện AndroidX yêu cầu các giao diện không phải SDK sẽ bị xoá khỏi danh sách cấm trong tương lai, các giá trị dành cho các khoá này sẽ do nhóm Android phát hành và/hoặc dưới dạng một phần của AndroidX.

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 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 đượ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 nhìn 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 không nên sửa đổi tính năng, bao gồm cả việc thay thế khoá. Mọi thay đổi đối với 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ể thử nghiệm tính năng này theo cách thủ công bằng cách cài đặt một APK thích hợp và đang kiểm tra đầu ra adb logcat:

$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...