Как восстановить keystore android

How to recover data of your Android KeyStore?

These methods can save you by recovering Key Alias and Key Password and KeyStore Password.

You should always keep the keystore file safe as you will not be able to update your previously uploaded APKs on PlayStore. It always need same keystore file for every version releases.

But it’s even worse when you have KeyStore file and you forget any credentials shown in above box.

But Good thing is you can recover them with certain tricks [Yes, there are always ways]. So let’s get straight to those ways.

1. Check your log files

→ For windows users,

Go to windows file explorer C://Users/your PC name/.AndroidStudio1.4 ( your android studio version)\system\log\idea.log.1 ( or any old log number)

Open your log file in Notepad++ or Any text editor, and search for:

and if you are lucky enough then you will start seeing these.

  1. Pandroid.injected.signing.store.file = This is file path where the keystore file was stored
    2. Pandroid.injected.signing.store.password = This is K ey store password
    3. Pandroid.injected.signing.key.alias = This is Key alias name
    4. Pandroid.injected.signing.key.password = This is Key password

Launch the Console utility and scrolled down to

/Library/Logs -> AndroidStudioBeta(Version of your studio) ->idea.log.1 (or any old log number)

Search for android.injected.signing and you can get them.

2. In case you remember KeyStore password but not the Alias name
→ Launch command prompt(i.e CMD)
→ keytool -list -keystore [will show all available options]

→ Directly run keytool -list -v -keystore
path example —> «C:\\users\admin\docs\main.keystore»

It will ask for KeyStore password and then shows name of alias,

3. Do hack

→ Any time you upload any app to PlayStore, save your keystore file and credentials at any safe place
→ The remember password checkbox shown in image top of the page, will not gonna save it for life time, if you upgrade your studio, there are chances you will loose them.
→ At least, save your KeyStore Password, as in certain tricks it’s the most vital.

Источник

Как я потерял пароль от Android keystore, но потом смог восстановить с помощью Jetbrains Idea

Жило-было в Google Play Android приложение с несколькими тысячами пользователей. Через год понадобилось его обновить. Ок, запускаем Idea, выбираем «Build» — «Generate Signed APK». Вспоминаю что за это время успел пересесть в Linux, ничего страшного, выбираю файл с ключами, ввожу ранее заботливо записанный пароль… Не подходит. Хмм… Ввожу еще раз, еще… Перебор вариантов, переспрос коллег… Всё плохо.

В итоге потенциально три приложения зависли в Google play, ни один из вариантов не подходит. Вспоминаю, что Windows остался на dual-boot, перезагружаюсь туда, к счастью в этом экземпляре Idea остался сохраненный пароль.

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

Ну что же, надо думать. Так как Idea это обычное java-приложение, то возникла мысль подключить свой код к тому месту, где из хранилища считываются пароли. После прочтения топика про javaagent быстро набросал свой java agent который просто записывал в файл имена всех загружаемых классов. Все что нужно чтобы Idea запускалась с java agent, это прописать в файл idea.exe.vmoptions (или idea64.exe.vmoptions) строку вида

После запуска с агентом текстовый файл быстро наполнился строками вида

Затем жму на «Generate Signed APK» и смотрю на вывод в файле:

Кажется, все нужное нам лежит в exportSignedPackage

Небольшое гугление, и находим исходники 2012 г.

Здесь нас привлекает кусочек кода:

Здесь видно, что пароли вытаскивается из защищенного хранилища и сохраняются в JPasswordField (стандартный контрол Swing для ввода паролей).

Осталось всего ничего — вытащить данные из текстовых полей. В этом нам поможет Javassist — библиотека для манипулирования байт-кодом «на лету». Пишем в нашем java-agent следующий кусочек кода:

Что он делает? Перехватываем момент загрузки класса JPasswordField, находим в нем метод getPassword() и добавляем в конец метода наш фрагмент кода, который печатает в консоль искомый пароль ($_ это служебная переменная javassist, где лежит значение возвращаемое методом).

Таким нехитрым способом пароли были восстановлены и спасены.

P. S. А пароль оказался тем же самым, что и был записан, но вводился в русской раскладке. Всё было просто на самом деле…

Источник

Как справиться с утерянным паролем KeyStore в Android?

Я забыл свой пароль к хранилищу ключей и действительно не знаю, что мне делать (я не могу или не хочу извиняться за это). Я хочу обновить свое приложение, потому что я только что исправил ошибку, но это больше невозможно. Что произойдет, если я использую то же хранилище ключей, но создаю новый ключ? Смогу ли я обновить приложение, и если это невозможно, как я могу предоставить пользователям информацию об обновленной версии?

Читайте также:  Ватсап оффлайн для андроид

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

30 ответов

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

ВСЕГДА делайте резервную копию своего хранилища ключей и записывайте пароли в безопасном месте.

Если ничего не работает, попробуйте эти строки. Перейдите в путь, где хранится .jks. Запустите эту команду в командной строке. Он запросит пароль, проигнорируйте его и нажмите Enter.

keytool -list -keystore sample.jks

C: \ Users \ admin \ AndroidStudioProjects \ TrumpetTVChannel2.gradle \ 2.14.1 \ taskArtifacts \ taskArtifacts.bin

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

Подводя итог, есть 3 ответа на этот вопрос (и решение не дает принятого ответа):

Если ваши журналы не повреждены, вы можете найти пароль в файлах журналов Android Studio в соответствии с ответом Георгия Коемджиева выше.

Вы можете получить пароль из файла ‘taskArtifacts.bin’ в каталоге .gradle согласно ElDoRado1239’s и Ответы Георги Обрегона выше. Похоже, это не работает для более новых версий Gradle (2.10 и выше).

Используйте AndroidKeystoreBrute, чтобы угадать или подобрать пароль в соответствии с ответом Шриниваса Киртипракасама выше.

Все эти 3 решения подробно описаны по этой ссылке .

Перейдите в папку taskhistory.bin в папке .gradle вашего проекта. Найдите пароль. Прокрутите вниз, пока не найдете пароль.

РЕШЕНИЕ 2018 : подпишите приложение с новым файлом хранилища ключей, если у вас отсутствует пароль или файл jks.

1) Создайте новый файл keystore.jks с командной строкой (не меню сборки студии Android)

Пример 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) Создайте файл .pem из нового хранилища ключей .

Пример 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) Воспользуйтесь этой формой поддержки, укажите «Проблема с хранилищем ключей» и с прикреплением добавьте файл .pem: https://support.google.com/googleplay/android-developer/contact/ другие ошибки

4) 12-48ч ​​новое хранилище ключей включено. Обновите свое приложение в игровом магазине с помощью нового APK, подписанного с новым хранилищем ключей: D

Я нашел пароль в

Брутфорс Android не сработает, если у вас разные пароли, поэтому лучшим вариантом может быть попытка найти файл с именем

В вашем C: / users / вашей названной учетной записи вы можете обнаружить, что там, в папке Android, откройте этот файл lpg.idea в блокноте, а затем выполните поиск

Используя опцию поиска в блокноте, вы обнаружите, что пароль, псевдоним и пароли псевдонима были показаны там

Чтобы упростить ситуацию, это решение работает в 2020 году для версии Gradle: 5.4.1.

Откройте файл: project \ .gradle \ 5.4.1 \ executionHistory.bin

Пароль хранилища ключей:

Найдите текст » storePassword «

Для ключевого пароля:

Искать текст » keyAlias ​​«

После поиска проверьте пароль в той же или следующей строке.

В Ionic мне удалось найти это здесь: /app/platforms/android/app/build/intermediates/signing_config/release/out/signing-config.json

Может, это кому-то поможет. ваше здоровье.

ЕСЛИ вы можете создать приложение на ПК, но не помните пароль, вот что вы можете сделать, чтобы получить пароль:

Метод 1:

В build.gradle добавьте println MYAPP_RELEASE_KEY_PASSWORD , как показано ниже:

После этого запустите cd android && ./gradlew assembleRelease

Метод 2:

Запустите keytool -list -v -keystore your , например. keytool -list -v -keystore ./app/my-app-key.keystore.

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

Затем запустите grep -rn » » . в своем терминале, и вы сможете увидеть свой файл signed.json, как показано ниже:

В файле будет ваш пароль в формате json с ключом «mKeyPassword»: « »

Откройте taskHistory.bin и найдите storePassword

У меня сразу возникла такая же проблема. Несмотря на то, что при подписании приложений в Google Play потеря хранилища ключей или его пароля не имеет большого значения, как раньше, тем не менее, как разработчик, мы предпочитаем менять его пароль и использовать сгенерированный файл хранилища ключей, не дожидаясь нескольких дней, чтобы Google обработал его. (Чтобы решить эту проблему с помощью Google, используйте эту ссылку, чтобы сделать запрос ) Чтобы решить эту проблему самостоятельно, Сначала загрузите два файла .java по этой ссылке. Затем скомпилируйте ChangePassword.java командой javac ChangePassword.java . Затем после того, как вы можете запустить

Измените oldKeystoreFileName.keystore на путь / имя вашего текущего файла хранилища ключей, а newKeystoreFileName.keystore на путь / имя для нового сгенерированного нового файла хранилища ключей. Это побудит вас

. Просто введите то, что вы предпочитаете 🙂 не нужно быть исходным паролем, который утерян. Затем введите новый пароль с *

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

Добавляя это как еще одну возможность. Ответ может быть прямо у вас под носом — в файле build.gradle вашего приложения, если вы случайно указали конфигурацию подписи в какой-то момент в прошлом:

Читайте также:  Драйвера для андроид huawei

Я удивлен, что никто об этом не упомянул, но вы можете обратиться в службу поддержки разработчиков Google Play, и они вместе с вами создадут новый ключ загрузки:

Я заполнил вопрос, и они связались со мной в течение 1 дня.

Обновление: следуя их инструкциям по электронной почте, я смог создать новый ключ загрузки, и он был включен через несколько дней! Задача решена.

Самый простой способ получить пароль хранилища ключей

папка_проекта \ приложение \ сборка \ промежуточные_подпись \ подписывание_конфиг \ выпуск \ аут \ подписывание-config.json

Проверить этот файл найдите StorePassword в файле signed-config.json

Надеюсь, это вам поможет.

Сначала загрузите AndroidKeystoreBrute_v1.05.jar, а затем следуйте данному изображению.

Подготовьте один файл списка слов, например (wordlist.txt), в этом файле укажите свою подсказку, например

Подсказка для пароля:

Вы получите ваш пароль.

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

Я использую Eclipse и создал в нем свое хранилище ключей для своей версии 1.0. Перенесемся на 3 месяца, и я хотел обновить его до версии 1.1. Когда я выбрал Экспорт . в Eclipse и выбрал это хранилище ключей, ни один из моих паролей, которые я мог вспомнить, не сработал. Каждый раз, когда он говорил: «Хранилище ключей подделано или неверный пароль». Это дошло до того, что я готовился запустить на нем программу грубой силы столько, сколько смогу выдержать (неделю или около того ), чтобы попытаться заставить его работать.

К счастью, я подписал свой неподписанный файл .apk вне Eclipse. Вуаля — заработало! Мой пароль был правильным все время! Я не знаю почему, но при подписании его в Eclipse через меню «Экспорт» сообщалось об ошибке, даже если мой пароль был правильным.

Итак, если вы получаете эту ошибку, вот мои шаги (взяты из Документация по Android), которая поможет вам подготовить apk к выпуску на рынок.

ПРИМЕЧАНИЕ. Чтобы получить неподписанный apk из Eclipse: щелкните правой кнопкой мыши проект> Инструменты Android> Экспорт неподписанного приложения.

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

а. откройте командную строку администратора и перейдите в «c: \ Program Files \ Java \ jdk1.6.0_25 \ bin» или любую другую версию java, которая у вас есть (где вы скопировали неподписанный файл apk и хранилище ключей)

б. в командной строке с файлом хранилища ключей и неподписанным apk в том же каталоге введите следующую команду: jarsigner -keystore mykeystorename.keystore -verbose unsigned.apk myaliasnamefromkeystore

c. он скажет: «Введите кодовую фразу для хранилища ключей:». Введите его и нажмите Return.

d. ===> Успех выглядит так:

е. неподписанная версия перезаписывается на месте, поэтому ваш подписанный apk-файл теперь имеет то же имя, что и неподписанный

Используйте ZipAlign для сжатия подписанного файла apk для распространения на рынке.

а. откройте командную строку администратора и перейдите в папку «c: \ AndroidSDK \ tools» или в другое место, где вы установили Android SDK.

б. введите эту команду: zipalign -v 4 signed.apk signedaligned.apk

c. ===> Успех выглядит так:

d. подписанный и выровненный файл находится в signedaligned.apk (имя файла, которое вы указали в предыдущей команде)

========> ГОТОВЫ ПОДАТЬ НА РЫНОК

Потратив почти день на изучение возможных вариантов восстановления утерянного пароля хранилища ключей в Android Studio. Я нашел следующие 4 возможных способа сделать это:

Используйте AndroidKeystoreBrute, чтобы получить свой пароль. Этот метод очень полезен, когда вы частично забыли свой пароль, а это значит, что у вас все еще есть намеки на свой пароль.

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

Mac OS X

/ Библиотека / Журналы / AndroidStudio / idea.log.1

Linux (возможное расположение)

/ home / user_name / AndroidStudio / system / log

Windows (возможное расположение)

C: \ Users \ имя_пользователя \ AndroidStudio \ system \ log

и найдите Pandroid.injected.signing.key.password внутри файла. Вы увидите пароль, если ранее подписывали приложение с той же версией Android Studio, которую вы просматриваете в настоящее время.

Вы также можете получить пароль через каталог .gradle вашего проекта. Ищите следующий путь

каталог_проекта / .gradle / 2.4 / taskArtifacts / taskArtifacts.bin.

Примечание. Похоже, это не работает для более новых версий Gradle (2.10 и выше).

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

Mac OS X

/ Библиотека / Журналы / AndroidStudio / idea.log.1

Linux (возможное расположение)

Windows (возможное расположение)

c: \ user \ username \ .AndroidStudio

Просто используйте старую IDE Android Studio, если у вас есть или импортируете настройки старой IDE в новую IDE, а также поместите файл хранилища ключей по тому же пути, где он был ранее, когда вы его подписали, и сохраните пароль в последний раз.

Таким образом, как только вы откроете проект и попробуете Build-> Generate Signed APK и выберите файл хранилища ключей из более старого места. Он автоматически получит пароль и продолжит создание подписанного APK для выпуска.

После успешного создания релизного APK вы можете воспользоваться вариантом 2, упомянутым ранее, чтобы проверить свой пароль из файла журнала для недавно созданного релизного APK.

Читайте также:  Deterministic dungeon для андроид

Это может быть немного поздно, но это наверняка кому-то поможет. Вы можете выполнить поиск пароля, если что-то помните, в противном случае попробуйте выполнить поиск, например

signatureConfig.storePassword

Также, если вы забыли ключевой псевдоним, вы можете найти здесь, что также найдите что-нибудь вроде signatureConfig.keyAlias ​​

Project.gradle \ 3.3 \ taskArtifacts \ taskArtifacts.bin

Надеюсь, это кому-то поможет

К счастью, я нашел свой утерянный пароль, а также путь к хранилищу ключей и псевдоним в журналах моей студии Android.

Если вы используете машины на базе Linux / Unix.

Перейдите в каталог журналов библиотеки

Там, если вы помните свою студийную версию Android, которую вы использовали для сборки последнего выпуска APK. Перейдите в этот каталог

Пример: cd AndroidStudio1.5 /

Там вы найдете файлы журнала. в любом из файлов журнала (idea.log) вы найдете свои учетные данные хранилища ключей

Надеюсь, это поможет пользователям Android Studio

Я чувствую, что должен дать ответ, потому что это не может быть только в комментариях. Как @ ElDoRado1239 говорит в своем ответе (не забудьте проголосовать за его ответ;)

  • Поиск ..Project\.gradle\2.4\taskArtifacts\taskArtifacts.bin в моем случае был в ..Project\.gradle\2.2.1\taskArtifacts\taskArtifacts.bin , потому что я использую gradle 2.2.1
  • Затем найдите storePassword , как @Moxet Khan говорит в комментариях . в моем случае это было на строке signingConfig.storePassword¬í t my.forgoten.password—signingConfig.keyAlias

Надеюсь помочь кому-нибудь еще .

На самом деле потерять keystore password не проблема.
Вы можете создать новое хранилище ключей и установить для него новый пароль с помощью команды keytool ниже. Для этого вам не нужен исходный пароль хранилища ключей:

keytool -importkeystore -srckeystore path/to/keystore/with/forgotten/pw \
-destkeystore path/to/my/new.keystore

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

Причина, по которой это работает, заключается в том, что keystore password используется только для обеспечения целостности keystore , он не шифрует данные с его помощью, в отличие от private key password , который фактически хранит ваш закрытый ключ в зашифрованном виде.

Обратите внимание, что вы должны знать свой private key password , чтобы подписывать свои приложения. Что ж, если он такой же, как забыл keystore password , тогда вы можете прибегнуть к грубой силе, как в ответе @Artur.

Этот подход всегда работал у меня.

При запуске утилиты консоли MAC и прокрутки вниз до

/ Library / Logs -> AndroidStudio -> idea.log.1 (или любого старого номера журнала). Затем я искал «хранилище ключей», и он должен появиться где-нибудь в журналах.

РЕШЕНИЕ 2019 (Windows, Android Studio 3.3, gradle 4.10):

Это решение работает, только если ранее был установлен флажок «Запомнить пароль».

Прежде всего, taskArtifacts.bin не существует для этой версии gradle, а idea.log показывает звездочки для паролей. Это были старые решения, которые мне не помогли.

Где я нашел пароли в виде открытого текста: C: \ Users \ \ AndroidStudioProjects \ \ app \ build \ intermediate \ signed_config \ release \ out \ signed-config.json

Ключи: mStorePassword и mKeyPassword.

Я очень надеюсь, что это поможет кому-то другому.

Наконец, я нашел решение, потратив два дня .

Следуй этим шагам:

  1. Перейти к проекту
  2. В .gradle найдите папку с версией Gradle, в моем случае это была 4.1 (см. Рис.)
  3. разверните папку 4.1, а затем в папке taskHistory вы найдете файл taskHistory.bin.
  4. Откройте файл taskHistory.bin в самой студии Android.
  5. Найдите «.storePassword» .. Вот и все, что у вас есть пароль к хранилищу ключей.

Это действительно сработало для меня.

Попробуйте это и удачного кодирования .

Брут — ваш лучший выбор!

Вот сценарий, который мне помог:

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

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

Хранилище ключей подделано или неверный пароль.

Даже если вы предоставите правильный. Несколько раз пробовал, может это какая-то защита.
Закройте мастер экспорта и запустите его снова с правильным паролем, теперь он работает 🙂

Я сам столкнулся с этой проблемой — к счастью, мне удалось найти пароль во временном файле Gradle. На всякий случай кто-нибудь попадет сюда:

попробуйте найти этот файл

и выполните поиск

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

Хотел сюда выкинуть, может со временем кому то поможет.

Изменить: для большей наглядности добавлены новые сведения из комментариев. Редактировать 2: добавлено еще несколько местоположений, о которых сообщается в комментариях.

Спасибо Вивеку Бансалу, Амару Илиндре и Узбекджону за это.

Я знаю, что это старый вопрос ВОЗРАСТ , но я видел много ответов, в которых говорилось, что метод грубой силы — это лучший способ, что просто неверно, потому что разработчики обычно имеют надежные и длинные пароли, которые могут Это не так просто, это займет несколько дней, и ваш компьютер должен работать 24/7, поэтому мое решение простое — обратитесь в службу поддержки, они даже сгенерируют для вас новый ключ, это самое быстрое решение, которое вы можете получите.

Источник

Оцените статью