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:
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert
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:
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
unzip -p knowngood.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
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
jarsigner -verbose -verify suspect.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)
m.google.com/maps
:, ela oferece um link para download ou algo parecido?