Dejando de lado el debate sobre la legitimidad de instalar esa aplicación en su teléfono, la cuestión de la verificación es algo que he querido entender por un tiempo, y me ha pedido que intente descubrir una posible forma de verificar quién firmó un apk.
Las aplicaciones de Android están firmadas de la manera normal de los archivos .jar (.apk es realmente un .jar especial que es solo un .zip especial), sin embargo, puede que no sea trivial rastrear la autenticidad de los certificados a menos que tenga algo conocido comparar con. Eso es básicamente lo que hace el teléfono en sí mismo: verifica que algo que dice ser de la misma parte que algo que ya está en el teléfono realmente es, el teléfono no se niega a instalar cosas con firmantes desconocidos, solo puede (objetar / borrar la aplicación datos de) falsificaciones aparentes cuando algo nuevo no coincide con algo viejo que afirma.
Necesitarás tener jarsigner y keytool. Creo que estos provienen del JDK, que es un requisito previo para el SDK de Android en lugar del SDK en sí.
Primero debes intentar verificar la clave pública contenida en el archivo .apk. Por lo general, esto está en META-INF / CERTS.RSA, pero puede estar en otro archivo: descomprima -l le dirá. Desea ver lo que puede averiguar al respecto:
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert
Eso arrojará mucha información sobre quién dice ser el firmante. Aparentemente, algunos certificados están firmados por partes conocidas, pero sin descubrir cómo rastrear eso, sospecho que podría hacer algo como esto:
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
unzip -p knowngood.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
Si tiene un apk de confianza conocido del mismo autor que utilizó el mismo certificado. Supongo que los certificados que tienen la misma suma MD5 son suficientes.
Suponiendo que haya decidido confiar en el certificado, puede ver si se ha utilizado para firmar cada uno de los archivos dentro del archivo .apk
jarsigner -verbose -verify suspect.apk
(Si hay más de un archivo .RSA en el archivo, debe agregar el indicador -certs para indicar qué certificado (s) se han utilizado para firmar cada archivo, de modo que pueda estar seguro de que es el certificado que verificó)
m.google.com/maps
¿le ofrece un enlace de descarga o algo similar?