O que é apkkey e como usá-lo?
Se você é um desenvolvedor Android, já deve ter ouvido falar apkkey, uma ferramenta que permite assinar e verificar APKs. Mas o que exatamente é o apkkey e como você pode usá-lo para melhorar o processo de desenvolvimento do seu aplicativo? Neste artigo, responderemos a essas perguntas e mostraremos como usar o apkkey para assinar, verificar e alternar chaves de assinatura para seus APKs.
Introdução
apkkey é uma ferramenta que está disponível na revisão 24.0.3 e superior do Android SDK Build Tools. Ele permite que você assine APKs e confirme que suas assinaturas serão verificadas com sucesso em todas as versões da plataforma Android suportadas por esse APK. Assinar um APK garante que ele não foi adulterado e que vem de uma fonte confiável. A verificação da assinatura de um APK confirma que ele corresponde à assinatura esperada e que pode ser instalado em dispositivos compatíveis.
apkkey
O apkkey é útil para desenvolvedores Android porque simplifica o processo de assinatura e fornece mais flexibilidade e segurança do que outras ferramentas. Por exemplo, o apkkey oferece suporte a vários assinantes, rotação de chaves, remoção de assinatura, esquema de assinatura v4 e muito mais. Ele também funciona com arquivos Java KeyStore e arquivos separados de chave privada e certificado.
Para instalar o apkkey no seu computador, você precisa ter o Android Studio instalado e atualizado. Você pode encontrar apkkey no build-tools// diretório do caminho de instalação do Android SDK. Você também pode acessar o apkkey do Android Studio abrindo Ferramentas > SDK Manager > Ferramentas do SDK aba.
Como assinar um APK usando apkkey?
Assinar um APK é uma etapa crucial antes de distribuir seu aplicativo aos usuários ou carregá-lo na Google Play Store. Assinar um APK garante que ele não foi modificado por terceiros e que pode ser atualizado pelo mesmo desenvolvedor no futuro. Assinar um APK também permite que você use recursos avançados, como pacotes de aplicativos, entrega dinâmica e aplicativos instantâneos.
Para assinar um APK usando apkkey, você precisa ter os seguintes requisitos:
Um arquivo APK que você deseja assinar
Uma configuração de assinatura que especifica o nome, a chave privada e o certificado do signatário
Uma versão mínima do SDK compatível com seu aplicativo
Uma versão máxima do SDK compatível com seu aplicativo (opcional)
Você pode criar uma configuração de assinatura usando apkkey executando o seguinte comando:
apkkey genkey --out --ks --ks-key-alias --ks-pass pass: --key-pass pass:
Este comando irá gerar um arquivo Java KeyStore que contém a chave privada e o certificado para seu signatário. Você também pode usar arquivos separados de chave privada e certificado em vez de um arquivo Java KeyStore usando o --chave e --cert opções.
Depois de ter uma configuração de assinatura, você pode assinar um APK usando apkkey executando o seguinte comando:
apkkey sign --out --ks --ks-key-alias --ks-pass pass: --key-pass pass: --min-sdk-version [--max-sdk-version ]
Este comando assinará o arquivo APK de entrada com o signatário especificado e gerará um arquivo APK assinado. Você também pode usar o --assinatura v4 habilitada opção para ativar o esquema de assinatura v4, que é recomendado para aplicativos direcionados ao Android 11 ou superior. Como verificar a assinatura de um APK usando apkkey?
Verificar a assinatura de um APK é uma maneira útil de verificar se o APK foi assinado corretamente e se pode ser instalado em dispositivos compatíveis. A verificação da assinatura de um APK também pode ajudar a detectar possíveis adulterações ou corrupção do arquivo APK.
Para verificar a assinatura de um APK usando apkkey, você precisa ter os seguintes requisitos:
Um arquivo APK que você deseja verificar
Uma versão mínima do SDK compatível com seu aplicativo
Uma versão máxima do SDK compatível com seu aplicativo (opcional)
Você pode verificar a assinatura de um APK usando apkkey executando o seguinte comando:
verificação de apkkey --min-sdk-version [--max-sdk-version ]
Este comando verificará a assinatura do arquivo APK de entrada e gerará um relatório de verificação. O relatório de verificação mostrará os signatários, esquemas de assinatura e resultados de verificação para cada signatário e cada versão de plataforma suportada. Você também pode usar o --print-certs opção para imprimir os certificados dos signatários.
A saída de verificação do apkkey será mais ou menos assim:
Signer #1 certificate DN: CN=Test, OU=Test, O=Test, L=Test, ST=Test, C=US Signer #1 certificate SHA-256 digest: 1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef Signer #1 certificate SHA-1 digest: 12345 67890abcdef1234567890 Signer #1 certificado MD5 digest: 1234567890abcdef Signer #1 algoritmo chave: RSA Signer #1 tamanho da chave (bits): 2048 Signer #1 chave pública SHA-256 digest: 1234567890abcdef1234567890abcdef1234567890abcdef 1234567890abcdef Assinante nº 1 chave pública SHA-1 resumo: 1234567890abcdef1234567890 Signatário nº 1 chave pública MD5 resumo: 1234567890abcdef Verificado usando esquema v1 (assinatura JAR): verdadeiro Verificado usando esquema v2 (esquema de assinatura APK v2): verdadeiro Verificado usando esquema v3 (esquema de assinatura APK v3): verdadeiro Verificado usando o esquema v4 (Esquema de Assinatura APK v4): verdadeiro Verificado para SourceStamp: verdadeiro Número de signatários: 1 AVISO: META-INF/TEST.SF indica que o APK foi assinado usando o Esquema de Assinatura APK v3, mas essa assinatura não foi encontrada. Assinatura removida? AVISO: META-INF/TEST.RSA indica que o APK foi assinado usando o APK Signature Scheme v3, mas essa assinatura não foi encontrada. Assinatura removida? Verifica em todas as versões de plataforma (24+): verdadeiro Verifica em versões de plataforma [24, 29]: verdadeiro Verifica em versões de plataforma [30, ]: verdadeiro
A saída de verificação do apkkey informará se o APK é assinado usando esquemas de assinatura v1, v2, v3 ou v4 e se verifica em todas ou algumas versões da plataforma. Ele também irá avisá-lo se houver discrepâncias ou problemas com a assinatura, como assinaturas ausentes ou removidas, algoritmos sem suporte ou certificados inválidos. Como girar as chaves de assinatura usando o apkkey?
A rotação de chaves de assinatura é um processo de alteração da chave privada e do certificado que você usa para assinar seus APKs. Isso pode ser útil em alguns cenários, como quando sua chave de assinatura original é perdida, comprometida ou expirada, ou quando você deseja transferir seu aplicativo para uma conta de desenvolvedor diferente.
Para rotacionar chaves de assinatura usando apkkey, você precisa ter os seguintes requisitos:
Um arquivo APK para o qual você deseja girar a chave de assinatura
Uma nova configuração de assinatura que especifica o nome, a chave privada e o certificado do novo signatário
Uma versão mínima do SDK compatível com seu aplicativo
Uma versão máxima do SDK compatível com seu aplicativo (opcional)
Você pode girar as chaves de assinatura usando o apkkey executando o seguinte comando:
apkkey rotate --out --ks --ks-key-alias --ks-pass pass: --key-pass pass: --min-sdk-version [--max-sdk-version ]
Este comando girará a chave de assinatura para o arquivo APK de entrada com o novo signatário especificado e gerará um arquivo APK girado. Você também pode usar o --assinatura v4 habilitada opção para ativar o esquema de assinatura v4, que é recomendado para aplicativos direcionados ao Android 11 ou superior.
Girar as chaves de assinatura usando apkkey preservará a assinatura original do APK e adicionará uma nova assinatura sobre ela. Isso significa que o APK girado ainda será reconhecido como assinado pelo signatário original e poderá ser atualizado em dispositivos que instalaram o APK original.No entanto, o APK girado também será reconhecido como assinado pelo novo signatário e poderá ser atualizado em dispositivos que tenham instalado o APK girado.
Para atualizar seu aplicativo com chaves de assinatura rotacionadas na Google Play Store, você precisa seguir estas etapas:
Carregue seu APK rotacionado para o Google Play Console como uma nova versão
Inscrever seu aplicativo na assinatura de aplicativos do Google Play
Exporte e faça upload de sua chave de assinatura original para o Google Play Console
Publique a atualização do seu aplicativo
Conclusão
Neste artigo, aprendemos o que é apkkey e como usá-lo para assinar, verificar e alternar chaves de assinatura para seus APKs. O apkkey é uma ferramenta poderosa que pode ajudá-lo a simplificar e proteger o processo de desenvolvimento de aplicativos. Aqui estão algumas dicas e práticas recomendadas para usar o apkkey:
Sempre faça backup de suas chaves de assinatura e mantenha-as em um local seguro
Use diferentes chaves de assinatura para diferentes aplicativos ou pacotes de aplicativos
Use o esquema de assinatura v4 para aplicativos direcionados ao Android 11 ou superior
Verifique seus APKs antes de distribuí-los aos usuários ou carregá-los na Google Play Store
Gire suas chaves de assinatura somente quando necessário e siga as diretrizes de assinatura de aplicativos do Google Play
Esperamos que você tenha achado este artigo útil e informativo. Se você tiver algum comentário ou pergunta, sinta-se à vontade para deixar um comentário abaixo. Codificação feliz!
perguntas frequentes
Qual é a diferença entre apkkey e jarsigner?
jarsigner é outra ferramenta que pode ser usada para assinar APKs, mas tem algumas limitações em relação ao apkkey. Por exemplo, o jarsigner oferece suporte apenas ao esquema de assinatura v1, que não é compatível com alguns recursos do Android, como aplicativos instantâneos. jarsigner também não oferece suporte a vários assinantes, rotação de chave, remoção de assinatura ou esquema de assinatura v4. Portanto, o apkkey é recomendado em vez do jarsigner para assinar APKs.
Como posso verificar a versão do apkkey no meu computador?
Você pode verificar a versão do apkkey no seu computador executando o seguinte comando:
apkkey --version
Este comando imprimirá o número da versão do apkkey e as Android SDK Build Tools às quais ele pertence.
Como posso assinar um pacote de aplicativos usando o apkkey?
Um pacote de aplicativos é um novo formato para distribuição de aplicativos Android que permite que a Google Play Store gere APKs otimizados para diferentes configurações de dispositivos. Para assinar um pacote de aplicativos usando apkkey, você precisa usar o mesmo comando usado para assinar um APK, mas com um .aab arquivo em vez de um .apk arquivo. Por exemplo:
apkkey sign --out --ks --ks-key-alias --ks-pass pass: --key-pass pass: --min-sdk-version [--max-sdk-version ]
Este comando assinará o arquivo de pacote de aplicativo de entrada com o signatário especificado e gerará um arquivo de pacote de aplicativo assinado. Você também pode usar o --assinatura v4 habilitada opção para ativar o esquema de assinatura v4, que é recomendado para pacotes de aplicativos direcionados ao Android 11 ou superior.
Como posso extrair os certificados dos signatários de um APK usando apkkey?
Às vezes, você pode querer extrair os certificados dos signatários de um APK para vários fins, como verificar sua autenticidade, verificar sua data de validade ou importá-los para outra ferramenta. Para extrair os certificados dos signatários de um APK usando apkkey, você precisa executar o seguinte comando:
apkkey extract-certs --out
Este comando extrairá os certificados de todos os signatários do arquivo APK de entrada e os salvará como arquivos separados no diretório de saída. Os arquivos serão nomeados como --.x509.pem, onde <signer_index> é o índice do signatário, <scheme_id> é o esquema de assinatura usado pelo signatário, e <cert_index> é o índice do certificado na cadeia de certificados do assinante.
Como posso otimizar um APK usando apkkey?
A otimização de um APK é um processo de reduzir seu tamanho e melhorar seu desempenho removendo dados desnecessários ou redundantes.Isso pode ajudar você a economizar largura de banda, espaço de armazenamento e uso de memória para seu aplicativo. Para otimizar um APK usando apkkey, você precisa executar o seguinte comando:
apkkey optimize --out
Este comando otimizará o arquivo APK de entrada e gerará um arquivo APK otimizado. O processo de otimização executará as seguintes ações:
Remova o preenchimento de alinhamento do arquivo ZIP
Remover bibliotecas nativas descompactadas
Remover arquivos de assinatura
Remover informações de depuração
Recompacte recursos usando o algoritmo Zopfli
0517a86e26
Comments