Für die gleiche App habe ich:
- eine APK aus einem App Store,
- Was soll der Quellcode für die gleiche Version sein. Mit einem ziemlich üblichen Gradle-Build-Skript und einer Struktur.
Ich möchte überprüfen, ob die APK wirklich aus diesem Quellcode erstellt wurde oder nicht.
Wie überprüfe ich das?
Anmerkungen:
- Die APK ist nicht verschleiert.
- Ich habe keinen Grund, jemandes Unterschrift zu vertrauen. Ich vertraue nur dem Quellcode.
- Ich habe die App bereits für mich selbst erstellt, aber jetzt möchte ich wissen, ob die APK in Ordnung war oder nicht.
- Am besten mit Linux-Befehlszeilentools, aber jedes Tool ist in Ordnung.
diff
Methode scheint ordentlich zu sein ... aber was ist, wenn die Leute vom App Store die APK beim Kompilieren verschleiert haben?
.apk
Dateien, dann führen Sie einen Diff für die resultierenden Verzeichnisse aus. Einziger Unterschied sollte dann die Signatur sein (die aus offensichtlichen Gründen nicht übereinstimmen kann). Denken Sie darüber nach: Das einfache Entpacken der.apk
Dateien und das Ausführen eines binären Diff sollten dasselbe tun. Beide würden natürlich erfordern, dass sie beim Kompilieren die gleichen Bibliotheksversionen usw. verwendet haben :)