válida una subido studio programa play modificada has google generar firmar firma encrypt deshabilitar con como apps app android signing apk

android - una - play encrypt private key



¿Puedo volver a firmar una.apk con un certificado diferente de lo que vino? (7)

Firma del lanzamiento: $ 1.apk -> $ 1_release.apk "GeneralMills & GoogleApps # 2012 Paso 1: Eliminación de cualquier firma anterior Cambie la extensión de su .apk a .zip Abra y elimine la carpeta META-INF Cambie la extensión a .apk o Comando : • zip [originalapk] Ejemplo: • zip "$ 1" .apk -d

Paso 2: firma con release.keystore .. Comando: • jarsigner -verbose -keystore [keystorefile] -signedjar [unalignedapk] [originalapk] alias_name Ejemplo: • C: / Program Files / Java / jdk1.6.0_43 / bin> jarsigner - verbose -keystore release.keystore -signedjar "$ 1" _unaligned.apk "$ 1" .apk release

Paso 3: comando de alineación: • zipalign -f 4 [unalignedapk] [releaseapk] Ejemplo: • C: / Users / G535940 / Descargas / adt-bundle-windows-x86 / adt-bundle-windows-x86 / sdk / too ls> zipalign -f 4 "$ 1" _unaligned.apk "$ 1" _release.apk

Paso 4: Comando de limpieza: • rm 4 [unalignedapk] Ejemplo: • rm "$ 1" _unaligned.apk

Comandos adicionales pueden ayudar:

  1. Para generar una nueva clave con keytool keytool -genkey -alias -keystore

  2. Para listar las claves keytool -list -keystore

Comando para generar un keyhash para las características de Facebook

Comando: • keytool -exportcert -alias alias_name -keystore [keystorefile] | openssl sha1 -binary | openssl base64

Ejemplo: • C: / Archivos de programa / Java / jdk1.6.0_43 / bin> keytool -exportcert -alias release -keyst release release.keystore | opens l sha1 -binary | openssl base64

Nota: Para firmar nuestros apk, hemos degradado JDK de 1.7 a 1.6.0_43 actualización.

Motivo: A partir de JDK 7, el algoritmo de firma predeterminado ha cambiado, lo que requiere que especifique los algoritmos de firma y resumen (-sigalg y -digestalg) cuando firma un APK.

Comando: jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore [keystorefile] [originalapk] alias_name

Si tengo una aplicación, ¿puedo eliminar la firma actual y cómo volver a firmarla con un archivo .keystore diferente y aún así tener la instalación de la aplicación?

Actualización : Logré hacer que funcionara con la solución de Jorgesys y donde me equivoqué antes fue que descomprimí el archivo .apk y lo reescribí después de eliminar la carpeta META-INF y cambié la extensión de archivo a .apk. Lo que debería haber hecho es simplemente abrirlo con winzip y eliminar la carpeta dentro de winzip.


Si está buscando una solución rápida, puede usar el script de apk-resigner de código abierto o la herramienta apksigner de Google.

./signapk.sh application.apk keystore key-pass alias

  • Alternativamente, incluso una solución más simple, puede usar la herramienta de línea de comandos apksigner de Google, que está disponible en la revisión 24.0.3 y posteriores.

apksigner sign --ks release.jks application.apk

Puede encontrar más información sobre la herramienta apksigner en el sitio de desarrollador de Android.

https://developer.android.com/studio/command-line/apksigner.html


Suponiendo que sus claves están almacenadas en keys.keystore , puede ejecutar:

$ keytool -list -keystore keys.keystore Your keystore contains 1 entry your_key_alias, Jan 3, 2013, PrivateKeyEntry, Certificate fingerprint (SHA1): 8C:C3:6A:DC:7E:B6:12:F1:4C:D5:EE:F1:AE:17:FB:90:89:73:50:53

para determinar el alias de tu clave Entonces corre:

zip -d your_app.apk "META-INF/*" jarsigner -verbose -keystore keys.keystore / -sigalg MD5withRSA -digestalg SHA1 -sigfile CERT / your_app.apk your_key_alias

para volver a firmar your_app.apk con la clave llamada your_key_alias .

La opción de -sigfile CERT extra- -sigfile CERT parece ser necesaria a partir de JDK 8.


Tenga en cuenta que si usa el esquema de firma v2 (que usará automáticamente si usa build-tools 24.0.3+ en AS), no puede simplemente eliminar la carpeta META-INF de APK, ya que v2 agrega sus datos de firma a un meta bloque de zip.

Sin https://developer.android.com/studio/command-line/apksigner.html Google introducido en build-tools 24.03 (Android 7) puede resignar APK. Simplemente puede repetir el comando de firma para firmar con un nuevo keystore / cert (los antiguos serán eliminados).

apksigner sign --ks keystore.jks signed_app.apk

Plug desvergonzado: si quieres una herramienta más fácil que pueda firmar múltiples aplicaciones y tenga una mejor salida de registro, utiliza: https://github.com/patrickfav/uber-apk-signer (usa el apksigner.jar de Google en el fondo)


Todas las soluciones anteriores funcionan. Solo una nota por qué no funcionó para usted cuando volvió a comprimir:

Algunos de los archivos dentro de .apk deben permanecer almacenados (compresión al 0%). Esto se debe a que Android utilizará la asignación de memoria (mmap) para leer los contenidos sin desempaquetarlos en la memoria. Dichos archivos son .ogg y algunos de los íconos.


prueba esto

1) Cambie la extensión de su archivo .apk a .zip

2) Abra y elimine la carpeta META-INF

3) Cambie la extensión a .apk

4) Usa jarsigner y zipalign con tu nuevo keystore.

Espero eso ayude


zip -d my_application.apk META-INF//* keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000 jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk