Implementa la configurazione firmata

La funzionalità Configurazione firmata consente di incorporare la configurazione delle restrizioni relative all'interfaccia non SDK negli 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 fonte

L'implementazione della funzionalità è nel server di sistema all'indirizzo frameworks/base/services/core/java/com/android/server/signedconfig. Il CTS il test CtsSignedConfigHostTestCases include un esempio di utilizzo e un esempio configurazione 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à usa due chiavi di metadati dell'applicazione per incorporare la configurazione e un all'interno degli APK. Questi tasti sono android.settings.global e android.settings.global.signature. Se o quando le librerie AndroidX richiedono interfacce non SDK da rimuovere in futuro dalla lista nera, i valori per queste chiavi saranno pubblicate dal team Android e/o come parte di AndroidX.

Le chiavi dei metadati APK android.settings.global e android.settings.global.signature entrambi contengono dati codificati in Base64. Il valore della chiave android.settings.global sono i valori di configurazione con codifica JSON da applicare le impostazioni generali di SettingsProvider. Il valore per 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 sconsigliati Modifica della funzionalità, inclusa la sostituzione delle chiavi. 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 funzione manualmente installando un APK appropriato e controllo dell'output adb logcat:

$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...