Google si impegna a promuovere l'equità razziale per le comunità nere. Vedi come.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Implementazione della configurazione firmata

La funzionalità di configurazione firmata consente di incorporare la configurazione delle restrizioni dell'interfaccia non SDK negli APK. Ciò consente di rimuovere dalla blacklist specifiche interfacce non SDK, per consentire ad AndroidX di utilizzarle in sicurezza. Ciò consente al team di AndroidX di aggiungere il supporto per le nuove funzionalità sulle versioni di Android che sono già state rilasciate. È supportato in Android 10 e versioni successive.

La corretta configurazione di Signed Config garantisce che le librerie AndroidX funzionino correttamente sui dispositivi in ​​futuro.

Non è possibile personalizzare questa funzione. È completamente supportato in AOSP e non richiede alcun impegno OEM per supportarlo.

Esempi e fonte

L'implementazione della funzione è nel server di sistema in frameworks/base/services/core/java/com/android/server/signedconfig . Il test CTS CtsSignedConfigHostTestCases include l'utilizzo di esempio e una configurazione di esempio in cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml .

Implementazione

Non è necessario alcuno sforzo per supportare la funzionalità e non sono previsti requisiti hardware specifici.

La funzione utilizza due chiavi dei metadati dell'applicazione per incorporare la configurazione e una firma negli APK. Quelle chiavi sono android.settings.global e android.settings.global.signature . Se o quando le librerie AndroidX richiederanno la rimozione di interfacce non SDK dalla lista nera in futuro, i valori per queste chiavi saranno pubblicati dal team di Android e / o come parte di AndroidX.

Le chiavi dei metadati APK android.settings.global e android.settings.global.signature contengono entrambi dati codificati in base 64. Il valore per la chiave android.settings.global sono i valori di configurazione con codifica JSON da applicare alle impostazioni globali in 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 funzione non è visibile dall'utente.

Personalizzazione

La funzione non è destinata alla personalizzazione. Gli OEM sono scoraggiati dalla modifica della funzione, inclusa la sostituzione delle chiavi. Eventuali modifiche ad esso potrebbero far sì che AndroidX non funzioni correttamente sui dispositivi interessati in futuro.

Validazione

Il test CTS CtsSignedConfigHostTestCases verifica l'implementazione della funzione.

Puoi anche testare manualmente la funzione installando un APK appropriato e controllando l'output di adb logcat :

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