Как обрабатывать потерянный пароль хранилища ключей в Android?
Я забыл свой пароль хранилища ключей и я не знаю, что делать (я не могу или не дают каких-либо оправданий). Я хочу обновить свое приложение, потому что я только что исправил ошибку, но это больше невозможно. Что произойдет, если я использую то же хранилище ключей, но создаю новый ключ? Смогу ли я по-прежнему обновлять приложение, и если это невозможно, как я могу предоставить информацию пользователям об обновленной версии?
Если у кого-то была такая проблема или он столкнулся беды, какой совет вы можете дать, чтобы помочь исправить ситуацию? К счастью, это бесплатное приложение.
29 ответов:
посмотреть этой ссылке
Это печально, но когда вы теряете свое хранилище ключей или пароль к вашему хранилищу ключей, ваше приложение осиротело. Единственное, что вы можете сделать, это повторно отправить свое приложение на рынок под новым ключом.
всегда создавайте резервную копию хранилища ключей и записывайте пароли в безопасном месте.
просто столкнулся с этой проблемой сам - к счастью, я смог найти пароль во временном файле какого-то Gradle. На всякий случай, если кто-то приземлится здесь, попробуйте искать
..Project\.gradle.4\taskArtifacts\taskArtifacts.bin
Он был там в открытом виде. В общем, если вы помните хотя бы часть своего пароля, попробуйте найти файл, содержащий эту подстроку, и, надеюсь, вы что-то выловите.
хотел выбросить его здесь, может быть, это в конечном итоге поможет кому-то.
в случае неправильного пароля предоставляется, даже только один раз, он продолжает говорить на следующих попытках:
хранилище ключей подделано или неверный пароль.
даже если вы обеспечиваете правильный. Я пробовал несколько раз, может быть, это какая-то защита.
Закройте мастер экспорта и запустите его снова с правильным паролем, теперь он работает:)
скотина - это ваш лучший выбор!
вот скрипт, который помог мне:
https://code.google.com/p/android-keystore-password-recover/wiki/HowTo
вы можете дать ему список слов пароль может включить для очень быстрого восстановления (для меня он работал в
на Mac запустите консольную утилиту и прокрутите вниз до ~ / Library / Logs -> AndroidStudio ->idea.бревно.1 (или любой старый номер журнала ) Затем я искал "keystore", и он должен появиться где-то в журналах.
исходный вопрос: ссылке
на самом деле, теряя
keystore password
- Это не проблема.
Вы можете создать новое хранилище ключей и установить новый пароль с помощью команды ниже ключей. Вам не нужен оригинальный пароль хранилища ключей для него:
keytool -importkeystore -srckeystore path/to/keystore/with/forgotten/pw \
-destkeystore path/to/my/new.keystore
при появлении запроса создайте пароль для вашего
new.keystore
и исходный пароль хранилища ключей (который вы потеряли) просто ударил введите.
Вы получите предупреждение о том, что целостность не проверена, и вы получите твой новый.хранилище ключей идентично оригиналу с новым установленным паролем.причина, по которой это работает
keystore password
используется только для обеспечения целостностиkeystore
, он не шифрует данные с него, в отличие отprivate key password
, который на самом деле держит ваш закрытый ключ в зашифрованном виде.Пожалуйста, обратите внимание, что вы должны знать
private key password
чтобы подписать ваши приложения. Ну, если это так же, как забылиkeystore password
тогда вы можете прибегнуть к брутфорсу, как в @Artur's ответ.этот подход всегда работал для меня.
Я чувствую, что мне нужно сделать это ответ, потому что это не может быть просто в комментариях. Как @ElDoRado1239 говорит в своем ответе (Не забудьте выдвинуть свой ответ;)
- ищет
..Project\.gradle.4\taskArtifacts\taskArtifacts.bin
в моем случае был в..Project\.gradle.2.1\taskArtifacts\taskArtifacts.bin
потому что я используюgradle 2.2.1
- тогда ищите
storePassword
как @Moxet Khan говорит в comments...in мой случай был на линииsigningConfig.storePassword¬í t my.forgoten.password—signingConfig.keyAlias
надеюсь помочь кому-то еще!!!
к счастью, я нашел свой потерянный пароль вместе с путем хранилища ключей и именем псевдонима из моих журналов Android studio.
Если вы используете машины на базе linux / Unix.
перейдите в каталог журналов библиотеки
cd ~/Library/Logs/
там, если вы помните свою версию Android studio, которую вы использовали для создания последнего выпуска APK. Перейдите в этот каталог
пример : компакт-диск AndroidStudio1.5/
там вы найдете файлы журнала. в любом из файлов журнала (идея.бревно) вы найдете свои учетные данные хранилища ключей
пример
-Pandroid.injected.signing.store.file=/Users/myuserid/AndroidStudioProjects/keystore/keystore.jks, -Pandroid.injected.signing.store.password=mystorepassword, -Pandroid.injected.signing.key.alias=myandroidkey, -Pandroid.injected.signing.key.password=mykeypassword,
Я надеюсь, что это поможет для пользователей Android Studio
для тех, кто может столкнуться с этим, я хотел бы поделиться ответом, который может иметь место для вас или для других, просматривающих эту статью (как и я).
Я использую Eclipse и создал свое хранилище ключей в нем для моего выпуска 1.0. Быстрая перемотка вперед 3 месяца и я хотел обновить до 1.1. Когда я выбрал экспорт... в Eclipse и выбрал это хранилище ключей, ни один из моих паролей, которые я мог вспомнить, не работал. Каждый раз он говорил " хранилище ключей изменено или неверный пароль." Это дошло до того, что я готовился запустить программу грубой силы на нем до тех пор, пока я мог стоять (неделю или около того), чтобы попытаться заставить его работать.
к счастью, я подписать мой Без подписи .apk файл за пределами Eclipse. Вуаля-это сработало! Мой пароль был верен все это время! Я не уверен, почему, но подписание его в Eclipse через меню экспорта сообщало об ошибке, даже когда мой пароль был правильным.
Итак, если вы получаете эту ошибку, вот мои шаги (взятые из документация для Android), чтобы помочь вам получить ваш apk готов к рынку.
Примечание: чтобы получить неподписанный apk из Eclipse: щелкните правой кнопкой мыши project > Android Tools > Export Unsigned Application
подписать неподписанный apk файл с keystore
a. откройте командную строку администратора и перейдите в раздел "c:\Program Files\Java\jdk1. 6. 0_25\bin" или любая версия java, которую вы имеете (где вы скопировали неподписанный файл apk и ваш хранилище)
б. в командной строке с keystore файл и Unsigned APK в одной директории, введите команду утилита jarsigner -хранилище mykeystorename.хранилище -подробный неподписанные.apk myaliasnamefromkeystore
c. он скажет:"введите пароль для хранилища ключей:". Введите его и нажмите клавишу Return.
d. = = = > успех выглядит так:
adding: META-INF/MANIFEST.MF ... signing: classes.dex
e. неподписанная версия перезаписывается на месте, поэтому ваш подписанный apk-файл теперь имеет то же имя файла, что и неподписанный один
используйте ZipAlign для сжатия подписанного файла apk для распространения на рынке
a. откройте командную строку администратора и перейдите к "c:\AndroidSDK\tools" или там, где вы установили Android SDK
b. введите следующую команду: zipalign-V 4 подпись.АПК подписала соглашение.apk
c. = = = > успех выглядит так:
Verifying alignment of signedaligned.apk (4) 50 META-INF/MANIFEST.MF (OK - compressed) ... 1047129 classes.dex (OK - compressed) Verification succesful
d. подписанный и выровненный файл находится в signedaligned.apk (имя файла, указанное в предыдущем файле команда)
========> ГОТОВ К ОТПРАВКЕ НА РЫНОК
проведя почти день в исследовании возможных вариантов восстановления потерянного пароля хранилища ключей в Android Studio. Я нашел следующие 4 возможных способа сделать это:
использовать AndroidKeystoreBrute для получения пароля. Этот метод весьма полезен, когда вы частично забыли свой пароль означает, что у вас все еще есть некоторые подсказки вашего пароля в вашем уме.
вы также можете получить его через Android Studio файлы журнала, Если вы ранее выпустили приложение (для которого вы нашли пароль хранилища ключей) с той же машиной. Обратитесь к следующему каталогу:
Mac OSX
~ / Library/Logs/AndroidStudio / idea.бревно.1
Linux (Возможное Расположение)
/ home / user_name/AndroidStudio / system / log
Windows (Возможное Расположение)
C:\Users\user_name\AndroidStudio\system\log
и ищите
Pandroid.injected.signing.key.password
внутри файла. Вы увидите пароль, если вы ранее подписали приложение с той же версией Android Studio, в которой вы ищете в настоящее время.вы также можете получить пароль через .каталог gradle вашего проекта. Ищите следующий путь
project_directory/.gradle / 2.4 / taskArtifacts / taskArtifacts.бункер.
Примечание: это, кажется, не работает для более новых версий Gradle (2.10 и выше).
Если ни одно из вышеперечисленных решений не работает, вы можете попробовать это, но для этого также у вас должно быть приложение Android Studio IDE или его настройки, в которых ваш пароль хранилища ключей проекта был сохранен ранее (используя опцию запомнить пароль во время подписания приложение.) Вы можете получить настройки IDE по следующему пути:
Mac OSX
~ / Library/Logs/AndroidStudio / idea.бревно.1
Linux (Возможное Расположение)
/ home / user_name / AndroidStudio
Windows (Возможное Расположение)
c:\user\username\.AndroidStudio
просто используйте старый Android Studio IDE если у вас есть или импортировать настройки старой IDE в новую IDE, а также поместить файл хранилища ключей в том же пути, где он был ранее, когда вы подписали его и сохранить пароль в последний раз.
таким образом, как только вы откроете проект и попробуете построить->создать подписанный APK и выберите файл хранилища ключей из более старого местоположения. Он автоматически получит пароль и продолжит генерировать подписанный APK для выпуска.
Как только релиз APK генерирует успешно вы можете следовать варианту 2, упомянутому ранее, чтобы проверить свой пароль из файла журнала для недавно созданного выпуска APK.
Это может быть немного поздно, но это поможет кому-то точно Вы можете искать пароль, если вы помните, то в противном случае попробуйте поиск как
signingConfig.storePassword
также, если вы забыли псевдоним ключа вы можете найти здесь, что также Поиск что-то вроде signingConfig.
.gradle\3.3\taskArtifacts\taskArtifacts.биннадеюсь, что это поможет кому-то
Зак Клиппенштайн на Google+ была такая же проблема, как вы. Вы можете следить за потоком здесь.
Android brute force не будет работать, если ваши оба пароля разные, поэтому лучшим вариантом может быть такая попытка найти файл с именем
log.идея
в вашей C:/users/your имени учетной записи тогда вы можете обнаружить, что там, в папке android, откройте этот файл lpg.идея в блокноте, а затем искать
псевдоним
используя опцию поиска в блокноте, вы обнаружите, что пароль и псевдоним и псевдоним passwors были показаны там
Я нашел пароль в
C:\Users\{Username}\.AndroidStudio2.2\system\log\idea.txt
искать
Pandroid.injected.signing.store.password
у меня была та же проблема сразу. Несмотря на то, что с подписанием приложения Google Play, потеря хранилища ключей или его пароля не такая большая проблема, как раньше, все же, как разработчик, мы предпочитаем менять пароль и использовать сгенерированный файл хранилища ключей, не дожидаясь нескольких дней, чтобы google его обработал. ( Чтобы справиться с этой проблемой с помощью google используйте это ссылке, чтобы сделать запрос) Чтобы справиться с этой проблемой самостоятельно, Сначала скачать два .java файлы из этого ссылке. Затем компилировать этого метода changepassword.яву
подводя итог есть 3 ответа на этот вопрос (и решение не принято отвечать):
Если у вас есть ваши журналы нетронутыми, то вы можете найти пароль в файлах журнала Android Studio в соответствии с Георгий Koemdzhiev это ответ выше.
вы можете получить пароль от ' taskArtifacts.файл " bin " в вашу .каталог Gradle в качестве одного ElDoRado1239 это и Георгий Обрегона ответы выше. Это, кажется, не работает для более новых версий Gradle (2.10 и выше).
используйте AndroidKeystoreBrute угадать или bruteforce пароль в соответствии с Шринивас Keerthiprakasam это!--6--> ответ выше.
все эти 3 решения подробно рассмотрены на этом ссылке.
в моем случае я получал имя псевдонима неправильно, хотя я сохранил правильный пароль. Поэтому я подумал, что это был неправильный пароль( используя пакет ionic), поэтому я использовал эту команду, чтобы получить псевдоним
keytool-list-v-keystore
и я смог снова использовать хранилище ключей!
C:\Users\admin\AndroidStudioProjects\TrumpetTVChannel2.gradle\2.14.1\taskArtifacts\taskArtifacts.бин
1-я попытка создать новое хранилище ключей....затем откройте taskArtifacts.бин с блокнотом и искать пароль, который вы только что дали....вы сможете выяснить слова рядом с паролем, который вы только что дали, а затем искать эти слова рядом с вашим паролем в том же файле....вы сможете выяснить пароль.....:)
наконец-то я нашел решение, проведя два дня...
выполните следующие действия:
- на проекте
- In .gradle найдите свою папку с версией gradle в моем случае это был 4.1 (см. рис)
- разверните папку 4.1, а затем в папке taskHistory вы найдете taskHistory.файл bin.
- открыть taskHistory.bin-файл в самой Android studio.
- Поиск ".storePassword" .. Это все, что вы получили свой пароль хранилища ключей.
Это действительно сработало для меня.
попробуйте это, и удачи в кодировании!!!
добавление этого в качестве еще одной возможности. Ответ может быть прямо у вас под носом-в сборке вашего приложения.файл gradle если вы случайно указали конфигурацию подписи в какой-то момент в прошлом:
signingConfigs { config { keyAlias 'My App' keyPassword 'password' storeFile file('/storefile/location') storePassword 'anotherpassword' } }
вы чувствуете себя счастливым?!
нет необходимости использовать грубую силу простой способ, чтобы найти свой обычный текстовый пароль.
Гото:
C:\Users\<your username>\AndroidStudioProjects\WhatsAppDP\.gradle.2.1\taskArtifacts
работает:
taskArtifacts.bin
при открытии taskArtifacts.бин может выглядеть зашифрованным, не беспокойтесь об этом поиске ".ключевое слово " пару раз. Затем вы найдете свой пароль в виде обычного текста. Это может напоминать:
signingConfig.keyPassword¬í t <your password>Æù
надеюсь, это было полезно.
ну, чтобы найти потерянный пароль хранилища ключей, вы можете попробовать это, для меня следующее решение работало довольно хорошо.
найти идею log-файлы
~/Library/Logs/AndroidStudio2.0
. Вы также можете найти их, открыв Android Studio-> Help->Show Log in File manager.открыть . Примечание: там может быть несколько файлов с именем
idea.log.1
,idea.log.2
etc. Просмотрите каждый из них, пока не найдете пароль.искать
“Pandroid.injected.signing.key.password”
и вы можете увидеть ключ пароль:.надеюсь, что это помогает...
Я испытал ту же проблему, я попытался ниже шаги, чтобы решить эту проблему :-
создать знак apk с созданием нового хранилища ключей и нового пароля.
Теперь создайте снова знак apk с помощью старого хранилища ключей (хранилище ключей, используемое во время предыдущей загрузки сборки apk), но теперь используйте новый пароль хранилища ключей.
теперь, безусловно, вы создадите успешно подписать apk, используя старый хранилище ключей.
- надеюсь, это решение поможет вам..
в моем случае я обновил свою Android Studio с 2.3 до 3.0.1, когда я пытался создать подписанный apk для нового обновления, я получил ошибку "Keystore был подделан, или пароль был неверным". У меня было мое предыдущее хранилище ключей, и я был абсолютно уверен в пароле, используя их, я обновил приложение раньше пару раз. После долгих поисков ни одно из решений не сработало для меня. Вот что я сделал.
- открыл еще один проект.
- импортировал мой проект с помощью File / New / Import Project
- как только gradle был построен, я попытался создать подписанный apk. Построить / создать подписанный APK
- нажал на "выбрать существующий" и указали путь к моему хранилищу.
- введите мой пароль хранилища ключей
- выбран псевдоним ключа
- введите мой пароль ключа (в моем случае пароль хранилища ключей и пароль ключа одинаковы)
- нажмите Далее и укажите путь для нового Apk и установите оба флажка.
- новый APK был сгенерирован успешно.
надеюсь, это поможет кому-нибудь.
Если ничего не работает, попробуйте эти строки. Двигаться в путь .следующих хранится. Выполните эту команду в командной строке. Он запросит пароль, проигнорирует его и нажмите enter.
keytool -list -keystore sample.jks
люди не всегда дают keystore пароль, решив оставить его пустым вместо этого. Попробуйте нажать Enter для пароля, это сработало для меня в этом сценарии.
решение 2018: подпишите приложение с новым файлом хранилища ключей, если у вас отсутствует пароль или файл jks.
1) создать новое хранилище ключей.JKS-файл с командной строкой (не меню сборки Android studio)
keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks
пример Windows:
"C:\Program Files\Android\Android Studio\jre\bin\keytool.exe" -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore "C:\keystore_new.jks"
2) сгенерируйте a .PEM файл из нового хранилища ключей
keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks
пример Windows:
"C:\Program Files\Android\Android Studio\jre\bin\keytool.exe" -export -rfc -alias upload -file "C:\upload_cert.pem" -keystore "C:\keystore_new.jks"
3) Используйте эту форму поддержки, установите "проблему keystore" и с вложение добавить .файл PEM: https://support.google.com/googleplay/android-developer/contact/otherbugs
4) 12-48h вы новое хранилище ключей включено. Обновите свое приложение на playstore с новым apk подписанным с новым хранилищем ключей: D