2010-12-08 12 views
18

¿Alguien sabe cómo (y si) puede cambiar la contraseña utilizada para firmar compilaciones de Android?Cambiar la contraseña de la clave de firma de Android

Tenemos una aplicación en vivo, pero queremos cambiar la contraseña de firma. El problema es que no queremos forzar a nuestros usuarios a reinstalar la aplicación (si usamos una nueva clave, los usuarios no podrán instalar la nueva compilación como una actualización de la aplicación original).

He revisado toda la documentación de Android, pero no he podido encontrar nada relacionado con el tema (excepto para crear una nueva clave ...).

Respuesta

22

En realidad, esto es posible:

keytool -storepasswd -keystore my.keystore 
+1

Aunque ya no necesito la solución, ¡estoy seguro de que eres un héroe para miles de desarrolladores! : D –

+0

@Thomas Vervest: esta es ** NO ** una respuesta a su pregunta. Lo que esto hará, en el mejor de los casos, es cambiar la contraseña que se usaría en las compilaciones posteriores realizadas desde la configuración de desarrollo en la que se ejecuta. No hará nada para ayudar a resolver el problema de las instalaciones existentes bajo la clave anterior. –

+0

Explique, ¿el cambio de contraseña cambia la clave de firma (convirtiéndola en una "nueva" clave)? –

4

Esto no es posible. Es la clave de firma que lo identifica como el autor original y no como un impostor. La pregunta "¿Cómo recupero mi clave perdida?" Aparece con frecuencia, y la única respuesta es volver a comenzar con una nueva aplicación.

Si todavía tiene la clave de firma original, puede lanzar una actualización de su aplicación que exporta los datos de usuario utilizados por su programa y luego lanzar una nueva aplicación bajo una nueva clave que puede importarlo, por lo que al menos ' d ser capaz de mantener sus datos. Su actualización de migración bajo la clave anterior podría incluso utilizar la intención de enviar al usuario a la página de descarga del mercado para la nueva aplicación.

+0

Tenía miedo de que ese fuera el caso ... Ah, bueno, supongo que tendremos que hacer algo así entonces. Gracias por su respuesta y sus ideas sobre cómo solucionar el problema. –

+3

@Chris No estoy de acuerdo. La clave privada se almacena en un archivo cifrado llamado "KeyStore", y la contraseña que todos utilizan para firmar APK no es en realidad la contraseña de la clave privada: es solo la contraseña que puede descifrar el archivo KeyStore para que pueda acceder a su clave privada . Si conoce esta contraseña, puede acceder fácilmente a su clave privada y protegerla con una nueva contraseña para su KeyStore (consulte otras respuestas basadas en 'keytool'). Y cambiar la contraseña no la convierte en una nueva clave. Entonces la aplicación está bien y también lo están los usuarios de la aplicación. – xav

15

Puede cambiar la contraseña key, si usted tiene la contraseña anterior. Lo que necesita ejecutar es el siguiente comando:

keytool -keypasswd -alias "key_alias" -keypass "old_pass" -new "new_pass" -keystore "your_keystore_path" 
Cuestiones relacionadas