2010-12-08 2 views
18

Est-ce que quelqu'un sait comment (et si) vous pouvez changer le mot de passe utilisé pour signer les builds Android?Modification du mot de passe de la clé de signature Android

Nous avons une application en direct, mais nous voulons changer le mot de passe de signature. Le problème est que nous ne voulons pas forcer nos utilisateurs à réinstaller l'application (si nous utilisons une nouvelle clé, les utilisateurs ne pourront pas installer la nouvelle version en tant que mise à jour de l'application d'origine).

J'ai regardé partout dans la documentation android, mais je n'ai trouvé aucun élément lié au sujet (sauf pour faire une nouvelle clé ...).

Répondre

22

En fait, cela est possible:

keytool -storepasswd -keystore my.keystore 
+1

Même si je n'ai plus besoin du correctif, je suis sûr que vous êtes un héros pour des tonnes de développeurs! : D –

+0

@ Thomas Vervest - ce n'est ** PAS ** une réponse à votre question. Ce que cela fera au mieux, c'est changer le mot de passe qui sera utilisé dans les compilations ultérieures faites à partir de la configuration de développement sur laquelle il est exécuté. Il ne fera rien pour aider votre problème des installations existantes sous l'ancienne clé. –

+0

S'il vous plaît expliquer, est-ce que changer le mot de passe changer la clé de signature (en faisant une "nouvelle" clé)? –

4

Ceci n'est pas possible. C'est la clé de signature qui vous identifie comme l'auteur original et non comme un imposteur. La question «comment puis-je récupérer ma clé perdue» revient fréquemment, et la seule réponse est de recommencer avec une nouvelle application. Si vous possédez toujours la clé de signature d'origine, vous pouvez publier une mise à jour de votre application qui exporte les données utilisateur utilisées par votre programme, puis publier une nouvelle application sous une nouvelle clé qui peut l'importer. d être capable de garder ses données. Votre mise à jour de migration sous l'ancienne clé pourrait même utiliser une intention d'envoyer l'utilisateur à la page de téléchargement du marché pour la nouvelle application.

+0

J'avais peur que ce soit le cas ... Eh bien, je suppose que nous devrons faire quelque chose comme ça alors. Merci pour votre réponse et pour vos idées sur la façon de contourner le problème. –

+3

@Chris Je ne suis pas d'accord. La clé privée est stockée dans un fichier chiffré appelé "KeyStore", et le mot de passe utilisé pour signer les fichiers APK n'est pas le mot de passe de la clé privée: seul le mot de passe peut déchiffrer ce fichier KeyStore pour accéder à votre clé privée. . Si vous connaissez ce mot de passe, vous pouvez facilement accéder à votre clé privée et la protéger avec un nouveau mot de passe pour votre KeyStore (voir d'autres réponses basées sur 'keytool'). Et changer le mot de passe ne fait pas une nouvelle clé. Donc, l'application est bien et les utilisateurs de l'application aussi. – xav

15

Vous pouvez modifier le mot de passe key, si vous avez l'ancien mot de passe. Ce que vous devez exécuter est la commande suivante:

keytool -keypasswd -alias "key_alias" -keypass "old_pass" -new "new_pass" -keystore "your_keystore_path" 
Questions connexes