อุปกรณ์ Android ADB ไม่ได้รับอนุญาต


100

การกำหนดค่า:

  • Windows 8.1
  • ADB เวอร์ชัน: 1.0.32.2
  • สมาร์ทโฟน: OnePlus One

ปัญหา

ฉันติดตั้งไดรเวอร์ของ Samsung ตามที่บอกไว้ เมื่อฉันเรียกใช้คำสั่งอุปกรณ์ ADB ก็กล่าวว่าไม่ได้รับอนุญาต

ลองแล้ว:

  1. ฉันทำทุกอย่างที่พูดในโพสต์นี้แล้ว: https://stackoverflow.com/a/25546300/1848376

    แต่ปัญหาคือฉันไม่ได้รับข้อความแจ้งทางโทรศัพท์เพื่อบอกว่าฉันต้องยอมรับการเชื่อมต่อ

  2. เมื่อฉันรันคำสั่งadb shellนี่คือคำตอบ:

    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.
    

ฉันทำ "adb kill-server" แต่มันไม่ได้เปลี่ยนแปลงอะไรเลย ทำไม?


หลังจากลองทำตามทั้งหมดข้างต้นฉันเริ่มดาวน์โหลด AVD ที่ต่ำกว่าเพื่อดูว่ามีคนอื่นใช้งานได้หรือไม่ API 28 และ 27 ยังคงค้างระหว่างการบู๊ต แต่ API 26 เริ่มทำงานทันที Android Studio 3.1.3 ฉันจะพยายามถอนการติดตั้งและติดตั้งใหม่ในภายหลัง แต่ในที่สุดก็ดีใจที่มันใช้งานได้อีกครั้ง การติดตั้ง Android Studio 3.1 ใหม่หลังจากติดตั้ง Windows 10 ใหม่หลังจากจัดการกับข้อผิดพลาดที่สำคัญของกระบวนการเป็นเวลาเกือบหนึ่งสัปดาห์โดยไม่ได้รับการแก้ไข
จอน

คำตอบ:


215
  1. ลองเพิกถอนการอนุญาตการแก้ปัญหา USB
  2. เปิดใช้งานการดีบัก USB อีกครั้ง

มันได้ผล


8
เมื่อคุณเปิดใช้งานการดีบัก USB อีกครั้งอาจเป็นเรื่องสำคัญที่จะต้องทำเครื่องหมายในช่องที่ระบุว่าอนุญาตการดีบัก USB จากอุปกรณ์นี้เสมอ ฉันเชื่อว่าตัวเลือกนี้จะปรากฏขึ้นก็ต่อเมื่อคุณเสียบอุปกรณ์ Android กับ USB เมื่อคุณเปิดใช้งานการดีบัก USB อีกครั้ง
joshgoldeneagle

ฉันต้องปิดใช้งานจากนั้นเปิดใช้งานการดีบัก USB บนอุปกรณ์ของฉันหลังจากย้ายไปยังคอมพิวเตอร์เครื่องใหม่ (Macbook)
Nancy

ถอดปลั๊กแล้วเสียบใหม่ควรเป็นขั้นตอนแรกของคุณอยู่ดี
TGrif

ขอบคุณสำหรับคำตอบ. คุณประหยัดเวลาของฉัน
Kelvin Low

ฉันไม่เคยคิดว่าตัวเองติดอยู่ใน "คุณพยายามปิดเครื่องอีกครั้งหรือไม่" :)
jediz

46

มีนักพัฒนา Thankgod xda อยู่: http://forum.xda-developers.com/verizon-lg-g3/help/unable-to-access-adb-t2830087

เพิ่งต้องลบไฟล์ adbkey ใน C: Users / $ Name / .android adbkey.pub หายไป

รีสตาร์ทหลังจากนี้และทั้งสองไฟล์จะอยู่ที่นั่น

หากไม่ได้ผล: - ลองเพิกถอนการอนุญาตการแก้ปัญหา USB - เปิดใช้งานการดีบัก USB อีกครั้ง


1
คีย์นี้อยู่ที่ไหนบน Mac
mosaad

1
> รีสตาร์ทหลังจากนี้และทั้งสองไฟล์จะอยู่ในการรีบูตหรือไม่ ฉันใช้ Windows และติดอยู่กับอุปกรณ์ที่ "ไม่ได้รับอนุญาต" ซึ่งจะไม่หายไปไหน! (แต่ฉันยังไม่ได้รีบูตเพราะเปิด 2 ล้านหน้าต่าง)
tbone

2
@tbone ฉันรู้ว่ามันเป็นคำตอบที่ล่าช้า แต่คุณต้องรีสตาร์ทเซิร์ฟเวอร์ adb เท่านั้น
Carlos EL Augusto

2
ลบทุกอย่างในไฟล์นั้นและไม่เพียง แต่แก้ไข ADB ผ่านเครือข่ายเท่านั้น แต่ยังรวมถึง USB ด้วย
Ben

2
เปลี่ยนชื่อ.android.oldเป็นอยู่ในด้านความปลอดภัย แต่ทันทีที่ฉันรีสตาร์ทเซิร์ฟเวอร์ adb และเพิกถอนการอนุญาตโทรศัพท์ของฉันก็แจ้งเตือนฉันทันที! @julestruong ขอบคุณ!
Richard.Davenport

29

ในลำดับ:

    adb kill-server
  • ในการตั้งค่าอุปกรณ์ของคุณไปที่ตัวเลือกสำหรับนักพัฒนาเพื่อปิดใช้งานการดีบัก usb

  • กด REVOKE การอนุญาตการดีบัก USB คลิกตกลง

  • เปิดใช้งานการดีบัก usb

    adb start-server
    

2
ฉันรันคำสั่งเป็นรูทใน Ubuntu และสิ่งนี้ช่วยแก้ปัญหาของฉันได้ ไม่สามารถทำให้มันทำงานได้หากไม่มี su (Ubuntu 18)
petobens

20

ฉันลบไฟล์ต่อไปนี้ออกจากโฟลเดอร์~ / .android :

  • adbkey
  • adbkey.pub

ฉันปิดใช้งานและเปิดใช้งาน ADB ภายในอุปกรณ์และตอนนี้ก็ใช้งานได้ ...


1
ฉันเห็นadbkeyไฟล์เท่านั้นดังนั้นฉันจึงลบมันและมันก็ใช้งานได้ดี ขอบคุณ!
Reeshabh Ranjan

18

ในตัวเลือกสำหรับนักพัฒนา

  1. เปิดใช้งานการดีบัก USB

ป้อนคำอธิบายภาพที่นี่

  1. ให้การอนุญาต

ป้อนคำอธิบายภาพที่นี่

(หากไม่มีเมนูตัวเลือกสำหรับนักพัฒนาคุณต้องคลิก 3 ครั้งจำนวนเมนูสถานะโทรศัพท์เพื่อเป็นนักพัฒนาคุณสามารถเลือกเมนูตัวเลือกสำหรับนักพัฒนาได้)

ป้อนคำอธิบายภาพที่นี่


8

ลบadbkeysที่มีอยู่

หรือ

เปลี่ยนชื่อadbkeys

แนวทางปฏิบัติที่ดีที่สุดคือการเปลี่ยนชื่อคีย์เนื่องจากมีการสำรองข้อมูล

cd ~/.Android

mv adbkey adbkey2

mv adbkey.pub adbkey.pub2

หยุดถัดไปและเริ่มเซิร์ฟเวอร์

cd ~/Android/Sdk/platform-tools

ค้นหาอุปกรณ์ /Android/Sdk/platform-tools$ ./adb devices

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

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

จากนั้นหยุดโปรแกรมจำลอง Open AVD manager คลิกที่ลูกศรลงจากนั้นคลิกที่ลบข้อมูล

รีสตาร์ทโปรแกรมจำลอง แล้วทุกอย่างก็ใช้ได้ดี :)


5

ลองยกเลิกการเลือก "ยืนยันแอปผ่าน USB" ในตัวเลือกสำหรับนักพัฒนาจากนั้นเปิดและปิด "การแก้ไขข้อบกพร่อง USB" มันใช้ได้กับฉัน


วิธีนี้ใช้ได้ผลสำหรับฉัน: "การแก้จุดบกพร่อง USB" ของฉันเปิดอยู่ในตอนแรกจากนั้นฉันจึงยกเลิกการเลือก "ตรวจสอบแอปผ่าน USB" แต่วิธีนี้ไม่ได้ผล หลังจากเปิด "USB Debugging" แล้วก็ใช้งานได้!
Jackie Yeh

4

ตรวจสอบให้แน่ใจว่าคุณได้ยอมรับการกดปุ่ม "ตกลง" เมื่อมีการขอให้แสดงลายนิ้วมือของอุปกรณ์หลังจากเชื่อมต่อผ่าน usb กับพีซีของคุณ


2
ฉันสงสัยว่าคนที่โหวตคำตอบอื่น ๆ ตรวจสอบหน้าจออุปกรณ์จริงหรือไม่ ...
Skippy le Grand Gourou

ฮ่า ๆ ฉันรู้สึกโง่มากเมื่อมองลงไปที่โทรศัพท์ของฉัน
แจ็คเซนต์แคลร์

4

ใน Android Studio Run menu > RunจะแสดงOFFLINE ...สำหรับอุปกรณ์ที่เชื่อมต่อ

ด้านล่างนี้เป็นขั้นตอนตามเพื่อแก้ไข:

  1. (อ่านหมายเหตุด้านล่างก่อน) ลบ~/.android/adbkey(หรือเปลี่ยนชื่อ~/.android/adbkey2เป็นยิ่งดีในกรณีที่คุณต้องการคืนด้วยเหตุผลบางประการ)
    หมายเหตุ : ฉันเคยทำขั้นตอนนี้ แต่ไม่สามารถแก้ปัญหาได้หลังจากทำทั้งหมด ขั้นตอนด้านล่างได้ผลจึงไม่แน่ใจว่าจำเป็นต้องใช้ขั้นตอนนี้หรือไม่

  2. เรียกใช้locate platform-tools/adb
    หมายเหตุ : ใช้เส้นทางที่มาจากที่นี่ในคำสั่งด้านล่าง

  3. ฆ่าเซิร์ฟเวอร์ adb:
    sudo ~/Android/Sdk/platform-tools/adb kill-server

  4. คุณจะได้รับAllow accept..ป๊อปอัปข้อความบนอุปกรณ์ของคุณ ยอมรับมัน. นี่เป็นสิ่งสำคัญซึ่งช่วยแก้ปัญหาได้

  5. เริ่มเซิร์ฟเวอร์ adb:
    sudo ~/Android/Sdk/platform-tools/adb start-server

  6. ใน Android studio ให้ทำRun menu > Runอีกครั้ง
    มันจะแสดงบางอย่างเช่นSamsung ...(ชื่อผู้ผลิตโทรศัพท์ของคุณ)
    ติดตั้ง apk บนอุปกรณ์อย่างถูกต้องในครั้งนี้โดยไม่มีข้อผิดพลาด

หวังว่าจะช่วยได้


2
  1. ขั้นแรกลบadbkeyและadbkey.pubออกจาก.androidไดเร็กทอรีในโฮมไดเร็กทอรีของคุณ
  2. ทำให้.androidไดเรกทอรีในบ้านของคุณมีสิทธิ์ 710: และเป็นเจ้าของ:$ chmod 710 .android/ chown -R <user>:<user> .android/เช่น:

    $ chmod 710 .android/
    $ chown -R ashan:ashan .android/
    
  3. ไปที่ตัวเลือกสำหรับนักพัฒนาในมือถือของคุณแล้วแตะตัวเลือก Revoke USB debugging authorizations

  4. ปิดทั้งหมดUSB DebuggingและDeveloper Optionsในอุปกรณ์และถอดอุปกรณ์ออกจากเครื่องของคุณ

  5. เชื่อมต่ออุปกรณ์อีกครั้งและเปิดไฟล์Developer Options. จากนั้นเปิดไฟล์USB debugging.

  6. ณ จุดนี้ในมือถือของคุณคุณจะได้รับแจ้งให้ขออนุญาตจากคุณ หมายเหตุ: คุณต้องalways accept from this ….เลือกตัวเลือกช่องทำเครื่องหมายแล้วคลิกตกลง

  7. ตอนนี้ในเครื่องคุณเริ่มต้นเซิร์ฟเวอร์ adb adb start-serverนี้:

  8. หวังว่าเมื่อคุณออกคำสั่ง: adb devicesตอนนี้คุณจะเห็นอุปกรณ์ของคุณพร้อมที่ได้รับอนุญาต


1

ฉันก็โดนปัญหานี้เหมือนกัน ฉันใช้ AOSP รุ่นที่กำหนดเองบน Nexus 5X ฉันได้เพิ่มบรรทัดเดียวใน 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)

ตอนนี้ใช้adb shellงานได้ดี

วัสดุเหล่านั้นมีประโยชน์ (บทความภาษาจีน): http://www.voidcn.com/blog/kc58236582/article/p-6335996.html , http://blog.csdn.net/fanmengke_im/article/details/28389439


1

ลองลบไฟล์adbkeyออกจากโฟลเดอร์C / .android

จากนั้นเรียกใช้คำสั่งตามที่กล่าวไว้ข้างต้นเช่น

adb kill-server, adb start-server และ adb devices

.


ดูเหมือนว่านี่คือรายละเอียดที่อธิบายไว้ด้านล่างในโพสต์stackoverflow.com/a/55470951/984471
Manohar Reddy Poreddy

1

ไม่มีวิธีใดที่แสดงในหน้านี้ได้ผลสำหรับฉัน โดยเฉพาะ:

  • ฉันมีปัญหาที่แอปการตั้งค่าขัดข้องเมื่อเลือกเพิกถอนการอนุญาตการดีบัก USB
  • ฉันใช้ LineageOS 14 x86_64
  • ฉันใช้ ADB ผ่านเครือข่าย
  • /data/misc/adbมีไม่มีadb_keysไฟล์
  • การลบท้องถิ่นของฉัน~/.android/adbkeyไม่ได้ช่วยอะไรเช่นกัน
  • ฉันมีสิทธิ์เข้าถึงรูทจากเทอร์มินัลภายในเครื่อง
  • ฉันไม่ได้รับข้อความยืนยันใด ๆ
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 -

ในท้ายที่สุดฉันพบโพสต์ที่มีประโยชน์มากที่นี่ซึ่งแนะนำให้ใส่เนื้อหา~/.android/adbkey.pubภายใน/data/misc/adb/adb_keysไฟล์ด้วยตนเอง

พวกเขาแนะนำหนึ่งในสองวิธีนี้:

  1. จากอุปกรณ์ที่ใช้งานได้อื่นให้คัดลอกadb_keysไฟล์ลงในคอมพิวเตอร์ของคุณ:

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

    จากนั้นใส่adb_keysไฟล์ที่ใช้งานได้ลงใน sdcard ของอุปกรณ์ Android ที่มีปัญหา (โดยใช้ Web หรือ MTP) ที่ตั้งชื่อเป็นadb_keysจากนั้นคัดลอกไฟล์ไปยังเส้นทางที่ถูกต้อง:

    # On the problematic device
    cp /sdcard/adb_keys /data/misc/adb/adb_keys
    
  2. วิธีอื่นคือเพียงแค่คัดลอกเครื่องของคุณadbkey.pubจาก~/.android/ไดเรกทอรีและใส่ลงใน sdcard ของอุปกรณ์ Android ที่มีปัญหา (โดยใช้เว็บหรือ MTP) ที่ตั้งชื่อเป็นadb_keysจากนั้นคัดลอกไฟล์ไปยังเส้นทางที่ถูกต้อง:

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

    (หมายเหตุ: มีคำตอบที่คล้ายกันสำหรับ SO ซึ่งจะกล่าวถึงรายละเอียดเพิ่มเติมสำหรับวิธีนี้)

เนื่องจากฉันใช้งานเว็บเซิร์ฟเวอร์บนคอมพิวเตอร์ของฉันและฉันได้curlติดตั้งบน Android ฉันจึงดำเนินการsuจากเทอร์มินัลและเรียกใช้สิ่งต่อไปนี้บนอุปกรณ์ Android ของฉัน:

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

ฆ่าadbภูต (โดยใช้adb kill-server) และBAM ! adbเปลือกทำงานดีเหมือนมันควรจะได้รับจากจุดเริ่มต้น

หวังว่าวิธีการที่อธิบายไว้ที่นี่จะใช้ได้ผลกับคุณเหมือนอย่างที่ฉันเคยทำ


1

แอปของคุณถูกตรวจพบว่าเป็นโปรแกรมที่เป็นอันตราย ปิดตัวเลือก "ยืนยันแอปผ่าน USB" ในมุมมองเดียวกับ "USB debugging"



0

สิ่งที่คุณต้องมีคืออนุญาตโหมดดีบัก
1. ตรวจสอบให้แน่ใจว่าอุปกรณ์ของคุณเชื่อมต่อกับพีซีของคุณ
2. อนุญาตให้ได้รับอนุญาตสำหรับโหมดดีบักผ่าน Android-Studio โดยไปที่
Run -> แนบดีบักเกอร์กับกระบวนการ Android
กว่าที่คุณจะเห็นหน้าต่างป๊อปอัปสำหรับอนุญาตโหมดดีบักในอุปกรณ์ของคุณให้
กดตกลง เสร็จแล้ว
ฉันหวังว่ามันจะช่วยใครสักคน


0

ฉันมีปัญหาเดียวกันหลังจากติดตั้ง Android Studio ของฉันใหม่ นี่คือสิ่งที่ฉันทำเพื่อให้ adb ของฉันทำงานได้อีกครั้ง:

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

0

สำหรับใครก็ตามที่พบสิ่งนี้ในภายหลังสิ่งนี้อาจช่วยได้เช่นกัน ฉันพบปัญหาที่แน่นอนนี้โดยพยายามใช้ adb จากพรอมต์คำสั่งของผู้ใช้และคำตอบข้างต้นไม่ได้ช่วย แต่ปัญหานี้หายไปด้วย "adb kill-server" เมื่อทำงานในพรอมต์คำสั่งของผู้ดูแลระบบ


0

สิ่งนี้ใช้ได้ผลสำหรับฉัน:

rm ~ / .android / adbkey.pub

sudo ./adb kill-server

sudo ./adb start-server

sudo ./adb -s emulator-5554 ติดตั้ง ~ / apk_to_install.apk

ฉันไม่แน่ใจว่าเป็นความคิดที่ดีหรือไม่ที่จะเรียกใช้ adb ด้วยสิทธิ์ sudo แต่มันเป็นวิธีเดียวที่ฉันทำให้มันใช้งานได้ ความนับถือ.


0

ฉันได้รับสิ่งนี้เป็นรูทเมื่อในฐานะผู้ใช้ที่ไม่ใช่รูทฉันได้รับข้อผิดพลาดเกี่ยวกับสิทธิ์พยายามเชื่อมต่อกับการกู้คืนที่กำหนดเอง (Philz) ดังนั้นฉันจึงฆ่าเซิร์ฟเวอร์ adb คัดลอกไดเร็กทอรีย่อย. android ของบัญชีผู้ใช้ของฉันไปยัง / root, chowned -R ไปยัง root.root และรีสตาร์ทเซิร์ฟเวอร์ adb ฉันเข้าแล้ว!


-1

ฉันคิดว่าคุณได้เปิดใช้งาน On-device Developer Options ในสมาร์ทโฟนของคุณ? หากไม่เป็นเช่นนั้นคุณสามารถดูขั้นตอนที่ให้ไว้โดย Android http://developer.android.com/tools/device.html#developer-device-options


ใช่ฉันทำและฉันก็ปิดและเปิดด้วย
julestruong

ตามลิงค์นี้ ( code.google.com/p/android/issues/detail?id=175077 ) ดูเหมือนว่า "platform tools 23 rc1" จะมีปัญหานี้ คุณสามารถค้นหาเวอร์ชันเครื่องมือแพลตฟอร์มที่มี "$ adb version" cmd ลิงก์ระบุว่าการเปลี่ยนกลับไปใช้ build-tools เวอร์ชัน 22 จะช่วยแก้ปัญหาได้
Dhunju_likes_to_Learn

ฉันดาวน์โหลดเครื่องมือ plateform 22 และแทนที่ในไดเร็กทอรี sdk ไม่ได้ผล (เวอร์ชัน adb ดูเหมือนจะเหมือนกัน)
julestruong

-1

สำหรับ FIRE STICK 4K จริง ๆ แล้วในกล่องโต้ตอบ:

หรือตรวจสอบกล่องโต้ตอบการยืนยันบนอุปกรณ์ของคุณ

แท้จริงแล้วในทีวีในอีกห้องหนึ่งมีกล่องโต้ตอบยืนยัน ด่ '!


1
บางทีนี่อาจเป็นความคิดเห็นด้านข้างของคำถาม แต่ไม่ใช่คำตอบเนื่องจากคำถามเกี่ยวข้องกับอุปกรณ์ประเภทอื่น
Jairo

-2

ฉันมีปัญหานี้และไม่สามารถแก้ไขได้โดยการลบคีย์ใด ๆ (อย่างน้อยการลบก็ไม่ได้แก้ไขมันอาจมีผลหลังจากที่ฉันแก้ไขแล้ว)

จริงๆแล้วฉันมีความแตกต่างระหว่างเวอร์ชัน sdk-tools กับเวอร์ชัน Android Studio หลังจากอัปเดตเครื่องมือของฉันมันยังใช้งานไม่ได้ แต่หลังจากอัปเดต AS (เป็น 1.4) ทุกอย่างก็ทำงานได้ดีอีกครั้ง

อัปเดตทั้ง sdk-tools และ AS พร้อมกันเสมอ;)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.