Zapomniałem hasła do Keystore i tak naprawdę nie wiem już, co mam robić (nie mogę lub nie mogę tego usprawiedliwić). Chcę zaktualizować moją aplikację, ponieważ właśnie naprawiłem błąd, ale nie jest to już możliwe. Co się stanie, jeśli użyję tego samego magazynu kluczy, ale utworzę nowy klucz? Czy nadal będę mógł aktualizować aplikację, a jeśli nie jest to możliwe, w jaki sposób mogę przekazać użytkownikom informacje o zaktualizowanej wersji?
Jeśli ktoś miał taki problem lub napotkał kłopoty, jakiej rady możesz udzielić, aby pomóc w rozwiązaniu tej sytuacji? Na szczęście jest to darmowa aplikacja.
Odpowiedzi:
Zobacz ten link
To niefortunne, ale kiedy stracisz swój magazyn kluczy lub hasło do swojego magazynu kluczy, Twoja aplikacja zostanie osierocona. Jedyne, co możesz zrobić, to ponownie przesłać aplikację na rynek pod nowym kluczem.
ZAWSZE twórz kopie zapasowe swojego magazynu kluczy i zapisuj hasła w bezpiecznym miejscu.
źródło
Właśnie sam napotkałem ten problem - na szczęście udało mi się znaleźć hasło w jakimś tymczasowym pliku Gradle. Na wypadek gdyby ktoś tu wylądował:
spróbuj poszukać tego pliku
i wyszukaj
Było tam w postaci zwykłego tekstu. Ogólnie, jeśli pamiętasz przynajmniej część hasła, spróbuj wyszukać plik zawierający ten podciąg i miej nadzieję, że coś wyłowisz.
Chciałem go tutaj wyrzucić, może w końcu komuś pomoże.
Edycja: dodano nowe informacje z komentarzy, aby były bardziej widoczne.
Podziękowania dla Vivek Bansal, Amar Ilindra i Uzbekjon za to.
źródło
strings taskArtifacts.bin | grep storePassword -A1
A tak przy okazji, dzięki ElDoRado1239 - właśnie zaoszczędziłeś mi dużo czasu.5.1.1
gradleW przypadku podania nieprawidłowego hasła, nawet raz, przy kolejnych próbach będzie powtarzać:
Nawet jeśli podasz prawidłowy. Próbowałem tego kilka razy, może to jakaś ochrona.
Zamknij kreator eksportu i uruchom go ponownie z poprawnym hasłem, teraz działa :)
źródło
Brute to najlepszy wybór!
Oto skrypt, który mi pomógł:
https://code.google.com/p/android-keystore-password-recover/wiki/HowTo
Możesz opcjonalnie podać listę słów, które może zawierać hasło, aby bardzo szybko odzyskać (dla mnie zadziałało w <1 s)
źródło
Wreszcie znalazłem rozwiązanie po spędzeniu dwóch dni ...
Wykonaj następujące kroki:
To naprawdę zadziałało.
Spróbuj tego i miłego kodowania !!!
źródło
Na konsoli uruchamiania MAC i przewinęłam w dół do ~ / Library / Logs -> AndroidStudio -> idea.log.1 (lub jakikolwiek stary numer logu). Następnie wyszukałem "keystore" i powinno pojawić się gdzieś w logach.
Oryginalne pytanie: link
źródło
ROZWIĄZANIE 2019 (Windows, Android Studio 3.3, gradle 4.10):
To rozwiązanie działa tylko wtedy, gdy pole wyboru „Zapamiętaj hasło” było wcześniej zaznaczone.
Przede wszystkim taskArtifacts.bin nie istnieje dla tej wersji gradle, a idea.log wyświetla gwiazdki jako hasła. To były stare rozwiązania, które mi nie pasowały.
Gdzie znalazłem hasła w postaci zwykłego tekstu: C: \ Users \ {nazwa użytkownika} \ AndroidStudioProjects \ {projekt} \ app \ build \ pośrednie \ signing_config \ release \ out \ signing-config.json
Klucze: mStorePassword i mKeyPassword.
Naprawdę mam nadzieję, że pomoże to komuś innemu.
źródło
W rzeczywistości utrata
keystore password
nie jest problemem.Możesz utworzyć nowy magazyn kluczy i ustawić dla niego nowe hasło za pomocą
keytool
poniższego polecenia. Nie potrzebujesz do tego oryginalnego hasła do magazynu kluczy:keytool -importkeystore -srckeystore path/to/keystore/with/forgotten/pw \
-destkeystore path/to/my/new.keystore
Po wyświetleniu monitu utwórz hasło dla swojego
new.keystore
i hasła źródłowego magazynu kluczy (które zgubiłeś), po prostu naciśnij Enter .Otrzymasz ostrzeżenie, że integralność nie została sprawdzona, a Twój new.keystore będzie identyczny z oryginalnym z nowo ustawionym hasłem.
Powód, dla którego to działa, jest
keystore password
używany tylko do zapewnienia integralnościkeystore
, nie szyfruje z nim danych, w przeciwieństwie do tegoprivate key password
, który faktycznie utrzymuje zaszyfrowany klucz prywatny.Pamiętaj, że musisz znać swój,
private key password
aby podpisywać aplikacje. Cóż, jeśli to to samo, co zapomnianekeystore password
, możesz uciec się do brutalnej siły, jak w odpowiedzi @ Artur.To podejście zawsze działało dla mnie.
źródło
jarsigner: key associated with mykey-release not a private key
. Czy coś mi brakuje?Czuję, że muszę odpowiedzieć na to pytanie, ponieważ nie może to być tylko w komentarzach. Jak @ ElDoRado1239 mówi w swojej odpowiedzi (nie zapomnij zagłosować jego odpowiedzi;)
..Project\.gradle\2.4\taskArtifacts\taskArtifacts.bin
w moim przypadku,..Project\.gradle\2.2.1\taskArtifacts\taskArtifacts.bin
bo używamgradle 2.2.1
storePassword
to, co @Moxet Khan mówi w komentarzach ... w moim przypadku było na liniisigningConfig.storePassword¬í t my.forgoten.password—signingConfig.keyAlias
Mam nadzieję, że pomogę komuś innemu !!!
źródło
Na szczęście znalazłem zagubione hasło wraz ze ścieżką do magazynu kluczy i aliasem z moich dzienników Android Studio.
jeśli używasz maszyn opartych na systemie Linux / Unix.
Przejdź do katalogu Library Logs
tam, jeśli pamiętasz wersję studia Android, której użyłeś do zbudowania ostatniego wydania APK. Przejdź do tego katalogu
np .: cd AndroidStudio1.5 /
Tam znajdziesz pliki dziennika. w dowolnym pliku dziennika (idea.log) znajdziesz swoje poświadczenia magazynu kluczy
przykład
Mam nadzieję, że to pomoże użytkownikom Android Studio
źródło
Może być trochę za późno, ale na pewno komuś pomoże. Możesz wyszukać hasło, jeśli coś pamiętasz, w przeciwnym razie spróbuj wyszukać
signingConfig.storePassword
również jeśli zapomniałeś aliasu klucza, możesz znaleźć tutaj, które również przeszukuje coś takiego jak signingConfig.keyAlias
Mam nadzieję, że to komuś pomoże
źródło
Dla każdego, kto może się z tym spotkać, chciałem podzielić się odpowiedzią, która może dotyczyć Ciebie lub innych osób przeglądających ten artykuł (takich jak ja).
Używam Eclipse i utworzyłem w nim mój magazyn kluczy dla mojej wersji 1.0. Szybko do przodu o 3 miesiące i chciałem zaktualizować go do wersji 1.1. Kiedy wybrałem Export ... w Eclipse i wybrałem ten magazyn kluczy, żadne z moich haseł, które pamiętałem, nie działało. Za każdym razem, gdy pojawiał się komunikat „manipulator klucza lub nieprawidłowe hasło”. Doszło do punktu, w którym przygotowywałem się do uruchomienia programu brutalnej siły tak długo, jak tylko mogłem wytrzymać (około tygodnia), aby spróbować zmusić go do pracy.
Na szczęście podpisuję swój niepodpisany plik .apk poza Eclipse. Voila - zadziałało! Moje hasło było poprawne przez cały czas! Nie jestem pewien dlaczego, ale podpisanie go w Eclipse przez menu Eksportuj zgłaszało błąd, nawet jeśli moje hasło było poprawne.
Tak więc, jeśli otrzymujesz ten błąd, oto moje kroki (zaczerpnięte z dokumentacji Androida ), które pomogą Ci przygotować apk na rynek.
UWAGA: Aby uzyskać niepodpisany apk z Eclipse: kliknij prawym przyciskiem myszy projekt> Narzędzia systemu Android> Eksportuj aplikację niepodpisaną
Podpisz niepodpisany plik APK za pomocą magazynu kluczy
za. otwórz monit administratora cmd i przejdź do "c: \ Program Files \ Java \ jdk1.6.0_25 \ bin" lub dowolnej posiadanej wersji Java (gdzie skopiowałeś niepodpisany plik apk i swój magazyn kluczy)
b. w wierszu polecenia cmd z plikiem magazynu kluczy i niepodpisanym plikiem apk w tym samym katalogu, wpisz następujące polecenie: jarsigner -keystore mykeystorename.keystore -verbose unsigned.apk myaliasnamefromkeystore
do. powie: „Enter Passphrase for keystore:”. Wprowadź go i naciśnij Return.
re. ===> Sukces wygląda tak:
mi. wersja bez podpisu jest nadpisywana w miejscu, więc podpisany plik apk ma teraz taką samą nazwę jak plik bez podpisu
Użyj ZipAlign, aby skompaktować podpisany plik APK do dystrybucji na rynku
za. otwórz monit administratora polecenia cmd i przejdź do „c: \ AndroidSDK \ tools” lub gdziekolwiek zainstalowałeś Android SDK
b. wprowadź to polecenie: zipalign -v 4 signed.apk signedaligned.apk
do. ===> Sukces wygląda tak:
re. podpisany i wyrównany plik znajduje się w signedaligned.apk (nazwa pliku podana w poprzednim poleceniu)
========> GOTOWE DO PRZESŁANIA NA RYNEK
źródło
Po spędzeniu prawie dnia na badaniu możliwych opcji odzyskiwania utraconego hasła do magazynu kluczy w Android Studio. Znalazłem 4 możliwe sposoby, aby to zrobić:
Użyj AndroidKeystoreBrute, aby odzyskać hasło. Ta metoda jest całkiem przydatna, gdy częściowo zapomniałeś hasła, co oznacza, że nadal masz w głowie kilka wskazówek dotyczących hasła.
Możesz również pobrać go za pomocą plików dziennika Android Studio, jeśli wcześniej wydałeś aplikację (dla której znajdujesz hasło magazynu kluczy) na tym samym komputerze. Zapoznaj się z następującym katalogiem:
Mac OS X
Linux (możliwa lokalizacja)
Windows (możliwa lokalizacja)
i wyszukaj
Pandroid.injected.signing.key.password
w pliku. Zobaczysz hasło, jeśli wcześniej podpisałeś aplikację przy użyciu tej samej wersji Android Studio, w której obecnie szukasz.Możesz również pobrać hasło z katalogu .gradle swojego projektu. Poszukaj następującej ścieżki
Jeśli żadne z powyższych rozwiązań nie działa, możesz wypróbować to, ale w tym przypadku musisz mieć aplikację Android Studio IDE lub jej preferencje, w których hasło do magazynu kluczy projektu zostało zapisane wcześniej (przy użyciu opcji Zapamiętaj hasło w momencie podpisywania app). Możesz uzyskać preferencje IDE z następującej ścieżki:
Mac OS X
Linux (możliwa lokalizacja)
Windows (możliwa lokalizacja)
Po prostu użyj starszego IDE Android Studio, jeśli masz lub importujesz preferencje starego IDE do nowego IDE, a także umieść plik magazynu kluczy w tej samej ścieżce, w której znajdował się poprzednio, kiedy go podpisałeś i zapisz hasło ostatnim razem.
W ten sposób po otwarciu projektu i wypróbowaniu Build-> Generate Signed APK i wybraniu pliku kluczy ze starszej lokalizacji. Automatycznie pobierze hasło i będzie kontynuować generowanie podpisanego pliku APK do wydania.
Po pomyślnym wygenerowaniu pakietu APK wydania możesz skorzystać z opcji 2 wspomnianej wcześniej, aby sprawdzić hasło z pliku dziennika dla ostatnio wygenerowanego pakietu APK.
źródło
Najpierw pobierz AndroidKeystoreBrute_v1.05.jar, a następnie postępuj zgodnie z podanym obrazem.
przygotuj jeden plik listy słów, taki jak (wordlist.txt), w tym pliku podaj wskazówkę, jak
Podpowiedź do hasła:
użytkowników
Użytkownicy
Hasło
hasło
pa55word
Hasło
@
*
#
$
&
1
2
123
789
Otrzymasz swoje hasło.
źródło
Najprostszy sposób na uzyskanie hasła do magazynu kluczy
folder_projektu \ app \ build \ interactates \ signing_config \ release \ out \ signing-config.json
Sprawdź to wyszukiwanie plików dla StorePassword w signing-config.json
Mam nadzieję, że w pełni ci to pomoże.
źródło
Dodając to jako kolejną możliwość. Odpowiedź może znajdować się tuż pod twoim nosem - w pliku build.gradle twojej aplikacji, jeśli zdarzyło ci się określić konfigurację podpisywania w pewnym momencie w przeszłości:
Czy czujesz się szczęśliwy ?!
źródło
Od razu miałem ten sam problem. Mimo że przy podpisywaniu aplikacji przez Google Play, utrata magazynu kluczy lub hasła nie jest wielkim problemem, jak wcześniej, nadal jako programista wolimy zmienić jego hasło i używać wygenerowanego pliku kluczy bez czekania kilka dni na Google, aby go obsłużyć. (Aby rozwiązać ten problem z Google, użyj tego linku, aby złożyć wniosek). Aby samodzielnie rozwiązać ten problem, najpierw pobierz dwa pliki .java z tego łącza . Następnie skompiluj ChangePassword.java za pomocą
javac ChangePassword.java
polecenia. Potem możesz biecZmień nazwę oldKeystoreFileName.keystore na ścieżkę / nazwę bieżącego pliku kluczy, a newKeystoreFileName.keystore na ścieżkę / nazwę nowego wygenerowanego pliku kluczy. To cię awansuje
. Po prostu wprowadź cokolwiek wolisz :) nie musisz być oryginalnym hasłem, które zostało utracone. Następnie wprowadź nowe hasło za pomocą *
źródło
Otwórz
taskHistory.bin
i wyszukajstorePassword
źródło
Jeśli możesz zbudować aplikację na komputerze, ale nie pamiętasz hasła, oto, co możesz zrobić, aby odzyskać hasło:
Metoda 1:
W pliku build.gradle dodaj
println MYAPP_RELEASE_KEY_PASSWORD
jak poniżej:Potem uciekaj
cd android && ./gradlew assembleRelease
Metoda 2:
Uruchom
keytool -list -v -keystore your <.keystore file path>
np. Keytool -list -v -keystore ./app/my-app-key.keystore.Poprosi Cię o wprowadzenie hasła do magazynu kluczy: po prostu naciśnij klawisz Enter tutaj. i będziesz mógł znaleźć zmapowane na nazwę aliasu:
Następnie uruchom
grep -rn "<your alias name>" .
w terminalu i będziesz mógł zobaczyć swój plik signing.json, jak poniżej:Plik będzie zawierał Twoje hasło w formacie json z kluczem „mKeyPassword”: „<twoje hasło>”
źródło
W Ionic udało mi się go znaleźć tutaj:
/app/platforms/android/app/build/intermediates/signing_config/release/out/signing-config.json
Może to komuś pomoże. Twoje zdrowie.
źródło
Brute force na Androida nie zadziała, jeśli oba hasła są różne, więc najlepszą opcją może być próba znalezienia pliku o nazwie jako
log.idea
na twoim C: / users / twoim nazwanym koncie, możesz znaleźć, że w folderze android otwórz ten plik lpg.idea w notatniku, a następnie wyszukaj
Alias
używając opcji wyszukiwania w notatniku zobaczysz, że zostało tam pokazane hasło i alias oraz alias passwors
źródło
Znalazłem hasło w
Szukaj
źródło
Jeśli nic nie działa, wypróbuj tę linię. Przejdź do ścieżki, w której jest przechowywany plik .jks. Uruchom to polecenie w wierszu polecenia. Poprosi o hasło, zignoruje to i naciśnij enter.
keytool -list -keystore sample.jks
źródło
Idź do
taskhistory.bin
w.gradle
folderze projektu hasło Szukaj przewijania w dół aż znajdziesz hasłoźródło
Dziwię się, że nikt o tym nie wspomniał, ale możesz udać się do pomocy technicznej dla programistów Google Play i będą z Tobą współpracować, aby utworzyć nowy klucz przesyłania:
https://support.google.com/googleplay/android-developer/contact/otherbugs
Wypełniłem problem, a oni skontaktowali się ze mną w ciągu 1 dnia.
Aktualizacja: po wykonaniu instrukcji otrzymanych w e-mailu udało mi się utworzyć nowy klucz przesyłania, który został włączony kilka dni później! Problem rozwiązany.
źródło
Podsumowując, istnieją 3 odpowiedzi na to pytanie (a rozwiązania nie daje zaakceptowana odpowiedź):
Jeśli masz nienaruszone dzienniki, możesz znaleźć hasło w plikach dziennika Android Studio zgodnie z powyższą odpowiedzią Georgi Koemdzhieva .
Możesz odzyskać hasło z pliku „taskArtifacts.bin” w katalogu .gradle, zgodnie z powyższymi odpowiedziami ElDoRado1239 i Gueorgui Obregon . Wydaje się, że to nie działa w nowszych wersjach Gradle (2.10 i nowszych).
Użyj AndroidKeystoreBrute, aby odgadnąć lub brutalnie wymusić hasło zgodnie z powyższą odpowiedzią Srinivasa Keerthiprakasama .
Wszystkie te 3 rozwiązania są szczegółowo omówione pod tym linkiem .
źródło
W moim przypadku otrzymałem nieprawidłową nazwę aliasu, mimo że zapisałem prawidłowe hasło. Więc pomyślałem, że to złe hasło (używając pakietu jonowego), więc użyłem tego polecenia, aby uzyskać nazwę aliasu
keytool -list -v -keystore
I znów mogłem korzystać z magazynu kluczy!
źródło
C: \ Users \ admin \ AndroidStudioProjects \ TrumpetTVChannel2.gradle \ 2.14.1 \ taskArtifacts \ taskArtifacts.bin
Najpierw spróbuj utworzyć nowy magazyn kluczy .... następnie otwórz taskArtifacts.bin w notatniku i poszukaj hasła, które właśnie podałeś .... będziesz w stanie znaleźć słowa w pobliżu hasła, które właśnie podałeś, a następnie wyszukaj te słowa w pobliżu Twoje hasło w tym samym pliku .... będziesz mógł odgadnąć hasło ..... :)
źródło
ROZWIĄZANIE 2018 : Podpisz aplikację nowym plikiem kluczy, jeśli nie masz hasła lub pliku jks.
1) Utwórz nowy plik keystore.jks za pomocą wiersza poleceń (nie dotyczy menu kompilacji Android Studio)
Przykład systemu 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) Wygeneruj plik .pem z nowego magazynu kluczy
Przykład systemu 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) Skorzystaj z tego formularza pomocy, ustaw „problem z magazynem kluczy” i dodaj plik .pem do załącznika: https://support.google.com/googleplay/android-developer/contact/otherbugs
4) 12-48h nowy magazyn kluczy jest włączony. Zaktualizuj swoją aplikację w sklepie playstore za pomocą nowego apk podpisanego przy użyciu nowego magazynu kluczy: D
źródło
Nie musisz używać brutalnej siły, a prostym sposobem jest znalezienie hasła w postaci zwykłego tekstu.
iść do:
Otwarty:
kiedy otwierasz plik taskArtifacts.bin może wyglądać na zaszyfrowany, nie przejmuj się tym wyszukiwaniem frazy „.keyPassword” kilka razy. Następnie znajdziesz swoje hasło w postaci zwykłego tekstu. Może przypominać:
Mam nadzieję, że to było pomocne.
źródło