Nieautoryzowane urządzenia Android ADB


97

Konfiguracja:

  • Windows 8.1
  • Wersja ADB: 1.0.32
  • Smartfon: Oneplus One

Problem

Zainstalowałem sterowniki Samsunga tak, jak się mówi. Kiedy uruchomiłem polecenie urządzeń ADB, powiedziało nieautoryzowane .

Już próbowałem:

  1. Zrobiłem wszystko, co zostało powiedziane w tym poście: https://stackoverflow.com/a/25546300/1848376

    Problem polega jednak na tym, że nie otrzymuję przez telefon monitu z informacją, że muszę zaakceptować połączenie.

  2. Kiedy uruchamiam polecenie adb shell, oto odpowiedź:

    error: device unauthorized.
    This adbd's $ADB_VENDOR_KEYS is not set; try 'adb kill-server' if that seems wrong.
    Otherwise check for a confirmation dialog on your device.
    

Zrobiłem "adb kill-server", ale to niczego nie zmieniło. Czemu?


Po wypróbowaniu wszystkich powyższych, zacząłem pobierać niższe AVD, aby sprawdzić, czy inne będą działać. API 28 i 27 nadal zawieszają się podczas rozruchu, ale API 26 uruchomiło się od razu. Android Studio 3.1.3 Spróbuję odinstalować i ponownie zainstalować później, ale cieszę się, że w końcu znów działa. Świeża instalacja systemu Android Studio 3.1 po nowej instalacji systemu Windows 10 po wystąpieniu krytycznego błędu procesu przez prawie tydzień bez naprawy.
Jon

Odpowiedzi:


212
  1. Spróbuj cofnąć autoryzację USB DEBUGGING.
  2. Włącz ponownie debugowanie USB.

Zadziałało.


8
Po ponownym włączeniu debugowania USB może być ważne, aby zaznaczyć pole, które mówi, że zawsze zezwalaj na debugowanie USB z tego urządzenia. Uważam, że ta opcja pojawi się tylko wtedy, gdy masz urządzenie z Androidem podłączone do USB, gdy ponownie włączasz debugowanie USB.
joshgoldeneagle

Musiałem tylko wyłączyć, a następnie włączyć debugowanie USB na moim urządzeniu po przejściu na nowy komputer (Macbook).
Nancy

Odłącz, a następnie podłącz ponownie powinno być Twoim pierwszym krokiem.
TGrif

Dziękuję za Twoją odpowiedź. Uratowałeś mój czas.
Kelvin Low,

Nigdy nie myślałem, że utknąłem w pułapce „czy próbowałeś to wyłączyć i ponownie włączyć?” :)
jediz

46

Istnieją programiści Thankgod xda: http://forum.xda-developers.com/verizon-lg-g3/help/unable-to-access-adb-t2830087

Wystarczyło usunąć plik adbkey w C: Users / $ Name / .android adbkey.pub brakowało.

Uruchom ponownie po tym i oba pliki są tam.

Jeśli to nie zadziała: - Spróbuj cofnąć autoryzację USB DEBUGGING. - Włącz ponownie debugowanie USB.


1
gdzie jest ten klucz na komputerze Mac?
mozaika

1
> Uruchom ponownie po tym i oba pliki są tam Jak przy ponownym uruchomieniu? Korzystam z systemu Windows i utknąłem z „nieautoryzowanym” urządzeniem, które po prostu nie zniknie! (Ale nie uruchomiłem ponownie, ponieważ otwarte są 2 miliony okien)
tbone

2
@tbone Wiem, że to późna odpowiedź, ale wystarczy ponownie uruchomić serwer adb.
Carlos EL Augusto

2
usunął wszystko w tym pliku i nie tylko naprawił ADB przez sieć, ale także USB
Ben

2
zmieniono nazwę .android.oldna po bezpiecznej stronie, ale jak tylko zrestartowałem serwer adb i cofnąłem autoryzacje, mój telefon od razu mnie o to poprosił! @julestruong thanks!
Richard.Davenport

28

Kolejno:

    adb kill-server
  • w USTAWIENIU URZĄDZENIA przejdź do opcji programisty i wyłącz debugowanie USB

  • naciśnij ODWOŁAJ autoryzacje debugowania USB, kliknij OK

  • włącz debugowanie USB

    adb start-server
    

2
Uruchomiłem polecenie jako root w Ubuntu i to rozwiązało mój problem. Nie można tego zrobić bez su (Ubuntu 18).
petobens,

20

Usunąłem następujące pliki z folderu ~ / .android :

  • adbkey
  • adbkey.pub

Wyłączyłem i włączyłem ADB w urządzeniu i teraz działa ...


1
Widziałem tylko adbkeyplik, więc go usunąłem i działało jak urok. Dzięki!
Reeshabh Ranjan

18

w opcjach programisty,

  1. Włączyć debugowanie USB.

wprowadź opis obrazu tutaj

  1. Udziel zezwolenia.

wprowadź opis obrazu tutaj

(jeśli nie ma menu opcji programisty, musisz kliknąć 3 razy numer kompilacji menu stanu telefonu, aby zostać programistą. możesz skorzystać z menu opcji programisty).

wprowadź opis obrazu tutaj


8

Usuń istniejące adbkeys

LUB

Zmień nazwę adbkeys

Najlepszą praktyką jest zmiana nazw kluczy, ponieważ zapewnia to kopię zapasową.

cd ~/.Android

mv adbkey adbkey2

mv adbkey.pub adbkey.pub2

Następnie zatrzymaj i uruchom serwer

cd ~/Android/Sdk/platform-tools

Zlokalizuj urządzenie /Android/Sdk/platform-tools$ ./adb devices

/Android/Sdk/platform-tools$ ./adb kill-server

/Android/Sdk/platform-tools$ ./adb start-server

Następnie zatrzymaj emulator Otwórz menedżera AVD, kliknij strzałkę w dół, a następnie kliknij wyczyść dane

Uruchom ponownie emulator. Wtedy wszystko działa dobrze :)


5

Spróbuj usunąć zaznaczenie opcji „weryfikuj aplikacje przez USB” w opcjach programisty, a następnie włącz i wyłącz „Debugowanie USB”. U mnie to działa.


Ta metoda zadziałała w moim przypadku: Moje „Debugowanie USB” było najpierw WŁĄCZONE, potem odznaczam „Weryfikuj aplikacje przez USB”, ale to nie pomaga. Po włączeniu, a następnie włączeniu „Debugowania USB”, zadziałało!
Jackie Yeh

4

Upewnij się, że zaakceptowałeś naciśnięty przycisk "ok", gdy pyta, że ​​pokazuje odcisk palca urządzenia po podłączeniu przez USB do komputera.


2
Zastanawiam się, czy ludzie zagłosujący za innymi odpowiedziami faktycznie sprawdzili ekran urządzenia…
Skippy le Grand Gourou

LOL Czułem się dość głupio, kiedy spojrzałem w dół na swój telefon
Jack St. Claire,

4

W studiu Android Run menu > Run pokazuje OFFLINE ...dla podłączonego urządzenia.

Poniżej znajduje się procedura rozwiązania tego problemu:

  1. (Przeczytaj najpierw poniższą notatkę) Usuń ~/.android/adbkey(lub zmień nazwę na ~/.android/adbkey2, jest to jeszcze lepsze, jeśli chcesz go z jakiegoś powodu z powrotem)
    Uwaga : zdarzyło mi się zrobić ten krok, ale nie rozwiązało problemu, po wykonaniu wszystkich poniżej kroki zadziałało, więc nie jestem pewien, czy ten krok jest wymagany.

  2. Uruchom locate platform-tools/adb
    Uwaga : użyj ścieżki, która pochodzi stąd w poniższych poleceniach

  3. Zabij serwer adb:
    sudo ~/Android/Sdk/platform-tools/adb kill-server

  4. Otrzymasz Allow accept..wyskakujące okienko z wiadomością na swoim urządzeniu. Zaakceptuj to. To ważne, co rozwiązuje problem.

  5. Uruchom serwer adb:
    sudo ~/Android/Sdk/platform-tools/adb start-server

  6. W Android Studio, zrób Run menu > Runjeszcze raz
    Wyświetli się coś w stylu Samsung ...(nazwa producenta twojego telefonu).
    Tym razem poprawnie instaluje apk na urządzeniu bez błędów.

Mam nadzieję, że to pomoże.


2
  1. Najpierw usunąć adbkeyi adbkey.pubod .androidkatalogu w katalogu głównym.
  2. Dokonaj .androidkatalogu w domu z 710 uprawnieniami: $ chmod 710 .android/a własność jako: chown -R <user>:<user> .android/. Dawny:

    $ chmod 710 .android/
    $ chown -R ashan:ashan .android/
    
  3. Przejdź do opcji programisty w telefonie komórkowym i dotknij opcji Revoke USB debugging authorizations

  4. Wyłącz wszystko USB Debuggingi Developer Optionsw urządzeniu i odłączyć urządzenie od komputera.

  5. Podłącz ponownie urządzenie i najpierw włącz Developer Options. Następnie włącz USB debugging.

  6. W tym momencie w telefonie komórkowym pojawi się monit o prośbę o pozwolenie. Uwaga: musisz zaznaczyć pole always accept from this ….wyboru i kliknąć OK.

  7. Teraz w ciebie maszynie uruchomić serwer adb: adb start-server.

  8. Miejmy nadzieję, że kiedy wydasz polecenie: adb devicesteraz zobaczysz, że twoje urządzenie jest gotowe do autoryzacji.


1

Mnie też uderzył ten problem. Korzystam z własnej wersji AOSP na Nexusie 5X. Dodałem pojedynczą linię w build / core / main.mk:

diff --git a/core/main.mk b/core/main.mk
index a6f829ab6..555657539 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -362,6 +362,8 @@ else # !enable_target_debugging
   ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=0
 endif # !enable_target_debugging

+ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=1
+
 ## eng ##

 ifeq ($(TARGET_BUILD_VARIANT),eng)

Teraz adb shelldziała dobrze

Te materiały są przydatne (artykuły chińskie): http://www.voidcn.com/blog/kc58236582/article/p-6335996.html , http://blog.csdn.net/fanmengke_im/article/details/28389439



1

Żadna z metod wymienionych na tej stronie nie działała dla mnie; konkretnie:

  • Miałem problem z awarią aplikacji Ustawienia po wybraniu Odwołaj autoryzacje debugowania USB
  • Używałem LineageOS 14 x86_64
  • Używałem ADB przez sieć
  • Nie /data/misc/adbzawiera adb_keyspliku
  • Usunięcie mojego lokalnego ~/.android/adbkeyteż nie pomogło
  • Miałem dostęp do roota z lokalnego terminala
  • Nie otrzymałem żadnego okna dialogowego z potwierdzeniem
adb: error: failed to get feature set: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.
- waiting for device -

W końcu znalazłem tutaj bardzo przydatny post , który sugerował ręczne umieszczenie zawartości pliku ~/.android/adbkey.pubwewnątrz /data/misc/adb/adb_keyspliku.

Zaproponowali jedną z tych dwóch metod:

  1. Z innego działającego urządzenia skopiuj adb_keysplik na swój komputer:

    # On the other Android device
    cp /data/misc/adb/adb_keys /sdcard
    
    # From your computer
    adb pull /sdcard/adb_keys .
    

    Następnie umieść adb_keysplik roboczy na karcie sdcard urządzenia z systemem Android, którego dotyczy problem (za pomocą sieci Web lub MTP) o nazwie jako adb_keys, a następnie skopiuj plik do właściwej ścieżki:

    # On the problematic device
    cp /sdcard/adb_keys /data/misc/adb/adb_keys
    
  2. Inną metodą jest po prostu skopiowanie komputera adbkey.pubz ~/.android/katalogu i umieszczenie go na karcie sdcard urządzenia z systemem Android (przy użyciu sieci Web lub MTP) o nazwie as adb_keys, a następnie skopiowanie pliku do właściwej ścieżki:

    # On the problematic device
    cp /sdcard/adbkey.pub /data/misc/adb/adb_keys
    

    (Uwaga: istnieje podobna odpowiedź na SO, która zawiera dalsze szczegóły dotyczące tej metody).

Odkąd uruchomiłem serwer WWW na moim komputerze i miałem curl zainstalowałem system Android, suuruchomiłem z terminala i uruchomiłem na moim urządzeniu z Androidem:

cd /data/misc/adb
curl 192.168.1.35:8080/adbkey.pub > adb_keys

Zabito adbdemona (używającadb kill-server ) i BAM ! adbShell działało dobrze, jak powinno być od początku.

Mam nadzieję, że opisana tutaj metoda działa tak samo, jak w przypadku mnie.


1

Twoja aplikacja jest wykrywana jako szkodliwy program. Wyłącz opcję „Weryfikuj aplikacje przez USB”. Jest to ten sam widok, co „debugowanie USB”.


0

Wszystko, czego potrzebujesz, to autoryzacja trybu debugowania.
1. Upewnij się, że urządzenie jest podłączone do komputera.
2. Zezwól na autoryzację do trybu debugowania przez Android-Studio, przechodząc do
Uruchom -> Dołącz debugger do procesu Android
, a zobaczysz wyskakujące okienko umożliwiające tryb debugowania w urządzeniu,
naciśnij OK. Gotowe.
mam nadzieję, że komuś to pomoże.


0

Miałem ten sam problem po ponownej instalacji mojego studia Android. Oto, co zrobiłem, aby mój adb znów działał:

-path to C:\Users\User\AppData\Local\Android\sdk\platform-tools
-Shift+r.click and start command from here instead.

0

dla każdego, kto napotka to później, może to również pomóc. Napotkałem dokładnie ten problem, próbując użyć adb z wiersza polecenia użytkownika, a powyższe odpowiedzi nie pomogły, ale problem zniknął z „serwerem zabijania adb” podczas uruchamiania w wierszu polecenia administratora.


0

To zadziałało dla mnie:

rm ~ / .android / adbkey.pub

sudo ./adb kill-server

sudo ./adb start-server

sudo ./adb -s emulator-5554 install ~ / apk_to_install.apk

Nie jestem pewien, czy to dobry pomysł, aby uruchomić adb z uprawnieniami sudo, ale był to jedyny sposób, w jaki to działa. Pozdrowienia.


0

Otrzymałem to jako root, gdy jako użytkownik inny niż root otrzymywałem błędy uprawnień podczas próby połączenia się z niestandardowym odzyskiwaniem (Philz). więc zabiłem serwer adb, skopiowałem podkatalog .android mojego konta użytkownika do / root, chained -R do root.root i zrestartowałem serwer adb. Jestem za!


0

To zadziałało dla mnie

1- Go to ~/.android/ and remove “adbkey”
2- Disconnect USB connection
3- adb kill-server
4- Revoke USB debugging authorizations (in developer option)
5- Reconnect the device to the Ma
6- adb devices

-1

Przypuszczam, że masz włączone opcje programisty na urządzeniu w swoim smartfonie? Jeśli nie, możesz przyjrzeć się krokom udostępnianym przez Androida, http://developer.android.com/tools/device.html#developer-device-options


Tak, zrobiłem i wyłączam i włączam.
julestruong

według tego linku ( code.google.com/p/android/issues/detail?id=175077 ) wygląda na to, że "narzędzia platformy 23 rc1" mają ten problem. Wersje narzędzi platformy można znaleźć za pomocą cmd „$ adb version”. Odnośnik mówi, że powrót do wersji 22 narzędzi do kompilacji rozwiązuje problem.
Dhunju_likes_to_Learn

Pobrałem narzędzia plateform 22 i zastąpiłem je w katalogu sdk, nie działało (wersja adb wydaje się być taka sama)
julestruong

-1

W przypadku FIRE STICK 4K w oknie dialogowym faktycznie jest napisane:

W przeciwnym razie sprawdź, czy na urządzeniu pojawiło się okno dialogowe z potwierdzeniem

Rzeczywiście, na telewizorze w drugim pokoju było okno dialogowe z potwierdzeniem. Doh '!


1
Może to mógłby być komentarz boczny do pytania, ale nie jest to odpowiedź, ponieważ pytanie dotyczy innego typu urządzenia.
Jairo

-2

Miałem ten problem i nie został on rozwiązany przez usunięcie jakichkolwiek kluczy (przynajmniej ich usunięcie nie pomogło, może jednak miało to wpływ po tym, jak to naprawiłem)

W rzeczywistości wystąpiła rozbieżność między moją wersją sdk-tools a moją wersją Android Studio. Po aktualizacji narzędzi nadal nie działało, ale po aktualizacji AS (do wersji 1.4) wszystko znów działało dobrze.

Zawsze aktualizuj razem sdk-tools i wersję AS;)

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.