O Google está comprometido em promover a equidade racial para as comunidades negras. Veja como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Implementando a configuração assinada

O recurso Configuração assinada permite incorporar a configuração de restrições de interface que não sejam SDK nos APKs. Isso permite remover interfaces não SDK específicas da lista negra, para permitir que o AndroidX as use com segurança. Isso permite que a equipe do AndroidX adicione suporte para novos recursos nas versões do Android que já foram lançadas. É suportado no Android 10 e posterior.

O suporte adequado ao Signed Config garante que as bibliotecas AndroidX funcionem corretamente em dispositivos no futuro.

Nenhuma personalização deste recurso é possível. É totalmente suportado no AOSP e não requer nenhum esforço do OEM para apoiá-lo.

Exemplos e fonte

A implementação do recurso está no servidor do sistema em frameworks/base/services/core/java/com/android/server/signedconfig . O teste CTS CtsSignedConfigHostTestCases inclui exemplos de uso e uma configuração de exemplo em cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml .

Implementação

Não é necessário nenhum esforço para suportar o recurso e não há requisitos específicos de hardware.

O recurso usa duas chaves de metadados do aplicativo para incorporar a configuração e uma assinatura dentro dos APKs. Essas chaves são android.settings.global e android.settings.global.signature . Se ou quando as bibliotecas AndroidX exigirem a remoção de interfaces não SDK da lista negra no futuro, os valores dessas chaves serão publicados pela equipe do Android e / ou como parte do AndroidX.

As chaves de metadados do APK android.settings.global e android.settings.global.signature contêm dados codificados na base 64. O valor da chave android.settings.global é valores de configuração codificados em JSON a serem aplicados às configurações globais em SettingsProvider . O valor para android.settings.global.signature é uma assinatura ECDSA-p256 dos dados JSON. A assinatura é usada para verificar a origem dos dados de configuração.

O recurso não é visível pelo usuário.

Costumização

O recurso não se destina à personalização. Os OEMs são desencorajados a modificar o recurso, incluindo a substituição das chaves. Qualquer alteração feita no AndroidX provavelmente não funcionará corretamente nos dispositivos afetados no futuro.

Validação

O teste CTS CtsSignedConfigHostTestCases verifica a implementação do recurso.

Você também pode testar o recurso manualmente instalando um APK apropriado e inspecionando a saída adb logcat :

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