ไม่มีสิทธิ์ fastboot - fastboot และ adb ไม่ทำงาน


31

ฉันพยายามปลดล็อคโทรศัพท์ Moto ของฉันโดยใช้ ADB แต่เมื่อฉันทำfastboot devicesฉันจะได้รับ

no permissions   fastboot

แม้กระทั่งsudo fastbootอุปกรณ์ก็ไม่ได้ช่วยอะไร

ด้วย sudo ฉันได้รับสิ่งนี้ sudo: fastboot: command not found

ช่วยด้วย!!

คำตอบ:


57

ลองใช้ดู sudo $(which fastboot)

เช่น sudo $(which fastboot) devices

ด้วย sudo $(which fastboot) oem unlock


นั่นได้ผล !! Thankyou Srinivas ..
Rupali

ดีใจที่ฉันช่วยได้ :)
Srinivas Gowda

6
จะต้องมีวิธีแก้ปัญหาที่ดีกว่านี้มันไม่ปลอดภัยและไม่ใช่วิธีปฏิบัติที่ดีที่จะเรียกใช้ทุกอย่างด้วยสิทธิ์ของรูท
elichai2

ไม่fastbootต้อง sudo?
IgorGanapolsky

25

พบโซลูชันที่ดีกว่าที่นี่:
https://stackoverflow.com/a/28127944/1621927

นี่คือความคิดเห็น:

แทนที่จะบังคับใช้สิทธิ์ผ่านsudoทุกครั้งที่คุณต้องการเรียกใช้fastbootคุณสามารถแก้ไขปัญหาได้อย่างถาวร:

  1. ใช้lsusbเพื่อระบุอุปกรณ์ USB VendorID ของคุณ
  2. กำหนดค่าudevเพื่อตั้งค่าการอนุญาตที่เหมาะสมเมื่อเสียบอุปกรณ์ของคุณ
  3. กำไร!

ในฐานะโบนัส - มันจะได้รับการแก้ไขadbด้วยเช่นกัน

ตัวอย่างเช่นในกรณีของฉัน (สำหรับ 'Megafon SP-A20i'):

$ fastboot devices
no permissions  fastboot
$ sudo fastboot devices
[sudo] password for kaa: 
MedfieldA9055F28    fastboot
$ 

มาแก้ไขกันเถอะ:

ก่อนอื่นเราต้องระบุอุปกรณ์:

a) มองหาหมายเลขบัส usb (แฮ็ค: ฉันรู้ว่าอุปกรณ์นั้นใช้ Intel)

$ fastboot -l devices
no permissions         fastboot usb:1-1.2
$ lsusb |grep 001 |grep -i intel
Bus 001 Device 044: ID 8087:09ef Intel Corp. 
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
$ 

b) ค้นหาอุปกรณ์ Intel อื่น ๆ :

$ lsusb |grep 8087
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 044: ID 8087:09ef Intel Corp. 
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
$ 

ฮับไม่ใช่สมาร์ทโฟนแน่นอนดังนั้น - ผู้ขาย USB เราต้องการคือ "8087"

ประการที่สองกำหนดค่าudev(คุณต้องแทนที่ค่า "idVendor" ด้วยของคุณ):

$ sudo sh -c "echo '# Megafon SP-A20i' >> /etc/udev/rules.d/51-android.rules"
$ sudo sh -c "echo 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"8087\", MODE=\"0666\", GROUP=\"plugdev\"' >> /etc/udev/rules.d/51-android.rules"
$ sudo service udev restart
udev stop/waiting
udev  start/running, process 1821
$ 

ประการที่สามเสียบอุปกรณ์ของคุณอีกครั้งเพื่อให้udevสามารถใช้งานได้อย่างวิเศษ

ตรวจสอบขั้นสุดท้าย:

$ fastboot -l devices
MedfieldA9055F28       fastboot usb:1-1.2
$ adb devices
List of devices attached 

$ fastboot reboot
rebooting...

finished. total time: 0.253s
$ sleep 90
$ adb devices
List of devices attached 
MedfieldA9055F28    device

$ 

Voila!


2
มีรายชื่อผู้จำหน่าย android ที่ดีที่wiki.cyanogenmod.org/w/UDEV
Ehtesh Choudhury

3
มีรายการอย่างเป็นทางการที่นี่: developer.android.com/studio/run/device.html
elichai2

2
คุณจะต้องsudo udevadm triggerเช่นกัน
Jonas G. Drange

พิจารณาโหมด "0664"
naXa

1
นี่คือคำตอบที่ถูกต้อง จริงๆแล้วนี่เป็นคำตอบเดียว การใช้sudoไม่ใช่วิธีแก้ปัญหา
Gaurav Gandhi

5

โซลูชันของฉัน

ขอบคุณ elichai2 และลิงก์และรายการนี้ฉันสามารถแก้ไขปัญหาการขออนุญาต fastboot ของฉันได้

ฉันมี Google Nexus 6P ดังนั้นฉันจึงใช้สิ่งต่อไปนี้สำหรับรหัสผู้ขายของฉัน:

Google - 18d1


51 android.rules

หากคุณใช้คำสั่งต่อไปนี้:

sudo sh -c "echo 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"8087\" ..."

คัดลอกอย่างแน่นอน ฉันรูทแล้วและพยายามที่จะคัดลอกส่วน echo ที่ให้ผลลัพธ์ที่ไม่พึงประสงค์แก่ฉัน โดยทั่วไปจะใส่ \ "ในไฟล์. rules แทนที่จะตีความเครื่องหมายทับเป็นอักขระยกเว้น

ฉันขอแนะนำให้ใช้สิ่งต่อไปนี้หากคุณรูทการสร้างไฟล์. rules แล้ว (ใช้รหัสผู้จำหน่ายของคุณ)

echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"' >> /etc/udev/rules.d/51-android.rules


Udev โหลดและทริกเกอร์

ฉันรีโหลดกฎ udev แล้วออกคำสั่งทริกเกอร์ ฉันยังถอดปลั๊กและเสียบยูเอสบีเพื่อวัดที่ดี

udevadm control --reload
udevadm trigger


Fastboot

ในฐานะผู้ใช้ที่ไม่มีสิทธิ์ฉันจึงวิ่ง:

fastboot devices

และมันทำงานได้ตามที่ต้องการ ฉันหวังว่านี่จะสามารถใช้งานได้หรือช่วยให้ทุกคนที่ประสบปัญหาเกี่ยวกับปัญหาการอนุญาต


ดีฉันให้ลิงค์ไปยังรายการเพื่อตอบความคิดเห็นของฉัน
elichai2

udevadmin: ไม่พบคำสั่ง
IgorGanapolsky

1
@IgorG ฉันขอโทษที่ตอบช้า ฉันแก้ไขข้อผิดพลาดด้านบน มันควรจะเป็น "udevadm"
Brandon Authier

1

เมื่อฉันต้องการส่งคำสั่งโดยใช้ fastboot (กระพริบเฟิร์มแวร์บนอุปกรณ์ htc) ฉันจะติดตั้ง fastboot โดยใช้ apt

sudo apt install android-tools-fastboot

แล้วเมื่อฉันเริ่มใช้มันคำสั่งแรกคือ

sudo -s

จากนั้นคำสั่งทั้งหมดในเทอร์มินัลนี้จะทำงานเหมือนการส่งคำสั่งรูทเช่น

fastboot devices
fastboot reboot-bootloader 
fastboot oem rebootRUU 
fastboot flash zip xxxx.zip

ไม่จำเป็นต้องแก้ไขหรือบางสิ่งที่เป็นคำสั่งพิเศษอย่างง่าย ๆ ก่อนที่จะเริ่ม




-1

ติดตั้ง fastboot ครั้งแรกจาก apt:

sudo apt install android-tools-fastboot

ถัดไปดำเนินการ fastboot ด้วย sudo:

sudo fastboot

มันใช้งานได้สำหรับฉัน


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