Jak poradzić sobie z utraconym hasłem KeyStore w systemie Android?


98

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.


Zach Klippenstein w Google+ miał ten sam problem, co Ty. Możesz śledzić wątek tutaj .
Niezależny programista PHP

Jeśli używasz React Native, możesz go znaleźć w gradle.properties
colemerrick

Odpowiedzi:


44

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.


więc najlepsze, co mogę zrobić, to po prostu załadować inną wersję aplikacji i spróbować podać opis z tytułu lub z poprzedniej aplikacji lub coś w tym rodzaju. dobrze?
irobotxx

1
Rzeczywiście, po prostu cofnij publikację bieżącej aplikacji i zastąp ją nową wersją o tym samym tytule i opisie i miej nadzieję, że Twoi użytkownicy w końcu ją znajdą. Upewnij się, że tym razem zapiszesz swoje hasło;)
Zebaz

Masz 3 próby, aby zrobić to dobrze. Jeśli przy trzeciej próbie się mylisz, musisz zamknąć kreatora i ponownie go otworzyć. Nawet jeśli wpiszesz poprawne hasło przy czwartej próbie, powie Ci, że jest nieprawidłowe. Przekonałem się o tym, próbując uruchomić keytool z wiersza poleceń i przestrzegając limitu ponownych prób.
The Muffin Man

@Zebaz, jeśli zgubię hasło do magazynu kluczy, czy mogę przesłać je po prostu za pośrednictwem pakietu? czy do tego potrzebuję też hasła?
Ponomarenko Oleh

1
Możesz utworzyć nowy plik jks i poprosić Google o podpisanie za jego pomocą poprzedniej aplikacji
Rahul Gaur

223

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

..Project\.gradle\2.4\taskArtifacts\taskArtifacts.bin

or

.gradle/3.5/taskHistory/taskHistory.bin
.gradle/5.1.1/executionHistory/executionHistory.bin
.gradle/caches/5.1.1/executionHistory/executionHistory.bin

i wyszukaj

storePassword

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.


33
Daj temu człowiekowi medal ... Aby inni mogli szybciej znaleźć hasło: Wyszukaj „.keyPassword” kilka razy, a zobaczysz swoje hasło. Dziękuję bardzo @ EldoRado1239 :)
Kermia

9
spróbuj .storePassword
Vivek Bansal

6
Jeśli korzystasz z OSX / Linux, możesz to uruchomić, aby łatwo uzyskać zapisane hasła: strings taskArtifacts.bin | grep storePassword -A1 A tak przy okazji, dzięki ElDoRado1239 - właśnie zaoszczędziłeś mi dużo czasu.
James Nick Sears

4
Jeśli nie możesz znaleźć powyższej ścieżki, wypróbuj tę ..Project \ .gradle \ 3.5 \ taskHistory \ taskHistory.bin
Amar Ilindra

2
Pomoc Mogę znaleźć którykolwiek z wymienionych katalogów w 5.1.1gradle
James Christian Kaguo

43

W przypadku podania nieprawidłowego hasła, nawet raz, przy kolejnych próbach będzie powtarzać:

Zmiana w magazynie kluczy lub nieprawidłowe hasło.

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 :)


8
co masz na myśli „zamknij kreatora eksportu”
Sagar Chavada

co to jest kreator eksportu?
Jigar Fumakiya

38

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)


Niestety to nie zadziałało. Podałem listę słów i później dowiedziałem się, że były to trzy z tych słów w określonej kolejności, ale musiałem sam to rozgryźć. Dziękuję jednak za udostępnienie, cieszę się, że pomogło to innym ludziom
Teo Inke

U mnie zadziałało bez zarzutu! tylko 10 sekund z poprawnym słownikiem
gyss

Udało się odzyskać hasło do klucza znajdującego się w środku, ale co mogę zrobić, jeśli zgubię również hasło do samego magazynu kluczy? @kiruwka powiedział, że to nie problem w jego odpowiedzi ... czy naprawdę miał to na myśli?
SebasSBM

26

Przejdź do taskHistory

Wreszcie znalazłem rozwiązanie po spędzeniu dwóch dni ...

Wykonaj następujące kroki:

  1. Przejdź do projektu
  2. W .gradle znajdź folder z wersją gradle, w moim przypadku był to 4.1 (patrz zdjęcie)
  3. rozwiń folder 4.1, a następnie w folderze taskHistory znajdziesz plik taskHistory.bin.
  4. Otwórz plik taskHistory.bin w samym Android Studio.
  5. Wyszukaj „.storePassword” .. To jest to, że masz hasło do magazynu kluczy.

To naprawdę zadziałało.

Spróbuj tego i miłego kodowania !!!


Niestety w systemie Android 3.5.3 plik .bin nie zawiera żadnych istotnych informacji.
RominaV

19

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


to uratowało mi życie u klienta - wszystkie inne opcje nie były dostępne, ponieważ użyliśmy jakiegoś skryptu w połączeniu z aplikacją cordova / phonegapp
rarspace01

Nie udało mi się go znaleźć przy użyciu „keystore”, ale używając „key.password”
ceed

17

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.


Łał! Działa również w Ubuntu! Nie wiem, jak ci podziękować!
زياد

Potwierdzam, że nadal działa w AS 3.5.3 - dziękuję!
RominaV

17

W rzeczywistości utrata keystore passwordnie jest problemem.
Możesz utworzyć nowy magazyn kluczy i ustawić dla niego nowe hasło za pomocą keytoolponiż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.keystorei 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 passwordużywany tylko do zapewnienia integralności keystore, nie szyfruje z nim danych, w przeciwieństwie do tego private key password, który faktycznie utrzymuje zaszyfrowany klucz prywatny.

Pamiętaj, że musisz znać swój, private key passwordaby podpisywać aplikacje. Cóż, jeśli to to samo, co zapomniane keystore password, możesz uciec się do brutalnej siły, jak w odpowiedzi @ Artur.

To podejście zawsze działało dla mnie.


Próbowałem tego i powoduje to wprowadzenie hasła do miejsca docelowego. Jeśli będziesz dalej naciskać enter, po 3 próbach będziesz mógł spróbować ponownie później.
The Muffin Man

@TheMuffinMan przepraszam, nie do końca zrozumiałem twój problem. Czy udało Ci się utworzyć nowy keystore z nowym keystore pw?
kiruwka

1
W ten sposób otrzymuję nowy magazyn kluczy, ale kiedy próbuję użyć tego nowego magazynu kluczy, pojawia się komunikat o błędzie jarsigner: key associated with mykey-release not a private key. Czy coś mi brakuje?
phihag

@phihag Mam ten sam problem. Czy znalazłeś rozwiązanie?
Teddy Kossoko

13

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;)

  • Szuka ..Project\.gradle\2.4\taskArtifacts\taskArtifacts.binw moim przypadku, ..Project\.gradle\2.2.1\taskArtifacts\taskArtifacts.binbo używamgradle 2.2.1
  • Następnie spójrz na storePasswordto, 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 !!!


12

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

cd ~/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

-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,

Mam nadzieję, że to pomoże użytkownikom Android Studio


11
Myślę, że to nie działa na AndroidStudio3.0, wszystkie informacje są wyświetlane jako ******* z tą samą długością zarówno dla hasła magazynu kluczy, jak i hasła klucza.
TheLearner

Dokładnie tam znalazłem hasło, dzięki za wiadomość. Powyżej zredagowałem również odpowiedź. Te dwie lokalizacje są wybawcami, mam nadzieję, że w przyszłości Keystore Tool w Android Studio ostrzega użytkownika, aby zapisał hasło, ponieważ będą go potrzebować rok lub 2 lata po kolejnym wydaniu.
MG Developer

11

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

Project.gradle \ 3.3 \ taskArtifacts \ taskArtifacts.bin

Mam nadzieję, że to komuś pomoże


9

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ą

  1. 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:

    adding: META-INF/MANIFEST.MF
    ...
    signing: classes.dex

    mi. wersja bez podpisu jest nadpisywana w miejscu, więc podpisany plik apk ma teraz taką samą nazwę jak plik bez podpisu

  2. 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:

    Verifying alignment of signedaligned.apk (4)
    50 META-INF/MANIFEST.MF (OK - compressed)
    ...
    1047129 classes.dex (OK - compressed)
    Verification succesful

    re. podpisany i wyrównany plik znajduje się w signedaligned.apk (nazwa pliku podana w poprzednim poleceniu)

========> GOTOWE DO PRZESŁANIA NA RYNEK


Powodem, dla którego otrzymałeś błąd dotyczący nieprawidłowego hasła, jest to, że niejawnie ustawiony keyalg / sigalg / digestalg był nieprawidłowy. Różne wersje języka Java mają różne wartości domyślne dla tych wartości.
Will Vanderhoef

Byłem spięty, kiedy eclipse odrzuciło moje hasło, ale zadziałało, gdy spróbowałem na twój sposób, dziękuję!
Hardik4560

9

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ć:

  1. 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.

  2. 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

    ~ / Library / Logs / AndroidStudio / idea.log.1

    Linux (możliwa lokalizacja)

    / home / nazwa_użytkownika / AndroidStudio / system / log

    Windows (możliwa lokalizacja)

    C: \ Users \ nazwa_użytkownika \ AndroidStudio \ system \ log

    i wyszukaj Pandroid.injected.signing.key.passwordw pliku. Zobaczysz hasło, jeśli wcześniej podpisałeś aplikację przy użyciu tej samej wersji Android Studio, w której obecnie szukasz.

  3. Możesz również pobrać hasło z katalogu .gradle swojego projektu. Poszukaj następującej ścieżki

    katalog_projektu / .gradle / 2.4 / taskArtifacts / taskArtifacts.bin.

    Uwaga: wydaje się, że nie działa to w nowszych wersjach Gradle (2.10 i nowszych).

  4. 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

    ~ / Library / Logs / AndroidStudio / idea.log.1

    Linux (możliwa lokalizacja)

    / home / nazwa_użytkownika / AndroidStudio

    Windows (możliwa lokalizacja)

    c: \ użytkownik \ nazwa użytkownika \ .AndroidStudio

    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.


Wyszukiwanie w dziennikach pomogło jak urok. Dziękuję, uratowałeś mój spokój
rommex

Znalazłem idea.log.1. Jak mogę to otworzyć?
KZoNE

Ratujecie życie. Moje znalazłem w idea.log.12 - po prostu otwórz jako txt!
Victor R. Oliveira,

7

Najpierw pobierz AndroidKeystoreBrute_v1.05.jar, a następnie postępuj zgodnie z podanym obrazem.wprowadź opis obrazu tutaj

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.


Witam, nie otrzymuję wyniku. Proszę o pomoc
Nimisha V

@NimishaV, z jakim problemem masz do czynienia
Srinivas Keerthiprakasam

7

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

{"mName":"externalOverride","mStoreFile":"C:\\Users\\dAvInDeR\\Desktop\\KEYSTORE\\keystore.jks","mStorePassword":"1234@#abcd","mKeyAlias":"uploadkey","mKeyPassword":"1234@#abcd","mStoreType":"jks","mV1SigningEnabled":false,"mV2SigningEnabled":false}

Mam nadzieję, że w pełni ci to pomoże.


2
To jest dosłownie ostatnie hasło, które próbowałeś, może to być próba innego hasła. Wtedy dostaną złe hasło
Amir Dora.

Jest to tylko ostatnie wygenerowane hasło APK i cały czas plik json zmienia się podczas generowania nowego apk
Tarit Ray

To uratowało mi dzień!
Chathurika Senani

naprawdę mnie uratowałeś!
Benhar Upasana

5

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:

signingConfigs {
    config {
        keyAlias 'My App'
        keyPassword 'password'
        storeFile file('/storefile/location')
        storePassword 'anotherpassword'
    }
}

Czy czujesz się szczęśliwy ?!


3

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.javapolecenia. Potem możesz biec

java ChangePassword <oldKeystoreFileName.keystore> <newKeystoreFileName.keystore>

Zmień 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

Wprowadź hasło do magazynu kluczy:

. Po prostu wprowadź cokolwiek wolisz :) nie musisz być oryginalnym hasłem, które zostało utracone. Następnie wprowadź nowe hasło za pomocą *

nowe hasło do magazynu kluczy:

  • Voila, to wszystko. Nie zmieni to sumy kontrolnej Twojego magazynu kluczy i nie spowoduje żadnych problemów z podpisywaniem aplikacji ani przesyłaniem do zdarzeń play.google.

@SIW, zmieniam hasło, tworząc nowy magazyn kluczy przy użyciu starego z ChangePassword. Kiedy chcę podpisać, otrzymałem klucz powiązany z moim aliasem, a nie kluczem prywatnym
Teddy Kossoko.


3

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_PASSWORDjak poniżej:

signingConfigs {
    release {
        if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
            storeFile file(MYAPP_RELEASE_STORE_FILE)
            storePassword MYAPP_RELEASE_STORE_PASSWORD
            keyAlias MYAPP_RELEASE_KEY_ALIAS
            keyPassword MYAPP_RELEASE_KEY_PASSWORD
            println MYAPP_RELEASE_KEY_PASSWORD
        }
    }
}

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:

./app/build/intermediates/signing_config/release/out/signing-config.json

Plik będzie zawierał Twoje hasło w formacie json z kluczem „mKeyPassword”: „<twoje hasło>”


3

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.


Dziękuję bardzo!
Hugo Ramos

2

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


Powinien to być idea.log.
Felix

2

Znalazłem hasło w

C:\Users\{Username}\.AndroidStudio2.2\system\log\idea.txt

Szukaj

Pandroid.injected.signing.store.password

2

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


2

Idź do taskhistory.binw .gradlefolderze projektu hasło Szukaj przewijania w dół aż znajdziesz hasło


2

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.


1

Podsumowując, istnieją 3 odpowiedzi na to pytanie (a rozwiązania nie daje zaakceptowana odpowiedź):

  1. Jeśli masz nienaruszone dzienniki, możesz znaleźć hasło w plikach dziennika Android Studio zgodnie z powyższą odpowiedzią Georgi Koemdzhieva .

  2. 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).

  3. 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 .


1

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!


1

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 ..... :)


1

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)

keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks

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

keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks

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


Myślę, że to jest dla tych, którzy wybiorą opcję logowania się do aplikacji Google?
Sumit Kumar

0

Nie musisz używać brutalnej siły, a prostym sposobem jest znalezienie hasła w postaci zwykłego tekstu.

iść do:

C:\Users\<your username>\AndroidStudioProjects\WhatsAppDP\.gradle\2.2.1\taskArtifacts

Otwarty:

taskArtifacts.bin 

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ć:

signingConfig.keyPassword¬í t <your password>Æù

Mam nadzieję, że to było pomocne.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.