Fitur Konfigurasi Bertanda Tangan memungkinkan penyematan konfigurasi pembatasan antarmuka non-SDK dalam APK. Hal ini memungkinkan penghapusan antarmuka non-SDK tertentu dari daftar blokir, sehingga AndroidX dapat 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 Konfigurasi Bertanda Tangan dengan benar akan memastikan library AndroidX berfungsi dengan benar di perangkat pada masa mendatang.
Tidak ada penyesuaian fitur ini yang dapat dilakukan. Fitur ini didukung sepenuhnya di AOSP dan tidak memerlukan upaya OEM untuk mendukungnya.
Contoh dan sumber
Penerapan fitur ini ada di server sistem di frameworks/base/services/core/java/com/android/server/signedconfig. Pengujian CTS CtsSignedConfigHostTestCases mencakup contoh penggunaan, dan contoh konfigurasi di cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml.
Penerapan
Tidak ada upaya yang diperlukan 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 memerlukan antarmuka non-SDK untuk dihapus dari daftar blokir 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 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 disarankan untuk mengubah fitur ini, termasuk mengganti kunci. Perubahan apa pun pada fitur ini kemungkinan akan menyebabkan AndroidX tidak berfungsi dengan baik di perangkat yang terpengaruh pada 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
...