La función de configuración firmada permite incorporar la configuración de restricciones de interfaz que no pertenecen al SDK en los APK. Esto permite eliminar interfaces específicas que no pertenecen al SDK de la lista negra, para permitir que AndroidX las use de forma segura. Esto permite que el equipo de AndroidX agregue soporte para nuevas funciones en versiones de Android que ya se han lanzado. Es compatible con Android 10 y versiones posteriores.
La compatibilidad adecuada con Signed Config garantiza que las bibliotecas de AndroidX funcionarán correctamente en los dispositivos en el futuro.
No es posible personalizar esta función. Es totalmente compatible con AOSP y no requiere ningún esfuerzo del OEM para admitirlo.
Ejemplos y fuente
La implementación de la función se encuentra en el servidor del sistema en frameworks/base/services/core/java/com/android/server/signedconfig
. La prueba CTS CtsSignedConfigHostTestCases
incluye un ejemplo de uso y una configuración de ejemplo en cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml
.
Implementación
No se requiere ningún esfuerzo para admitir la función y no hay requisitos de hardware específicos.
La función utiliza dos claves de metadatos de la aplicación para incorporar la configuración y una firma dentro de los APK. Esas claves son android.settings.global
y android.settings.global.signature
. Si las bibliotecas de AndroidX requieren que las interfaces que no sean SDK se eliminen de la lista negra en el futuro, el equipo de Android y / o como parte de AndroidX publicarán los valores de estas claves.
Las claves de metadatos del APK android.settings.global
y android.settings.global.signature
contienen datos codificados en base 64. El valor de la clave android.settings.global
son valores de configuración codificados en JSON que se aplicarán a la configuración global en SettingsProvider
. El valor de android.settings.global.signature
es una firma ECDSA-p256 de los datos JSON. La firma se utiliza para verificar el origen de los datos de configuración.
La función no es visible para el usuario.
Personalización
La función no está destinada a la personalización. Se desaconseja a los OEM que modifiquen la función, incluida la sustitución de las llaves. Es probable que cualquier cambio haga que AndroidX no funcione correctamente en los dispositivos afectados en el futuro.
Validación
La prueba CTS CtsSignedConfigHostTestCases
verifica la implementación de la característica.
También puede probar la función manualmente instalando un APK apropiado e inspeccionando la salida de adb logcat
:
$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...