Abgesehen von der Debatte über die Legitimität der Installation dieser App auf Ihrem Telefon ist die Frage der Überprüfung eine, die ich schon seit einiger Zeit verstehen möchte, und Sie haben mich aufgefordert, einen möglichen Weg zu finden, um zu überprüfen, wer signiert hat eine apk.
Android - Apps werden auf normale Weise von .jar - Dateien signiert (APK ist wirklich nur ein besonderes .jar die nur eine spezielle .zip ist) aber es kann nicht trivial sein zu verfolgen , um die Echtheit der Zertifikate , wenn Sie etwas gewusst haben gut vergleichen mit. Das ist im Grunde genommen das, was das Telefon selbst tut - es überprüft, ob es sich um etwas handelt, das angeblich von derselben Partei stammt wie etwas, das sich bereits auf dem Telefon befindet. Das Telefon weigert sich nicht, Dinge mit unbekannten Unterzeichnern zu installieren, sondern kann nur (Einwände gegen / Löschung von Anwendungen) Daten von offensichtlichen Fälschungen, wenn etwas Neues nicht mit etwas Altem übereinstimmt, von dem es behauptet, dass es es sei.
Sie benötigen Jarsigner und Keytool. Ich glaube, diese stammen aus dem JDK, das eine Voraussetzung für das Android-SDK und nicht für das SDK selbst ist.
Versuchen Sie zunächst, den in der APK-Datei enthaltenen öffentlichen Schlüssel zu überprüfen. Normalerweise ist dies in META-INF / CERTS.RSA, aber es kann sich auch in einer anderen Datei befinden - unzip -l wird es Ihnen mitteilen. Sie möchten sehen, was Sie darüber herausfinden können:
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert
Das wird eine Menge Informationen darüber verbreiten, wer der Unterzeichner zu sein vorgibt. Einige Zertifikate sind anscheinend selbst von bekannten Parteien signiert, aber ohne herauszufinden, wie man das nachvollziehen kann, vermute ich, dass Sie so etwas tun könnten:
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
unzip -p knowngood.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
Wenn Sie eine bekannte vertrauenswürdige apk des gleichen Autors haben, der das gleiche Zertifikat verwendet. Ich gehe davon aus, dass die Zertifikate mit der gleichen MD5-Summe ausreichen.
Angenommen, Sie haben sich dafür entschieden, dem Zertifikat zu vertrauen, können Sie feststellen, ob alle Dateien in der APK-Datei damit signiert wurden
jarsigner -verbose -verify suspect.apk
(Wenn sich mehr als eine .RSA-Datei im Archiv befindet, sollten Sie das Flag -certs hinzufügen, um anzugeben, welche Zertifikate zum Signieren der einzelnen Dateien verwendet wurden, damit Sie sicher sein können, dass es sich um das von Ihnen verifizierte Zertifikat handelt.)
m.google.com/maps
sie Ihnen einen Download-Link oder ähnliches?