Keytool tarafından oluşturulan anahtar deposu dosyası , özel ve genel anahtar çiftlerini depolar. Anahtar deposunda depolanan her çift veya giriş benzersiz bir takma adla belirtilir. Kısaca:
Anahtar deposu girişi = özel + genel anahtar çifti = bir takma adla tanımlanır
Anahtar deposu, her özel anahtarı kendi parolasıyla korur ve ayrıca (muhtemelen farklı) bir parola ile tüm anahtar deposunun bütünlüğünü korur.
Örneğin, Eclipse Android aracının İmzalanmış Uygulama Paketini Dışa Aktar seçeneğini kullanarak bir Android uygulamasını imzaladığınızda, önce bir anahtar deposu seçmeniz ve ardından bu anahtar deposundan tek bir takma ad / giriş / çift seçmeniz istenir. Hem anahtar deposu hem de seçilen takma ad için şifreleri sağladıktan sonra, uygulama imzalanır ve bu takma ad için genel anahtar (sertifika) APK'ye yerleştirilir.
Şimdi sorunuzu yanıtlamak için, yalnızca 'foo' takma adıyla imzalanmış bir uygulamaya güncellemeyi aynı diğer adla tekrar imzalayarak yayınlayabilirsiniz. Takma adınızın depolandığı anahtar deposunu kaybetmeniz, uygulamanızın güncellenmiş bir sürümünü yayınlamanızı engeller.
Bununla birlikte, bir uygulamayı yeni bir takma adla imzalamanın bir yolu vardır, ancak keytool -keyclone kullanarak anahtar deposunda mevcut bir takma adı klonlamayı içerir :
Orijinal girişle aynı özel anahtara ve sertifika zincirine sahip yeni bir anahtar deposu girişi oluşturur.
Orijinal giriş, diğer adla tanımlanır (sağlanmadıysa varsayılan olarak "anahtarım" olur). Yeni (hedef) giriş, dest_alias ile tanımlanır. Komut satırında hedef takma adı sağlanmadıysa, kullanıcıdan bunu yapması istenir.
Özel anahtar parolası anahtar deposu parolasından farklıysa, giriş yalnızca geçerli bir anahtar geçişi sağlandığında klonlanacaktır. Bu, takma adla ilişkili özel anahtarı korumak için kullanılan paroladır. Komut satırında anahtar parolası sağlanmadıysa ve özel anahtar parolası, anahtar deposu parolasından farklıysa, kullanıcıdan bunu girmesi istenir. Klonlanmış girişteki özel anahtar, istenirse farklı bir şifre ile korunabilir. Komut satırında -yeni yok seçeneği sağlanmışsa, kullanıcıdan yeni girişin şifresi istenir (ve klonlanmış girişin özel anahtarı ile aynı olmasını seçebilir).
Daha fazla bilgi:
http://download.oracle.com/javase/1.5.0/docs/tooldocs/solaris/keytool.html
http://developer.android.com/guide/publishing/app-signing.html