Le fichier keystore généré par Keytool stocke des paires de clés privées et publiques. Chaque paire ou entrée stockée dans le keystore est référencée par un alias unique. En bref:
Entrée du magasin de clés = paire de clés privée + publique = identifiée par un alias
Le fichier de clés protège chaque clé privée avec son mot de passe individuel et protège également l'intégrité de l'ensemble du fichier de clés avec un mot de passe (éventuellement différent).
Par exemple, lorsque vous signez une application Android à l'aide de l'option Exporter le package d'application signé de l'outil Eclipse Android, vous êtes invité à sélectionner d'abord un fichier de clés, puis à sélectionner un seul alias / entrée / paire à partir de ce fichier de clés. Après avoir fourni les mots de passe du fichier de clés et de l'alias choisi, l'application est signée et la clé publique (le certificat) de cet alias est intégrée dans l'APK.
Maintenant, pour répondre à votre question, vous ne pouvez publier une mise à jour que pour une application qui a été signée avec l'alias «foo» en signant à nouveau la mise à jour avec le même alias. La perte du keystore dans lequel votre alias est stocké vous empêcherait de publier une version mise à jour de votre application.
Il existe cependant un moyen de signer une application avec un nouvel alias, mais cela implique le clonage d'un alias existant dans le keystore à l'aide de keytool -keyclone :
Crée une nouvelle entrée de keystore, qui a la même clé privée et la même chaîne de certificats que l'entrée d'origine.
L'entrée d'origine est identifiée par un alias (qui par défaut est "mykey" s'il n'est pas fourni). La nouvelle entrée (de destination) est identifiée par dest_alias. Si aucun alias de destination n'est fourni sur la ligne de commande, l'utilisateur est invité à le saisir.
Si le mot de passe de la clé privée est différent du mot de passe du fichier de clés, l'entrée ne sera clonée que si un clavier valide est fourni. Il s'agit du mot de passe utilisé pour protéger la clé privée associée à l'alias. Si aucun mot de passe de clé n'est fourni sur la ligne de commande et que le mot de passe de clé privée est différent du mot de passe du fichier de clés, l'utilisateur est invité à le saisir. La clé privée dans l'entrée clonée peut être protégée avec un mot de passe différent, si vous le souhaitez. Si aucune option -new n'est fournie sur la ligne de commande, l'utilisateur est invité à entrer le mot de passe de la nouvelle entrée (et peut choisir de le laisser être le même que pour la clé privée de l'entrée clonée).
Plus d'information:
http://download.oracle.com/javase/1.5.0/docs/tooldocs/solaris/keytool.html
http://developer.android.com/guide/publishing/app-signing.html