Untuk aplikasi yang sama, saya punya:
- sebuah APK dari sebuah toko aplikasi,
- apa yang diklaim sebagai kode sumber untuk versi yang sama. Dengan skrip dan struktur bangun Gradle yang cukup biasa.
Saya ingin memeriksa apakah APK benar-benar dibuat dari kode sumber itu atau tidak.
Bagaimana cara memeriksanya?
Catatan:
- APK tidak dikaburkan.
- Saya tidak punya alasan untuk mempercayai tanda tangan siapa pun. Saya hanya mempercayai kode sumber.
- Saya sudah membuat aplikasi sendiri, tetapi sekarang saya ingin tahu apakah APKnya OK atau tidak.
- Lebih disukai dengan alat baris perintah Linux, tetapi alat apa pun tidak apa-apa.
diff
Metode ini kelihatannya rapi ... tapi bagaimana jika orang-orang di app store mengaburkan APK saat mengompilasinya?
.apk
file, lalu menjalankan diff terhadap direktori yang dihasilkan. Hanya perbedaan yang harus menjadi tanda tangan (yang tidak dapat cocok karena alasan yang jelas). Berpikir tentang itu: cukup membuka ritsleting.apk
file dan melakukan diff biner harus melakukan hal yang sama. Keduanya tentu saja harus menggunakan versi perpustakaan yang sama dll ketika mengkompilasi di tempat pertama :)