La fonctionnalité Signed Config permet d'intégrer la configuration de restrictions d'interface non SDK dans les APK. Cela permet de supprimer des interfaces non SDK spécifiques de la liste noire, permettre à AndroidX de les utiliser en toute sécurité. Cela permet à l'équipe AndroidX d'ajouter du support pour les nouvelles fonctionnalités des versions d'Android déjà publiées. Il est compatible avec Android 10 et versions ultérieures.
Une compatibilité adéquate avec Signed Config garantit que les bibliothèques AndroidX sur les appareils à l'avenir.
Aucune personnalisation de cette fonctionnalité n'est possible. Il est entièrement compatible avec AOSP et sans intervention de l'OEM.
Exemples et source
L'implémentation de la fonctionnalité se trouve dans le serveur système à l'adresse
frameworks/base/services/core/java/com/android/server/signedconfig
La CTS
CtsSignedConfigHostTestCases
test inclut un exemple d'utilisation et un exemple
configuration dans
cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml
Implémentation
Aucun effort n'est requis pour prendre en charge cette fonctionnalité, et il n'y a pas de matériel spécifique exigences.
Cette fonctionnalité utilise deux clés de métadonnées d'application pour intégrer la configuration et
signature dans les APK. Ces clés sont android.settings.global
et
android.settings.global.signature
Si ou quand les bibliothèques AndroidX nécessitent
interfaces non SDK seront supprimées de la liste noire à l'avenir, les valeurs de
ces clés seront publiées par l'équipe Android et/ou dans AndroidX.
Les clés de métadonnées de l'APK android.settings.global
et
android.settings.global.signature
contiennent toutes deux des données encodées en base64. La valeur
pour la clé android.settings.global
correspond aux valeurs de configuration encodées en JSON à appliquer
les paramètres généraux dans SettingsProvider
. La valeur de
android.settings.global.signature
est une signature ECDSA-p256 des données JSON.
La signature permet de vérifier l'origine des données de configuration.
La fonctionnalité n'est pas visible par l'utilisateur.
Personnalisation
Cette fonctionnalité n'est pas destinée à la personnalisation. Les OEM sont déconseillés modifier la fonctionnalité, y compris le remplacement des clés. Toutes les modifications qui y sont apportées susceptibles d'entraîner le dysfonctionnement d'AndroidX sur les appareils concernés dans les à venir.
Validation
Le test CTS CtsSignedConfigHostTestCases
vérifie l'implémentation de la fonctionnalité.
Vous pouvez également tester la fonctionnalité manuellement en installant un APK approprié et
en inspectant la sortie adb logcat
:
$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...