Các thiết bị Android ADB trái phép


93

Cấu hình:

  • Windows 8.1
  • Phiên bản ADB: 1.0.32
  • Điện thoại thông minh: Oneplus One

Vấn đề

Tôi đã cài đặt các trình điều khiển Samsung như người ta nói. Khi tôi chạy lệnh thiết bị ADB, nó cho biết là trái phép .

Đã thử:

  1. Tôi đã làm tất cả những gì được nói trên bài đăng này: https://stackoverflow.com/a/25546300/1848376

    Nhưng vấn đề là tôi không nhận được lời nhắc trên điện thoại cho tôi biết tôi phải chấp nhận kết nối.

  2. Khi tôi chạy lệnh adb shell, đây là câu trả lời:

    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.
    

Tôi đã thực hiện "adb kill-server", nhưng nó không thay đổi bất cứ điều gì. Tại sao?


Sau khi thử tất cả các cách trên, tôi bắt đầu tải xuống các AVD thấp hơn để xem có cái nào khác hoạt động không. API 28 và 27 vẫn bị đóng băng trong khi khởi động, nhưng API 26 đã khởi động ngay. Android Studio 3.1.3 Tôi sẽ cố gỡ cài đặt và cài đặt lại vào một ngày sau đó, nhưng rất vui vì điều này cuối cùng đã hoạt động trở lại. Cài đặt mới Android Studio 3.1 sau khi cài đặt Windows 10 mới sau khi xử lý lỗi quy trình nghiêm trọng trong gần một tuần mà không được khắc phục.
Jon

Câu trả lời:


208
  1. Thử Thu hồi ủy quyền GỠ GỠ USB.
  2. Bật lại gỡ lỗi USB.

Nó đã làm việc.


8
Khi bạn bật lại gỡ lỗi USB, điều quan trọng là phải chọn hộp cho biết luôn cho phép gỡ lỗi USB từ thiết bị này. Tôi tin rằng tùy chọn này sẽ chỉ hiển thị nếu bạn đã cắm thiết bị Android của mình vào USB khi bạn đang bật lại gỡ lỗi USB.
joshgoldeneagle,

Tôi chỉ phải tắt và sau đó bật gỡ lỗi USB trên thiết bị của mình, sau khi chuyển sang máy tính mới (Macbook).
Nancy

Rút phích cắm rồi cắm lại dù sao cũng nên là động thái đầu tiên của bạn.
TGrif

Cảm ơn bạn vì câu trả lời. Bạn đã tiết kiệm thời gian của tôi.
Kelvin Thấp

Tôi chưa bao giờ nghĩ rằng mình bị mắc kẹt trong câu hỏi "bạn đã thử tắt nó một lần nữa không?" :)
jediz

45

Thankgod xda các nhà phát triển tồn tại: http://forum.xda-developers.com/verizon-lg-g3/help/unable-to-access-adb-t2830087

Chỉ cần xóa tệp adbkey trong C: Users / $ Name / .android adbkey.pub bị thiếu.

Khởi động lại sau đó và cả hai tệp đều ở đó.

Nếu cách này không hiệu quả: - Thử Thu hồi Ủy quyền Gỡ lỗi USB. - Bật lại gỡ lỗi USB.


1
chìa khóa này ở đâu trên máy Mac?
mosaad

1
> Khởi động lại sau đó và cả hai tệp đều có Như khi khởi động lại? Tôi đang sử dụng Windows và bị mắc kẹt với một thiết bị "trái phép" sẽ không biến mất! (Nhưng tôi chưa khởi động lại, có 2 triệu cửa sổ đang mở)
tbone

1
@tbone Tôi biết đó là câu trả lời muộn nhưng bạn chỉ cần khởi động lại máy chủ adb.
Carlos EL Augusto

2
đã xóa mọi thứ trong tệp đó và nó không chỉ sửa được ADB qua Mạng mà còn cả USB
Ben

2
được đổi tên để .android.oldan toàn, nhưng ngay sau khi tôi khởi động lại máy chủ adb và thu hồi quyền, điện thoại của tôi đã nhắc tôi ngay lập tức! @julestruong xin cảm ơn!
Richard.Davenport

27

Theo thứ tự:

    adb kill-server
  • trong THIẾT LẬP THIẾT BỊ của bạn, hãy chuyển đến tùy chọn nhà phát triển kết thúc vô hiệu hóa gỡ lỗi usb

  • nhấn REVOKE ủy quyền gỡ lỗi USB, bấm OK

  • cho phép gỡ lỗi usb

    adb start-server

2
Tôi đã chạy lệnh dưới quyền root trong Ubuntu và điều này đã giải quyết được vấn đề của tôi. Không thể làm cho nó hoạt động nếu không có su (Ubuntu 18).
petobens

20

Tôi đã xóa các tệp sau khỏi thư mục ~ / .android :

  • adbkey
  • adbkey.pub

Tôi đã tắt và bật ADB trong thiết bị và bây giờ nó hoạt động ...


1
Tôi chỉ nhìn thấy adbkeytệp nên tôi đã xóa nó và nó hoạt động như một sự quyến rũ. Cảm ơn!
Reeshabh Ranjan

18

trong Tùy chọn nhà phát triển,

  1. Cho phép gỡ lỗi USB.

nhập mô tả hình ảnh ở đây

  1. Đưa ra một ủy quyền.

nhập mô tả hình ảnh ở đây

(nếu không có menu tùy chọn Nhà phát triển, bạn phải nhấp vào 3 lần số bản dựng của menu Trạng thái điện thoại để trở thành nhà phát triển. Bạn có thể xem menu tùy chọn nhà phát triển.)

nhập mô tả hình ảnh ở đây


8

Xóa các khóa quảng cáo hiện có

HOẶC LÀ

Đổi tên các khóa quảng cáo

Cách tốt nhất là đổi tên các khóa vì nó cung cấp bản sao lưu.

cd ~/.Android

mv adbkey adbkey2

mv adbkey.pub adbkey.pub2

Điểm dừng tiếp theo và khởi động máy chủ

cd ~/Android/Sdk/platform-tools

Định vị thiết bị /Android/Sdk/platform-tools$ ./adb devices

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

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

Sau đó, dừng trình giả lập Mở trình quản lý AVD, nhấp vào mũi tên xuống, sau đó nhấp vào xóa dữ liệu

Khởi động lại trình giả lập. Sau đó, mọi thứ hoạt động tốt :)


5

Hãy thử điều này, bỏ chọn "xác minh ứng dụng qua USB" trong tùy chọn nhà phát triển, sau đó bật và tắt "Gỡ lỗi USB". Nó hoạt động với tôi.


Phương pháp này phù hợp với tôi: Lúc đầu, "Gỡ lỗi USB" của tôi đã BẬT, sau đó tôi bỏ chọn "xác minh ứng dụng qua USB" nhưng điều này không hữu ích. Sau khi tôi bật "Gỡ lỗi USB", nó đã hoạt động!
Jackie Yeh

4

Đảm bảo rằng bạn đã chấp nhận nhấn nút "ok" khi nó yêu cầu nó hiển thị dấu vân tay của thiết bị sau khi kết nối qua USB với PC của bạn.


2
Tôi tự hỏi nếu người upvoting câu trả lời khác thực sự đã kiểm tra các màn hình điện thoại ...
Skippy le Grand Gourou

LOL - Liên minh huyền thoại Tôi cảm thấy khá ngớ người khi nhìn xuống điện thoại của mình
Jack St. Claire

4

Trong Android studio, Run menu > Runhiển thị OFFLINE ...cho thiết bị được kết nối.

Dưới đây là quy trình sau để giải quyết nó:

  1. (Đọc ghi chú bên dưới trước) Xóa ~/.android/adbkey(hoặc, đổi tên thành ~/.android/adbkey2, điều này thậm chí còn tốt hơn nếu bạn muốn nó trở lại vì lý do nào đó)
    Lưu ý : Tôi đã thực hiện bước này, nhưng nó không giải quyết được vấn đề, sau khi thực hiện tất cả dưới các bước nó hoạt động, vì vậy không chắc chắn nếu bước này là bắt buộc.

  2. Chạy locate platform-tools/adb
    Lưu ý : sử dụng đường dẫn đến từ đây trong các lệnh dưới đây

  3. Hủy máy chủ adb:
    sudo ~/Android/Sdk/platform-tools/adb kill-server

  4. Bạn sẽ nhận được một Allow accept..thông báo bật lên trên thiết bị của mình. Chấp nhận nó. Đây là điều quan trọng, giải quyết được vấn đề.

  5. Khởi động máy chủ adb:
    sudo ~/Android/Sdk/platform-tools/adb start-server

  6. Trong Android studio, làm Run menu > Runlại
    Nó sẽ hiển thị một cái gì đó như Samsung ...(tên nhà sản xuất điện thoại của bạn).
    Đồng thời cài đặt đúng apk trên thiết bị lần này mà không có lỗi.

Hy vọng rằng sẽ giúp.


2
  1. Đầu tiên Xóa adbkeyadbkey.pubkhỏi .androidthư mục trong Thư mục chính của bạn.
  2. Hãy .androidthư mục trong nhà của bạn với 710 điều khoản: $ chmod 710 .android/và quyền sở hữu như: chown -R <user>:<user> .android/. Ví dụ:

    $ chmod 710 .android/
    $ chown -R ashan:ashan .android/
  3. Chuyển đến tùy chọn nhà phát triển trong điện thoại di động của bạn và nhấn vào tùy chọn Revoke USB debugging authorizations

  4. Tắt tất cả USB DebuggingDeveloper Optionstrong thiết bị và ngắt kết nối thiết bị khỏi máy của bạn.

  5. Kết nối lại thiết bị và lần đầu tiên bật Developer Options. Sau đó, bật USB debugging.

  6. Tại thời điểm này trên điện thoại di động của bạn, bạn sẽ nhận được lời nhắc yêu cầu quyền từ bạn. Lưu ý: bạn phải đánh dấu vào always accept from this ….tùy chọn hộp kiểm và nhấp vào ok.

  7. Bây giờ trong bạn máy, khởi động server adb: adb start-server.

  8. Hy vọng rằng khi bạn đưa ra lệnh: adb devicesbây giờ, bạn sẽ thấy thiết bị của mình đã sẵn sàng được ủy quyền.


1

Tôi cũng bị ảnh hưởng bởi vấn đề này. Tôi đang sử dụng phiên bản AOSP tùy chỉnh của mình trên Nexus 5X. Tôi đã thêm một dòng duy nhất trong 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)

Bây giờ adb shellhoạt động tốt

Những tài liệu đó rất hữu ích (các bài báo tiếng Trung): http://www.voidcn.com/blog/kc58236582/article/p-6335996.html , http://blog.csdn.net/fanmengke_im/article/details/28389439


1

Thử xóa tệp adbkey khỏi thư mục C / .android

và sau đó chạy các lệnh như đã đề cập ở trên, tức là

adb kill-server, adb start-server và các thiết bị adb

.


Hình như, đây là chính xác những gì được trình bày chi tiết được mô tả dưới đây trong bài stackoverflow.com/a/55470951/984471
Manohar Reddy Poreddy

1

Không có phương pháp nào được liệt kê trên trang này phù hợp với tôi; đặc biệt:

  • Tôi đã gặp sự cố trong đó ứng dụng Cài đặt sẽ bị lỗi khi chọn Thu hồi ủy quyền gỡ lỗi USB
  • Tôi đang chạy LineageOS 14 x86_64
  • Tôi đã sử dụng ADB qua mạng
  • Không /data/misc/adbadb_keystệp nào
  • Xóa cục bộ của tôi ~/.android/adbkeycũng không giúp được gì
  • Tôi đã có quyền truy cập root từ thiết bị đầu cuối cục bộ
  • Tôi không nhận được bất kỳ hộp thoại xác nhận nào
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 -

Cuối cùng, tôi đã tìm thấy một bài đăng rất hữu ích ở đây đề xuất đặt nội dung ~/.android/adbkey.pubbên trong /data/misc/adb/adb_keystệp theo cách thủ công .

Họ đề xuất một trong hai phương pháp sau:

  1. Từ một thiết bị làm việc khác , sao chép adb_keystệp vào máy tính của bạn:

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

    Sau đó đặt adb_keystệp đang làm việc vào sdcard của thiết bị Android có vấn đề (sử dụng Web hoặc MTP) có tên là adb_keys, sau đó sao chép tệp vào đường dẫn chính xác:

    # On the problematic device
    cp /sdcard/adb_keys /data/misc/adb/adb_keys
  2. Phương pháp khác là chỉ cần sao chép máy của bạn adbkey.pubtừ ~/.android/thư mục và đặt nó vào sdcard của thiết bị Android có vấn đề (sử dụng Web hoặc MTP) có tên là adb_keys, sau đó sao chép tệp vào đường dẫn chính xác:

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

    (Lưu ý: có một câu trả lời tương tự trên SO đi vào chi tiết hơn cho phương pháp này.)

Vì tôi đang chạy một máy chủ web trên máy tính của mình và tôi đã curlcài đặt trên Android, tôi suđã chỉnh sửa từ thiết bị đầu cuối và chạy như sau trên thiết bị Android của mình:

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

Đã giết adbdaemon (sử dụng adb kill-server) và BAM ! Các adbvỏ làm việc tốt, như nó cần phải có được từ đầu.

Hy vọng rằng phương pháp được mô tả ở đây hiệu quả với bạn cũng như đối với tôi.


1

Ứng dụng của bạn đang được phát hiện là một số chương trình độc hại. Tắt tùy chọn "Xác minh ứng dụng qua USB". Nó giống như "gỡ lỗi USB".


0

Tất cả những gì bạn cần là cho phép chế độ gỡ lỗi.
1. đảm bảo Thiết bị của bạn được kết nối với PC của bạn.
2. Cho phép cấp quyền cho chế độ gỡ lỗi thông qua Android-Studio bằng cách vào
Run -> Attach debugger to Android process,
bạn sẽ thấy cửa sổ bật lên cho phép chế độ gỡ lỗi trong Thiết bị của bạn,
nhấn OK. làm xong.
tôi hy vọng nó sẽ giúp ích cho ai đó.


0

Tôi đã gặp vấn đề tương tự sau khi cài đặt lại studio Android của mình. Đây là những gì tôi đã làm để làm cho quảng cáo của mình hoạt động trở lại:

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

0

đối với bất kỳ ai gặp phải điều này sau này, điều này cũng có thể hữu ích. Tôi gặp phải sự cố chính xác này khi cố gắng sử dụng adb từ dấu nhắc lệnh của người dùng và các câu trả lời ở trên không giúp được gì, nhưng sự cố đã biến mất với "adb kill-server" khi chạy trong dấu nhắc lệnh của quản trị viên.


0

Điều này đã làm việc cho tôi:

rm ~ / .android / adbkey.pub

sudo ./adb kill-server

sudo ./adb start-server

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

Tôi không chắc liệu có nên chạy adb với các đặc quyền sudo hay không, nhưng đó là cách duy nhất tôi làm cho nó hoạt động. Trân trọng.


0

Tôi nhận được điều này là root khi với tư cách là người dùng không phải root, tôi gặp lỗi quyền khi cố gắng kết nối với khôi phục tùy chỉnh (Philz). vì vậy tôi đã giết máy chủ adb, sao chép thư mục con .android của tài khoản người dùng của tôi vào / root, chowned -R thành root.root và khởi động lại máy chủ adb. Tôi tham gia!


-1

Tôi cho rằng bạn đã bật Tùy chọn nhà phát triển trên thiết bị trong điện thoại thông minh của mình? Nếu không, bạn có thể xem các bước do Android cung cấp, http://developer.android.com/tools/device.html#developer-device-options


Có, tôi đã làm, và tôi cũng tắt và bật nó.
julestruong

theo liên kết này ( code.google.com/p/android/issues/detail?id=175077 ), có vẻ như "công cụ nền tảng 23 rc1" có vấn đề này. Bạn có thể tìm thấy các phiên bản công cụ nền tảng với cmd "$ adb version". Liên kết nói rằng việc chuyển trở lại phiên bản công cụ xây dựng 22 sẽ khắc phục được sự cố.
Dhunju_likes_to_Learn

Tôi tải plateform cụ 22, và thay thế nó trong thư mục sdk, didnt làm việc (adb phiên bản dường như là mặc dù giống nhau)
julestruong

-1

Đối với FIRE STICK 4K, nó thực sự nói trong hộp thoại:

Nếu không, hãy kiểm tra hộp thoại xác nhận trên thiết bị của bạn

Quả thực trên TV trong phòng kia có hộp thoại xác nhận. Làm đi!


1
Có thể đây có thể là một nhận xét phụ cho câu hỏi, nhưng nó không phải là câu trả lời vì câu hỏi liên quan đến một loại thiết bị khác.
Jairo

-2

Tôi đã gặp sự cố này và nó không được giải quyết bằng cách xóa bất kỳ khóa nào (ít nhất là xóa chúng không khắc phục được nó, có thể có ảnh hưởng sau khi tôi đã sửa nó)

Tôi thực sự có sự khác biệt giữa phiên bản sdk-tools và phiên bản Android Studio của mình. Sau khi cập nhật các công cụ của tôi, nó vẫn không hoạt động, nhưng sau khi cập nhật AS (lên 1.4) mọi thứ hoạt động tốt trở lại.

Luôn cập nhật cả sdk-tools và phiên bản AS;)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.