Do tej samej aplikacji mam:
- APK ze sklepu z aplikacjami,
- co jest rzekomo kodem źródłowym dla tej samej wersji. Z całkiem zwykłym skryptem i strukturą kompilacji Gradle.
Chcę sprawdzić, czy pakiet APK został naprawdę zbudowany z tego kodu źródłowego, czy nie.
Jak to sprawdzić?
Uwagi:
- Plik APK nie jest zaciemniony.
- Nie mam powodu ufać niczyjemu podpisowi. Ufam tylko kodowi źródłowemu.
- Zbudowałem już aplikację dla siebie, ale teraz chcę wiedzieć, czy APK był OK, czy nie.
- Najlepiej z narzędziami wiersza poleceń Linuksa, ale każde narzędzie jest OK.
diff
Metoda wydaje się zgrabna ... ale co jeśli faceci z App Store zaciemnili APK podczas kompilacji?
.apk
plików, a następnie uruchom różnicę względem wynikowych katalogów. Jedyną różnicą powinna być zatem sygnatura (która z oczywistych powodów nie może się równać). Myślenie o tym: po prostu rozpakowanie.apk
plików i zrobienie binarnego pliku różnicowego powinno zrobić to samo. Oba oczywiście wymagałyby użycia tych samych wersji bibliotek itp. Podczas kompilacji :)