Изменение пароля ключа подписи Android

Кто-нибудь знает, как (и если) вы можете изменить пароль, используемый для подписи сборок Android?

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

Я просмотрел всю документацию по Android, но не смог найти ничего, даже связанного с этой темой (кроме создания нового ключа...).


person Thomas Vervest    schedule 08.12.2010    source источник


Ответы (3)


На самом деле это возможно:

keytool -storepasswd -keystore my.keystore
person tad    schedule 29.02.2012
comment
Несмотря на то, что мне больше не нужно это исправление, я уверен, что вы герой для множества разработчиков! :D - person Thomas Vervest; 28.05.2012
comment
@Thomas Vervest - это НЕ ответ на ваш вопрос. В лучшем случае это изменит пароль, который будет использоваться в последующих компиляциях, сделанных из конфигурации разработки, в которой он запущен. Это ничем не поможет вашей проблеме с существующими установками под старым ключом. - person Chris Stratton; 06.06.2012
comment
Объясните, пожалуйста, изменение пароля меняет ключ подписи (становит его новым ключом)? - person Thomas Vervest; 16.06.2012
comment
Нет, изменение пароля не делает его новым ключом — оно просто меняет доступ к закрытому ключу внутри хранилища ключей. - person DustinB; 04.03.2015

Вы можете изменить key пароль, если у вас есть старый пароль. Вам нужно запустить следующую команду:

keytool -keypasswd -alias "key_alias" -keypass "old_pass" -new "new_pass" -keystore "your_keystore_path"
person Ovidiu Latcu    schedule 22.01.2013

Это невозможно. Это ключ подписи, который идентифицирует вас как оригинального автора, а не самозванца. Часто возникает вопрос «как восстановить утерянный ключ», и единственный ответ — начать заново с новым приложением.

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

person Chris Stratton    schedule 08.12.2010
comment
Я боялся, что это так... Ну что ж, думаю, тогда нам просто придется сделать что-то подобное. Спасибо за ваш ответ и за ваши идеи о том, как обойти проблему. - person Thomas Vervest; 09.12.2010
comment
@ Крис, я не согласен. Закрытый ключ хранится в зашифрованном файле под названием KeyStore, и пароль, который все используют для подписи APK, на самом деле не является паролем закрытого ключа: это только пароль, который может расшифровать этот файл KeyStore, чтобы вы могли получить доступ к своему закрытому ключу. Если вы знаете этот пароль, вы можете легко получить доступ к своему закрытому ключу и защитить его новым паролем для вашего хранилища ключей (см. другие ответы на основе keytool). И изменение пароля не делает его новым ключом. Так что с приложением все в порядке, как и с пользователями приложения. - person xav; 30.03.2015