La funzionalità Configurazione firmata consente di incorporare la configurazione delle limitazioni relative alle interfacce non SDK in APK. Ciò consente di rimuovere dalla lista nera interfacce non SDK specifiche, consentono ad AndroidX di usarli in sicurezza. Ciò consente al team di AndroidX di aggiungere supporto per le nuove funzionalità delle versioni di Android già rilasciate. È supportata in Android 10 e versioni successive.
Il corretto supporto di Signed Config assicura che le librerie AndroidX funzionino correttamente sui dispositivi in futuro.
Non è possibile personalizzare questa funzionalità. È completamente supportato in AOSP e non richiede alcun impegno da parte dell'OEM per supportarlo.
Esempi e origine
L'implementazione della funzionalità è nel server di sistema all'indirizzo
frameworks/base/services/core/java/com/android/server/signedconfig
. Il test CTS CtsSignedConfigHostTestCases
include un esempio di utilizzo e una configurazione di esempio in cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml
.
Implementazione
Non è richiesto alcun impegno per supportare la funzionalità e non sono previsti hardware specifici i tuoi requisiti.
La funzionalità utilizza due chiavi dei metadati dell'applicazione per incorporare la configurazione e una firma all'interno degli APK. Questi tasti sono android.settings.global
e
android.settings.global.signature
. Se o quando le librerie AndroidX richiederanno in futuro la rimozione di interfacce non SDK dalla lista nera, i valori di queste chiavi verranno pubblicati dal team di Android e/o nell'ambito di AndroidX.
Le chiavi dei metadati APK android.settings.global
e
android.settings.global.signature
contengono entrambe dati codificati in base 64. Il valore
della chiave android.settings.global
sono i valori di configurazione con codifica JSON da applicare
le impostazioni globali di SettingsProvider
. Il valore di android.settings.global.signature
è una firma ECDSA-p256 dei dati JSON.
La firma viene utilizzata per verificare l'origine dei dati di configurazione.
La funzionalità non è visibile all'utente.
Personalizzazione
La funzionalità non è destinata alla personalizzazione. Gli OEM sono scoraggiati dall'effettuare modifiche alla funzionalità, inclusa la sostituzione dei tasti. Eventuali modifiche vengono che causino il malfunzionamento di AndroidX sui dispositivi interessati per il futuro.
Convalida
Il test CTS CtsSignedConfigHostTestCases
verifica l'implementazione della funzionalità.
Puoi anche testare la funzionalità manualmente installando un APK appropriato e
controllo dell'output adb logcat
:
$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...