Intereting Posts
Как удалить фокус из EditText, когда пользователь закончил редактирование? Сохранение настраиваемого массива объектов в состоянии экземпляра Список разрешений Android для обычных разрешений и опасных разрешений в API 23? Android: как заставить активность возвращать результаты деятельности, которая ее вызывает? Recyclerview view не работает с setNestedScrollingEnabled и никогда не перерабатывает любые виды Собственные объявления Admob: недопустимый тип NativeAdManager. Найдено: qa; Требуется: NativeAdManager OutOfMemoryError при декодировании и кодировании Base64 String в Bitmap Bluetooth Low Energy для Android эмулятора Как я повторяю метод каждые 10 минут после нажатия кнопки и завершения ее на другой кнопке Отображать push-уведомление в поле предупреждения, когда приложение работает на переднем плане Как приостановить android.speech.tts.TextToSpeech? Возврат результата цели, когда активность закрыта кнопкой «Назад» Можете ли вы устанавливать даты в андроид Невозможно потоковое видео PendingIntent работает правильно для первого уведомления, но неправильно для остальных

Понимание хранилища ключей, сертификатов и псевдонима

Является ли хранилище ключей фактическим сертификатом или является псевдонимом сертификата?

Если я использую другой псевдоним для подписывания своего приложения, будет ли он испортить обновления на рынке? Или мне нужно будет подписать мое приложение с другим хранилищем ключей, чтобы все испортить? И где находится информация под псевдонимом, доступная для просмотра?

Solutions Collecting From Web of "Понимание хранилища ключей, сертификатов и псевдонима"

Файл хранилища ключей, созданный Keytool, хранит пары частных и открытых ключей. Каждая пара или запись, хранящаяся в хранилище ключей, ссылается на уникальный псевдоним. Вкратце:

Ввод ключа: private + открытый ключ пары = идентифицируется псевдонимом

Хранилище ключей защищает каждый закрытый ключ с его индивидуальным паролем, а также защищает целостность всего хранилища ключей с помощью (возможно, другого) пароля.

Например, когда вы подписываете приложение Android с помощью опции «Экспорт подписанного пакета приложений» для инструмента Eclipse для Android, вам предлагается сначала выбрать хранилище ключей, а затем попросить выбрать один псевдоним / запись / пару из этого хранилища ключей. После предоставления паролей для хранилища ключей и выбранного псевдонима приложение подписывается, а открытый ключ (сертификат) для этого псевдонима встроен в APK.

Теперь, чтобы ответить на ваш вопрос, вы можете только выпустить обновление для приложения, которое было подписано с псевдонимом «foo», снова подписав обновление с тем же псевдонимом. Потеря хранилища ключей, в котором хранится ваш псевдоним, помешает вам опубликовать обновленную версию вашего приложения.

Однако есть способ подписать приложение с новым псевдонимом, но он включает клонирование существующего псевдонима в хранилище ключей с помощью keytool -keyclone :

Создает новую запись хранилища ключей, которая имеет тот же секретный ключ и цепочку сертификатов, что и исходная запись.

Оригинальная запись идентифицируется псевдонимом (по умолчанию используется «mykey», если не указано). Новая (целевая) запись идентифицируется dest_alias. Если в командной строке не указан псевдоним адресата, пользователю будет предложено указать его.

Если пароль секретного ключа отличается от пароля хранилища ключей, тогда запись будет клонирована только в том случае, если будет предоставлен действительный ключ. Это пароль, используемый для защиты закрытого ключа, связанного с псевдонимом. Если ключ ключа не указан в командной строке, а пароль секретного ключа отличается от пароля хранилища ключей, пользователю будет предложено его ввести. При желании закрытый ключ в клонированной записи может быть защищен другим паролем. Если в командной строке не указана опция -new, пользователю будет предложено ввести пароль новой записи (и он может выбрать, чтобы он был таким же, как и для закрытого ключа клонированной записи).

Больше информации:

http://download.oracle.com/javase/1.5.0/docs/tooldocs/solaris/keytool.html

http://developer.android.com/guide/publishing/app-signing.html