Pular para o conteúdo
ecdsa.com

Esquemas de assinatura de APK (v1–v4)

Os formatos de assinatura de apps do Android: v1, assinatura JAR; v2 (Android 7.0) e v3 (Android 9, rotação de chaves), assinaturas do arquivo inteiro no bloco de assinatura do APK; v3.1 (Android 13), rotação direcionada; e v4 (Android 11), para instalações incrementais.
Também escrito comoAPK signingAPK Signature Scheme v2APK Signature Scheme v3apksigner

O v2 assina todo o conteúdo do APK, exceto o próprio bloco de assinatura (ID do bloco 0x7109871a), de modo que qualquer modificação é detectada e a verificação é mais rápida que as verificações JAR por entrada do v1. O v3 (ID do bloco 0xf05368c0) acrescenta uma linhagem com prova de rotação para que o app possa migrar para uma nova chave de assinatura; o v3.1 permite que a rotação valha só para versões mais novas da plataforma. O v4 guarda uma assinatura em árvore de Merkle em um arquivo .idsig separado, para instalações incrementais pelo ADB, e também exige uma assinatura v2 ou v3.

Os comandos apksigner sign e apksigner verify --print-certs cuidam de todos os esquemas; a Assinatura de apps do Google Play mantém a chave de assinatura do app no lado do Google, e os desenvolvedores enviam o app com uma chave de upload separada. As atualizações precisam ser assinadas pela mesma chave ou por uma sucessora rotacionada; caso contrário, a instalação falha. O inspetor de assinaturas APK lista esquemas, signatários e linhagem.

Padrões e referências

Todos os termos