una studio recuperar play modificada google generar firmar firma encrypt deshabilitar como apps app android signature android-keystore

android - studio - ¿Cómo puedo saber qué almacén de claves se utilizó para firmar una aplicación?



play encrypt private key (5)

Tengo una aplicación que está firmada y varios archivos de almacén de claves. Me gustaría actualizar la aplicación, así que necesito saber cuál de las teclas se usó.

¿Cómo puedo comparar qué almacén de claves se usó para firmar originalmente mi aplicación con varios almacenes de claves que tengo en mi máquina?


Hay muchos programas gratuitos para examinar los certificados y los almacenes de claves, como KeyStore Explorer .

Descomprima la aplicación y abra el archivo META-INF /? RSA. ? será CERT o ANDROID o puede ser otra cosa. Mostrará toda la información asociada con su apk.


Para continuar con la respuesta de Paul Lammertsma, este comando imprimirá los nombres y las firmas de todos los APKs en el directorio actual (estoy usando sh porque más tarde debo canalizar la salida a grep):

find . -name "*.apk" -exec echo "APK: {}" /; -exec sh -c ''keytool -printcert -jarfile "{}"'' /;

Salida de muestra:

APK: ./com.google.android.youtube-10.39.54-107954130-minAPI15.apk Signer #1: Signature: Owner: CN=Unknown, OU="Google, Inc", O="Google, Inc", L=Mountain View, ST=CA, C=US Issuer: CN=Unknown, OU="Google, Inc", O="Google, Inc", L=Mountain View, ST=CA, C=US Serial number: 4934987e Valid from: Mon Dec 01 18:07:58 PST 2008 until: Fri Apr 18 19:07:58 PDT 2036 Certificate fingerprints: MD5: D0:46:FC:5D:1F:C3:CD:0E:57:C5:44:40:97:CD:54:49 SHA1: 24:BB:24:C0:5E:47:E0:AE:FA:68:A5:8A:76:61:79:D9:B6:13:A6:00 SHA256: 3D:7A:12:23:01:9A:A3:9D:9E:A0:E3:43:6A:B7:C0:89:6B:FB:4F:B6:79:F4:DE:5F:E7:C2:3F:32:6C:8F:99:4A Signature algorithm name: MD5withRSA Version: 1 APK: ./com.google.android.youtube_10.40.56-108056134_minAPI15_maxAPI22(armeabi-v7a)(480dpi).apk Signer #1: Signature: Owner: CN=Unknown, OU="Google, Inc", O="Google, Inc", L=Mountain View, ST=CA, C=US Issuer: CN=Unknown, OU="Google, Inc", O="Google, Inc", L=Mountain View, ST=CA, C=US Serial number: 4934987e Valid from: Mon Dec 01 18:07:58 PST 2008 until: Fri Apr 18 19:07:58 PDT 2036 Certificate fingerprints: MD5: D0:46:FC:5D:1F:C3:CD:0E:57:C5:44:40:97:CD:54:49 SHA1: 24:BB:24:C0:5E:47:E0:AE:FA:68:A5:8A:76:61:79:D9:B6:13:A6:00 SHA256: 3D:7A:12:23:01:9A:A3:9D:9E:A0:E3:43:6A:B7:C0:89:6B:FB:4F:B6:79:F4:DE:5F:E7:C2:3F:32:6C:8F:99:4A Signature algorithm name: MD5withRSA Version: 1

O si solo te importa SHA1:

find . -name "*.apk" -exec echo "APK: {}" /; -exec sh -c ''keytool -printcert -jarfile "{}" | grep SHA1'' /;

Salida de muestra:

APK: ./com.google.android.youtube-10.39.54-107954130-minAPI15.apk SHA1: 24:BB:24:C0:5E:47:E0:AE:FA:68:A5:8A:76:61:79:D9:B6:13:A6:00 APK: ./com.google.android.youtube_10.40.56-108056134_minAPI15_maxAPI22(armeabi-v7a)(480dpi).apk SHA1: 24:BB:24:C0:5E:47:E0:AE:FA:68:A5:8A:76:61:79:D9:B6:13:A6:00


Primero, descomprima el archivo APK y extraiga el archivo /META-INF/ANDROID_.RSA (este archivo también puede ser CERT.RSA, pero solo debe haber un archivo .RSA).

Luego ejecute este comando:

keytool -printcert -file ANDROID_.RSA

Obtendrá las huellas dactilares de este certificado:

MD5: B3:4F:BE:07:AA:78:24:DC:CA:92:36:FF:AE:8C:17:DB SHA1: 16:59:E7:E3:0C:AA:7A:0D:F2:0D:05:20:12:A8:85:0B:32:C5:4F:68 Signature algorithm name: SHA1withRSA

Luego, use nuevamente keytool para imprimir todos los alias de su almacén de claves de firma:

keytool -list -keystore my-signing-key.keystore

Obtendrá una lista de alias y su huella digital de certificado:

android_key, Jan 23, 2010, PrivateKeyEntry, Certificate fingerprint (MD5): B3:4F:BE:07:AA:78:24:DC:CA:92:36:FF:AE:8C:17:DB

Voila! ahora podemos determinar que la apk se ha firmado con este almacén de claves y con el alias ''android_key''.

Keytool es parte de Java, así que asegúrate de que tu PATH tenga el directorio de instalación de Java.


Puede usar la herramienta de administración de claves y certificados de Java 7 para verificar la firma de un almacén de claves o un APK sin extraer ningún archivo.

Firma de un APK

keytool -list -printcert -jarfile app.apk

La salida revelará el propietario / emisor de la firma y las huellas dactilares MD5, SHA1 y SHA256 del archivo APK app.apk .

(Tenga en cuenta que el argumento -jarfile se introdujo en Java 7; consulte la documentación para obtener más detalles).

Firma de un almacén de claves

keytool -list -v -keystore release.jks

La salida revelará los alias (entradas) en el archivo de almacén de claves release.jks , con las huellas digitales del certificado (MD5, SHA1 y SHA256).

Si las huellas dactilares SHA1 entre el APK y el almacén de claves coinciden, puede estar seguro de que esa aplicación está firmada con la clave.


Una forma mucho más fácil de ver el certificado de firma:

jarsigner.exe -verbose -verify -certs myapk.apk

Esto solo mostrará el DN, por lo que si tiene dos certificados con el mismo DN, es posible que tenga que comparar con la huella digital.