Android adb ไม่ได้รับอนุญาต


33

ฉันกำลังพยายามใช้ adb จากเครื่อง Ubuntu (+ Cinnamon) ปัญหาคือฉันได้รับข้อความต่อไปนี้จากอุปกรณ์ adb :

List of devices attached
TA8830OIVO  no permissions

ที่ TA8830OIVO คืออุปกรณ์ Motorola G ของฉัน

ฉันเปลี่ยนกฎ Android ใน/etc/udev/rules.d/51-android.rules

SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="2e76",
MODE="0666", GROUP="plugdev", SYMLINK+="android_adb", OWNER="axel"

ฉันเริ่มบริการ evev อีกครั้งและติดตั้ง adb บนแล็ปท็อปส่วนตัวฉันเป็นผู้ใช้เพียงคนเดียวที่จำเป็นต้องใช้ทั้งหมด (กลุ่ม plugdev และอื่น ๆ )

มีวิธีเรียกใช้ adb โดยไม่ต้องเรียกsudoหรือไม่


1
รีสตาร์ท udev และsudo udevadm triggerไม่ได้ผลสำหรับฉัน ฉันต้องรีสตาร์ทคอมพิวเตอร์แล้วก็ใช้งานได้ดี
Rafael Xavier

คำตอบ:


65

เปลี่ยนโหมด USB ในโทรศัพท์ของคุณเป็น File Transfer นั่นคือสิ่งที่ได้ผลสำหรับฉัน


สิ่งที่ตรงกันข้ามสำหรับฉัน: การดีบัก USB ไม่ทำงานระหว่างโหมดถ่ายโอนไฟล์ในอุปกรณ์เก่าบางรุ่น
Miha_x64

1
อัปเดต: เพิ่งสังเกตเห็นว่าในโทรศัพท์ของฉัน (android หนึ่ง), การดีบัก usb สามารถเปิดใช้งานได้ในขณะที่อยู่ในโหมดชาร์จในการตั้งค่านักพัฒนาซอฟต์แวร์
NuttLoose

2
การเปลี่ยนเป็นโหมดถ่ายโอนไฟล์ใช้งานได้สำหรับฉัน สำหรับ android 7
Abrar

Kindle Fire 8 2019 - "โหมด MTP" ซึ่งอยู่ในการกำหนดค่า USB ในตัวเลือกนักพัฒนา
Bill McGonigle

ฉันเปลี่ยนแล้วฉันได้รับแจ้งบนอุปกรณ์เพื่อให้แก้จุดบกพร่อง usb: D
Maxwell sc

27
  1. อย่าลืมเรียกใช้sudo udevadm triggerเพื่อรับการเปลี่ยนแปลงที่นำไปใช้ (หรือรีบูต แต่ความสนุกอยู่ตรงไหน)
  2. แทนที่จะเขียนกฎของคุณเองให้ใช้https://github.com/M0Rf30/android-udev-rules
  3. ตรวจสอบให้แน่ใจว่าคุณมีเวอร์ชันล่าสุดของ ADB (1.0.35 102d0d1e73de-android) ก่อนหน้านี้ไม่ได้ทำงานกับ USB-C สำหรับฉัน

ขอบคุณ แต่มันเป็นคำถามเก่า ฉันเปลี่ยนมาใช้ Mac เมื่อ 2 ปีก่อน ฉันคิดว่ามันโง่ที่จะทำสิ่งต่าง ๆ เช่นlsusbแล้วปรับเปลี่ยนกฎเมื่อมันควรจะทำโดยอัตโนมัติ ... ฉันยอมแพ้หลังจากใช้อูบุนตูมาหลายปี ไม่พบระบบ Linux Desktop ที่เหมาะสม
shadox

1
คำถามคืออายุ 6 เดือนและยังคงใช้ได้สำหรับลูกหลาน 1y ที่ผ่านมาฉันทิ้ง OS X หลังจากเรื่อง 3y และกลับไปที่ Linux ด้วยเหตุผลที่คล้ายกัน;) ลีนุกซ์มีบางส่วนที่ทำให้หงุดหงิด แต่มีจำนวนของการซ่อมแซมที่คล้ายกันใน OS X หากคุณใช้ homebrew + zsh + iTerm2 ความแตกต่างคือสิ่งต่าง ๆ ถ้าส่วนใหญ่เป็น FOSS ที่เป็นแบบโอเพ่นซอร์สหรือล้าสมัย แต่ส่วนใหญ่เป็น GUI และ UX ที่ดี (ส่วนใหญ่) การใช้กฎจาก repo ทำให้ส่วนใหญ่เป็นขั้นตอนการตั้งค่าแบบครั้งเดียว พิจารณาอาร์คานาที่จะให้ Android SDK ทำงานได้อย่างมีสติ
zamber

1
ทำงานนี้และservice udev restartไม่ได้ผลสำหรับฉัน ฉันต้องรีสตาร์ทคอมพิวเตอร์แล้วก็ใช้งานได้ดี
Rafael Xavier

ในอูบุนตู 16.04 การตั้งค่ากฎ udev การเปลี่ยนโหมด usb บนโทรศัพท์เป็นการถ่ายโอนไฟล์ทำงานเหมือนมีเสน่ห์ ไม่จำเป็นต้องรีสตาร์ท
Gautam

บน Ubuntu 16.04 ที่มี Pixel 2 เพิ่มกฎจาก gitbub ของจุดที่ 2 ทำงานโดยไม่ต้องไปที่โหมดการถ่ายโอนไฟล์
Mike Hanafey

3

หากคุณรีสตาร์ทเซิร์ฟเวอร์ ADB ด้วย sudo เซิร์ฟเวอร์จะทำงาน

sudo adb kill-server
sudo adb start-server

0

กำหนดฟังก์ชั่นการไล่ระดับสีที่กำหนดเอง:

task _adb_restart {
def adb = android.getAdbExe().toString()
group '__custom'
  doLast {
    exec {
      commandLine 'bash', '-c', '/bin/echo **root_password** | sudo -S ' + adb + ' kill-server'
    }
    exec {
      commandLine 'bash', '-c', '/bin/echo **root_password** | sudo -S ' + adb + ' devices'
    }
  }
}

0

ทางออกที่ดีที่สุดและสิ่งที่ดีกว่าสำหรับฉันคือการติดตั้งadbจากแพ็คเกจ Ubuntu สิ่งนี้จะให้ชุดudevกฎเริ่มต้นที่ชุมชนดูแลไว้สำหรับอุปกรณ์ Android ทั้งหมด

ตัวอย่าง:

$ sudo apt-get install adb

0

สำหรับ Amazon Fire OS 8 ซึ่งเป็นระบบปฏิบัติการที่ใช้ Android คุณสามารถไปที่ "การตั้งค่า> ตัวเลือกอุปกรณ์> ตัวเลือกผู้พัฒนา" คุณอาจจำเป็นต้องเปิดใช้งานได้

ตรวจสอบว่า "USB Debugging" เปิดอยู่ (ในกรณีของคุณคือ)

จากนั้นไปที่ "เครือข่าย> เลือกการกำหนดค่า USB" เลือก "MTP (Media Transfer Protocol)" สิ่งนี้ทำให้คอมพิวเตอร์สามารถส่งไฟล์ไปมาได้


0

ลบ adb package ที่ติดตั้งผ่าน apt

$sudo apt remove adb

ดาวน์โหลด adb ล่าสุดจาก
https://developer.android.com/studio/releases/platform-tools

ตั้งค่าพา ธ ไปที่เครื่องมือแพลตฟอร์ม (ควรใส่สองบรรทัดนี้ในไฟล์ ~ / .bashrc)

export PATH= /<path-to-android-sdk-folder>/android-sdk/tools/bin<br>
export PATH= /<path-to-android-sdk-folder>/android-sdk/platform-tools

วิ่ง

$source ~/.bashrc

ตรวจสอบเส้นทาง adb

$which adb

เริ่ม adb ใน sudo (ฉันต้องการให้เส้นทางที่แน่นอนเพื่อ adb เมื่อทำงานใน sudo)

$sudo /<path-to-android-sdk-folder>/android-sdk/platform-tools/adb kill-server
$sudo /<path-to-android-sdk-folder>/android-sdk/platform-tools/adb start-server
$adb shell

DONE
มันทำงานโดยไม่คำนึงถึงสิ่งที่โหมด USB (MIDI, การถ่ายโอนไฟล์, การชาร์จ) ของโทรศัพท์ Android มันทำงานได้ในทุก

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