Il file keystore generato da Keytool memorizza coppie di chiavi private e pubbliche. Ogni coppia o voce memorizzata nel keystore è referenziata da un alias univoco. In breve:
Voce keystore = coppia di chiavi privata + pubblica = identificata da un alias
Il keystore protegge ogni chiave privata con la sua password individuale e protegge anche l'integrità dell'intero keystore con una password (possibilmente diversa).
Ad esempio, quando si firma un'applicazione Android utilizzando l'opzione Esporta pacchetto di applicazioni firmate dello strumento Eclipse Android, viene prima chiesto di selezionare un keystore, quindi viene chiesto di selezionare un singolo alias / voce / coppia da quel keystore. Dopo aver fornito le password sia per il keystore che per l'alias scelto, l'app viene firmata e la chiave pubblica (il certificato) per quell'alias viene incorporata nell'APK.
Ora, per rispondere alla tua domanda, puoi solo rilasciare un aggiornamento a un'applicazione che è stata firmata con l'alias "foo" firmando di nuovo l'aggiornamento con lo stesso alias. La perdita del keystore in cui è archiviato il tuo alias ti impedirebbe di rilasciare una versione aggiornata della tua app.
C'è tuttavia un modo per firmare un'app con un nuovo alias, ma implica la clonazione di un alias esistente nel keystore utilizzando keytool -keyclone :
Crea una nuova voce del keystore, che ha la stessa chiave privata e la stessa catena di certificati della voce originale.
La voce originale è identificata da alias (che per impostazione predefinita è "mykey" se non fornito). La nuova voce (destinazione) è identificata da dest_alias. Se non viene fornito alcun alias di destinazione nella riga di comando, all'utente viene richiesto.
Se la password della chiave privata è diversa dalla password del keystore, la voce verrà clonata solo se viene fornito un keypass valido. Questa è la password utilizzata per proteggere la chiave privata associata all'alias. Se non viene fornita alcuna password della chiave sulla riga di comando e la password della chiave privata è diversa dalla password del keystore, all'utente viene richiesta. La chiave privata nella voce clonata può essere protetta con una password diversa, se lo si desidera. Se non viene fornita l'opzione -new nella riga di comando, all'utente viene richiesta la password della nuova voce (e può scegliere di lasciare che sia la stessa della chiave privata della voce clonata).
Maggiori informazioni:
http://download.oracle.com/javase/1.5.0/docs/tooldocs/solaris/keytool.html
http://developer.android.com/guide/publishing/app-signing.html