A atualização mais recente do Google Maps não está disponível no meu país, então eu baixei uma versão pesquisando no Google "Google Maps 5.4.0 apk". Na verdade, eu o encontrei, mas agora me pergunto como posso saber se essa é realmente a mesma versão do mercado.
Como posso ter certeza de que não foi adulterado? Os aplicativos são assinados de alguma forma? Existe alguma maneira de verificar as assinaturas?
m.google.com/maps
:, ela oferece um link para download ou algo parecido?Respostas:
Evitando o debate sobre a legitimidade da instalação desse aplicativo no seu telefone, a questão da verificação é uma que pretendo entender há um tempo, e você me levou a tentar descobrir uma possível maneira de verificar quem assinou um apk.
Os aplicativos para Android são assinados da maneira normal dos arquivos .jar (.apk é realmente apenas um .jar especial, que é apenas um .zip especial), no entanto, pode não ser trivial rastrear a autenticidade dos certificados, a menos que você tenha algo conhecido como bom. comparado a. Isso é basicamente o que o telefone em si faz - verifica se algo que alega ser da mesma parte que já existe no telefone - o telefone não se recusa a instalar coisas com assinantes desconhecidos, apenas pode (se opor a / limpar o aplicativo dados de) falsificações aparentes quando algo novo não corresponde a algo antigo que alega.
Você precisará ter jarsigner e keytool. Acredito que eles vêm do JDK, que é um pré-requisito para o SDK do Android e não para o próprio SDK.
Primeiro, você deseja tentar verificar a chave pública contida no .apk. Normalmente, isso está no META-INF / CERTS.RSA, mas pode estar em outro arquivo - descompacte -l. Você quer ver o que pode descobrir sobre isso:
Isso vai despejar muitas informações sobre quem o assinante afirma ser. Aparentemente, alguns certificados são assinados por partes conhecidas, mas sem descobrir como rastrear isso, suspeito que você possa fazer algo assim:
Se você possui um apk confiável conhecido do mesmo autor que usou o mesmo certificado. Estou assumindo que os certificados com a mesma soma MD5 são suficientes.
Supondo que você tenha decidido confiar no certificado, poderá ver se ele foi usado para assinar cada um dos arquivos no .apk
(Se houver mais de um arquivo .RSA no arquivo morto, você deve adicionar o sinalizador -certs para informar quais certificados foram usados para assinar cada arquivo, para ter certeza de que é o certificado que verificou)
fonte
Existe (agora) uma
apksigner
ferramentabuild-tools
que faz o que você deseja. Dos documentos :fonte
Você também pode tentar fazer o upload do APK para o verificador de vírus VirusTotal.com gratuito . Ele gerará um hash exclusivo para o APK e, se outros já tiverem feito o upload para testá-lo (muito provavelmente), você terá mais uma idéia de que o APK é válido.
O serviço também analisará o APK com mais de 60 antivírus e informará se ele acredita que possui assinaturas semelhantes aos vírus já encontrados.
fonte
Para comparar certificados de um arquivo apk suspeito, talvez uma idéia seja fazer o download da versão na Play Store oficial no seu telefone, fazendo um backup no seu computador e vá no diretório de backup, selecione o arquivo apk em questão e faça as mesmas verificações. Você também pode visualizar os certificados do Google fazendo a verificação em um aplicativo padrão do dispositivo (como qualquer com.google.android. * Apk)
fonte
A maneira correta de verificar um arquivo APK é usar
apksigner
.apksigner
faz parte das ferramentas de construção do Android, portanto, você pode encontrar várias versões instaladas, uma para cada versão das ferramentas de construção instalada.Um caminho de exemplo no SDK do Android para
apksigner
é:Execute o apksigner da seguinte maneira:
Agora você verificou o APK, mas ainda não sabe se pode confiar na pessoa / organização que assinou o arquivo APK. Isso ocorre porque no Android APK as assinaturas usam, por definição, certificados autoassinados. Se você pode confiar em um certificado, é uma pergunta difícil. A única maneira é verificar os outros aplicativos que foram assinados usando o mesmo certificado.
A única maneira que sei fazer isso é usar o serviço de rastreamento PlayStore androidobservatory.org. Possui uma API para verificar quais aplicativos foram assinados pelo mesmo certificado usando o resumo SHA-1 do certificado:
Edit: apkmirror.com também permite procurar o resumo do certificado. Basta digitar o resumo do certificado SHA-1 ou SHA-256 (sem dois pontos ou espaços) no campo de pesquisa:
Nesta página, você pode ver todos os outros arquivos APK da Google Play Store assinados com o mesmo certificado.
fonte