Fitur Konfigurasi Bertanda Tangan memungkinkan penyematan konfigurasi pembatasan antarmuka non-SDK di APK. Hal ini memungkinkan penghapusan antarmuka non-SDK tertentu dari daftar hitam, untuk memungkinkan AndroidX menggunakannya dengan aman. Hal ini memungkinkan tim AndroidX menambahkan dukungan untuk fitur baru pada versi Android yang telah dirilis. Fitur ini didukung di Android 10 dan yang lebih baru.
Mendukung Signed Config dengan benar akan memastikan bahwa library AndroidX akan berfungsi dengan benar di perangkat pada masa mendatang.
Fitur ini tidak dapat disesuaikan. Fitur ini didukung sepenuhnya di 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
. Pengujian
CTS CtsSignedConfigHostTestCases
menyertakan contoh penggunaan, dan contoh
konfigurasi di
cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml
.
Implementasi
Anda tidak perlu melakukan apa pun untuk mendukung fitur ini, dan tidak ada persyaratan hardware tertentu.
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 mewajibkan
antarmuka non-SDK untuk dihapus dari daftar hitam pada 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
berisi data yang dienkode dengan base-64. Nilai
untuk kunci android.settings.global
adalah nilai konfigurasi yang dienkode JSON yang akan diterapkan ke
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 ini tidak terlihat oleh pengguna.
Penyesuaian
Fitur ini tidak ditujukan untuk penyesuaian. OEM tidak dianjurkan untuk mengubah fitur, termasuk mengganti kunci. Setiap perubahan pada kode tersebut mungkin akan menyebabkan AndroidX tidak berfungsi dengan baik di perangkat yang terpengaruh di masa mendatang.
Validasi
Pengujian CTS CtsSignedConfigHostTestCases
memverifikasi penerapan fitur.
Anda juga dapat menguji fitur ini secara manual dengan menginstal APK yang sesuai dan
memeriksa output adb logcat
:
$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...