Evitando il dibattito sulla legittimità dell'installazione di quell'app sul telefono, la questione della verifica è una questione che intendevo capire da un po 'e mi hai spinto a cercare di capire un possibile modo per verificare chi ha firmato un apk.
Le app Android sono firmate nel modo normale dei file .jar (.apk è in realtà solo uno speciale .jar che è solo uno speciale .zip), tuttavia potrebbe non essere banale rintracciare l'autenticità dei certificati a meno che non si abbia qualcosa di noto Paragonare a. Questo è fondamentalmente ciò che fa il telefono stesso - verifica che qualcosa che afferma di appartenere alla stessa parte di quello che è già effettivamente sul telefono - il telefono non rifiuta di installare cose con firmatari sconosciuti, può solo (obiettare / cancellare l'applicazione dati di) falsi apparenti quando qualcosa di nuovo non corrisponde a qualcosa di vecchio a cui afferma.
Avrai bisogno di jarsigner e keytool. Credo che questi provengano dal JDK, che è un prerequisito per l'SDK Android piuttosto che per l'SDK stesso.
Per prima cosa, prova a verificare la chiave pubblica contenuta in .apk. Di solito questo è in META-INF / CERTS.RSA ma può essere in un altro file - decomprimere -l. Vuoi vedere cosa puoi scoprire al riguardo:
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert
Sta per scaricare molte informazioni su chi sostiene di essere il firmatario. Apparentemente alcuni certificati sono firmati da parti conosciute, ma senza capire come rintracciarlo, sospetto che potresti fare qualcosa del genere:
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 hai un apk attendibile noto dello stesso autore che ha utilizzato lo stesso certificato. Suppongo che i certificati con la stessa somma MD5 siano sufficienti.
Supponendo che tu abbia deciso di fidarti del certificato, allora puoi vedere se è stato usato per firmare ciascuno dei file all'interno di .apk
jarsigner -verbose -verify suspect.apk
(Se nell'archivio è presente più di un file .RSA, devi aggiungere il flag -certs per dirti quali certificati sono stati usati per firmare ogni file, quindi puoi essere sicuro che sia il certificato che hai verificato)
m.google.com/maps
ti offre un link per il download o qualcosa di simile?