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

Tính năng Signed Config cho phép nhúng cấu hình hạn chế giao diện không phải SDK trong APK. Điều này cho phép xóa 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 chúng một cách an toàn. Điều này cho phép nhóm AndroidX thêm hỗ trợ cho các tính năng mới trên các phiên bản Android đã được phát hành. Nó được hỗ trợ trong Android 10 trở lên.

Việc hỗ trợ đúng cách Signed Config sẽ đảm bảo rằng thư viện AndroidX sẽ hoạt động chính xác trên các thiết bị trong tương lai.

Không thể tùy chỉnh tính năng này. Nó được hỗ trợ đầy đủ trong AOSP và không cần nỗ lực của OEM để hỗ trợ nó.

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 . Kiểm tra CTS CtsSignedConfigHostTestCases bao gồm cách sử dụng ví dụ và cấu hình ví dụ trong cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml .

Thực hiện

Không cần 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 khóa siêu dữ liệu ứng dụng để nhúng cấu hình và chữ ký bên trong APK. Các khóa đó là android.settings.globalandroid.settings.global.signature . Nếu hoặc khi thư viện AndroidX yêu cầu xóa giao diện không phải SDK khỏi danh sách cấm trong tương lai, thì các giá trị cho các khóa này sẽ được nhóm Android xuất bản và/hoặc như một phần của AndroidX.

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

Tùy chỉnh

Tính năng này không nhằm mục đích tùy chỉnh. Các OEM không được khuyến khích sửa đổi tính năng này, bao gồm cả việc thay thế các phím. Bất kỳ thay đổi nào đối với nó đều có thể khiến AndroidX không hoạt động bình thường trên các thiết bị bị ảnh hưởng trong tương lai.

Thẩm định

Kiểm tra CTS CtsSignedConfigHostTestCases xác minh việc triển khai tính năng.

Bạn cũng có thể kiểm tra tính năng này theo cách thủ công bằng cách cài đặt 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
...