2012-07-06 1 views
35

Come faccio a ottenere i dettagli del certificato con cui è stato firmato un apk. Ho un sacco di apk firmati con certificato diverso e sto cercando di raggrupparli in base al loro certificato.Ottenere i dettagli del certificato da un'apk

Posso ottenere i dettagli della scadenza del certificato utilizzando jarsigner e completare il mio compito ma ero curioso di ottenere ulteriori dettagli o estrarre la chiave pubblica (credo che sia memorizzata in META-INF/cert.RSA ma non è leggibile)

+0

si può fare [runtime] (http://stackoverflow.com/a/7632973/967142) estraendo il X509Certificate dalla app (s) - dovrebbe anche dare y ou la chiave pubblica presumo. – Jens

+0

Mi piacerebbe farlo senza codice (Si prega di non farmi male stackoverflow) –

+0

possibile duplicato di [Come visualizzare l'identità della persona che ha firmato l'apk sul dispositivo Android?] (Http://stackoverflow.com/questions/ 4324120/how-to-view-the-identity-of-person-who-signed-the-apk-on-android-device) –

risposta

37

provare quanto segue:

openssl pkcs7 -inform DER -in CERT.RSA -noout -print_certs -text 
+4

È possibile ottenere alcune informazioni anche con 'keytool' di java:' keytool -printcert -file CERT .RSA', ma 'openssl' è più prolisso, per questo lo preferisco. – pevik

30

unzip -p Name-of-apk.apk META-INF/CERT.RSA | keytool -printcert è quello che ho usato.

Produce informazioni quali il proprietario, l'emittente, il numero di serie, la validità, le impronte digitali certificate, gli algoritmi di firma e la versione.

19

Sulla base delle risposte esistenti, ecco la linea di comando per on-the-fly utilizzo di openssl(decomprimere & pipe il CERT invece di definire un'opzione -infile):

unzip -p App.apk META-INF/CERT.RSA |openssl pkcs7 -inform DER -noout -print_certs -text 
+0

non c'è SHA1 – HendraWD

2

senza disimballare è possibile utilizzare ApkSigner da Android SDK e seguente:

apksigner.jar verify --print-certs myApplication.apk 
+1

Ottima risposta. Si noti che a partire da Android 7, è stato introdotto un nuovo schema di firma (V2) che produrrà file APK senza CERT.RSA. Quindi i vecchi metodi (che usano openssl/keytool) non funzioneranno. (vedi: https://source.android.com/security/apksigning/v2) –