Pomijając debatę na temat zasadności zainstalowania tej aplikacji na telefonie, kwestia weryfikacji jest kwestią, którą chciałem zrozumieć od jakiegoś czasu, a ty zachęciłeś mnie, abym spróbował znaleźć sposób na sprawdzenie, kto podpisał apk.
Aplikacje na Androida są podpisywane w normalny sposób .jar (.apk to tak naprawdę tylko specjalny plik .jar, który jest po prostu specjalnym plikiem .zip), jednak śledzenie autentyczności certyfikatów może nie być trywialne, chyba że masz coś dobrego porównać do. To jest w zasadzie to, co robi sam telefon - weryfikuje, że coś, co twierdzi, że pochodzi od tej samej strony, jak coś, co już jest w telefonie, naprawdę nie jest - telefon nie odmawia instalacji rzeczy z nieznanymi sygnatariuszami, może tylko (sprzeciwić się / wyczyścić aplikację dane) pozornych fałszerstw, gdy coś nowego nie pasuje do czegoś starego, do czego się twierdzi.
Będziesz potrzebował jarsignera i keytoola. Uważam, że pochodzą one z JDK, który jest warunkiem wstępnym dla zestawu SDK systemu Android, a nie samego zestawu SDK.
Najpierw spróbuj zweryfikować klucz publiczny zawarty w .apk. Zwykle jest to plik META-INF / CERTS.RSA, ale może znajdować się w innym pliku - rozpakuje -l. Chcesz zobaczyć, co możesz o tym dowiedzieć:
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert
To zrzuci wiele informacji o tym, kim jest osoba podpisująca. Niektóre certyfikaty najwyraźniej same są podpisywane przez znane strony, ale bez zastanowienia się, jak to prześledzić, podejrzewam, że możesz zrobić coś takiego:
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
unzip -p knowngood.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
Jeśli masz znaną zaufaną aplikację tego samego autora, który użył tego samego certyfikatu. Zakładam, że wystarczą certyfikaty o tej samej sumie MD5.
Zakładając, że zdecydowałeś się zaufać certyfikatowi, możesz sprawdzić, czy został on użyty do podpisania każdego z plików w .apk
jarsigner -verbose -verify suspect.apk
(Jeśli w archiwum jest więcej niż jeden plik .RSA, należy dodać flagę -certs, aby poinformować, które certyfikaty zostały użyte do podpisania każdego pliku, aby mieć pewność, że jest to certyfikat, który zweryfikowałeś)
m.google.com/maps
czy oferuje link do pobrania lub coś podobnego?