Saya memiliki aplikasi yang ditandatangani dan beberapa file keystore. Saya ingin memperbarui aplikasi, jadi saya perlu mencari tahu salah satu kunci yang digunakan.
Bagaimana saya bisa mencocokkan keystore mana yang awalnya digunakan untuk menandatangani aplikasi saya terhadap berbagai keystore yang saya miliki di mesin saya?
Jawaban:
Pertama, unzip APK dan ekstrak file / META-INF/ANDROID_.RSA (file ini mungkin juga CERT.RSA, tetapi seharusnya hanya ada satu file .RSA).
Kemudian terbitkan perintah ini:
Anda akan mendapatkan sidik jari sertifikat seperti ini:
Kemudian gunakan keytool lagi untuk mencetak semua alias dari keystore penandatanganan Anda:
Anda akan mendapatkan daftar alias dan sidik jari sertifikat mereka:
Voila! kita sekarang dapat menentukan bahwa apk telah ditandatangani dengan keystore ini, dan dengan alias 'android_key'.
Keytool adalah bagian dari Java, jadi pastikan PATH Anda memiliki direktori instalasi Java di dalamnya.
sumber
Anda dapat menggunakan Alat Manajemen Kunci dan Sertifikat Java 7
keytool
untuk memeriksa tanda tangan keystore atau APK tanpa mengekstrak file apa pun.Tanda tangan dari APK
Output akan mengungkapkan sidik jari pemilik APK / penerbit dan sidik jari MD5, SHA1 dan SHA256
app.apk
.(Perhatikan bahwa
-jarfile
argumen tersebut diperkenalkan di Java 7; lihat dokumentasi untuk lebih jelasnya.)Tanda tangan keystore
Output akan mengungkapkan alias (entri) dalam file keystore
release.jks
, dengan sidik jari sertifikat (MD5, SHA1 dan SHA256).Jika sidik jari SHA1 antara APK dan pencocokan keystore, maka Anda dapat yakin bahwa aplikasi tersebut ditandatangani dengan kunci.
sumber
-jarfile
argumen itu diperkenalkan dengan Java 7. Saya sudah memperbarui jawabannya.Untuk membangun jawaban Paul Lammertsma, perintah ini akan mencetak nama dan tanda tangan dari semua APK dalam direktori saat ini (saya menggunakan sh karena nanti saya perlu menyalurkan output ke grep):
find . -name "*.apk" -exec echo "APK: {}" \; -exec sh -c 'keytool -printcert -jarfile "{}"' \;
Output sampel:
Atau jika Anda hanya peduli tentang SHA1:
find . -name "*.apk" -exec echo "APK: {}" \; -exec sh -c 'keytool -printcert -jarfile "{}" | grep SHA1' \;
Output sampel:
sumber
Cara yang jauh lebih mudah untuk melihat sertifikat penandatanganan:
Ini hanya akan menampilkan DN, jadi jika Anda memiliki dua sertifikat dengan DN yang sama, Anda mungkin harus membandingkan dengan sidik jari.
sumber
Ada banyak freeware untuk memeriksa sertifikat dan penyimpanan kunci seperti KeyStore Explorer .
Buka zip apk dan buka file META-INF / ?. RSA. ? harus CERT atau ANDROID atau mungkin sesuatu yang lain. Ini akan menampilkan semua informasi yang terkait dengan apk Anda.
sumber
Anda dapat melakukan ini dengan
apksigner
alat yang merupakan bagian dari Android SDK:apksigner verify --print-certs my_app.apk
Anda dapat menemukan apksigner di dalam direktori build-tools. Sebagai contoh:
~/Library/Android/sdk/build-tools/29.0.1/apksigner
sumber