Fitur Signed Config memungkinkan konfigurasi penyematan pembatasan antarmuka non-SDK dalam APK. Hal ini memungkinkan penghapusan antarmuka non-SDK tertentu dari daftar hitam, memungkinkan AndroidX untuk menggunakannya dengan aman. Hal ini memungkinkan tim AndroidX menambahkan dukungan untuk fitur baru pada versi Android yang telah dirilis. Penting didukung di Android 10 dan yang lebih baru.
Mendukung Signed Config dengan benar memastikan bahwa library AndroidX akan berfungsi dengan benar pada perangkat di masa mendatang.
Penyesuaian fitur ini tidak dapat dilakukan. Ini didukung sepenuhnya dalam AOSP dan tidak memerlukan upaya OEM untuk mendukungnya.
Contoh dan sumber
Implementasi fitur ada di server sistem di
frameworks/base/services/core/java/com/android/server/signedconfig
. CTS
pengujian CtsSignedConfigHostTestCases
menyertakan contoh penggunaan, dan contoh
konfigurasi di
cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml
.
Implementasi
Tidak ada upaya yang diperlukan untuk mendukung fitur ini, dan tidak ada hardware khusus lainnya.
Fitur ini menggunakan dua kunci metadata aplikasi untuk menyematkan konfigurasi dan
tanda tangan di dalam APK. Kunci tersebut adalah android.settings.global
dan
android.settings.global.signature
. Jika atau saat library AndroidX memerlukan
antarmuka non-SDK yang akan dihapus dari
daftar hitam di masa mendatang, nilai untuk
kunci ini akan dipublikasikan oleh tim Android dan/atau sebagai bagian dari AndroidX.
Kunci metadata APK android.settings.global
dan
android.settings.global.signature
keduanya berisi data yang dienkode dengan basis-64. Nilainya
untuk kunci android.settings.global
adalah nilai konfigurasi yang dienkode JSON yang akan diterapkan
setelan global di SettingsProvider
. Nilai untuk
android.settings.global.signature
adalah tanda tangan ECDSA-p256 dari data JSON.
Tanda tangan digunakan untuk memverifikasi asal data konfigurasi.
Fitur tidak terlihat oleh pengguna.
Penyesuaian
Fitur ini tidak dimaksudkan untuk penyesuaian. OEM tidak disarankan untuk memodifikasi fitur, termasuk mengganti kunci. Setiap perubahan pada data itu adalah kemungkinan akan menyebabkan AndroidX tidak berfungsi dengan baik pada perangkat yang terpengaruh masa depan.
Validasi
Uji CTS CtsSignedConfigHostTestCases
memverifikasi penerapan fitur.
Anda juga dapat menguji fitur secara manual dengan menginstal APK yang tepat dan
memeriksa output adb logcat
:
$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...