Konfigūruoti įrenginį kūrimui (be leidimo)

Aš naudoju „Samsung Nexus Galaxy“ telefoną ( „Android 4.0“ platforma).

„Linux Ubuntu“ sukuriu „Android“ programą. Norėčiau pradėti programą tiesiogiai „Samsung“ įrenginyje, todėl atlikiau šiuos konfigūravimo veiksmus:

  • Mano projekto „AndroidManifest.xml“ faile į elementą <application> pridėkite „ android:debuggable="true"

  • Įrenginio nustatymai> Saugumas įgalina nežinomus šaltinius

  • Įrenginyje Nustatymai> Kūrėjo parinktys įgalina USB derinimą

  • Mano kompiuteryje sukurkite failą /etc/udev/rules.d/51-android.rules , failo turinį:

    SUBSYSTEM == "usb", ATTR {idVendor} == "04E8", MODE = "0666", GROUP = "plugdev"

  • Mano kompiuteryje paleiskite komandą chmod a+r /etc/udev/rules.d/51-android.rules

Tada atidariu terminalą ir paleiskiu adb devices komandą kompiuteryje, turiu:

 List of devices attached ???????????? no permissions 

Kadangi nematau savo prietaiso, bet tik „be prieigos teisių“, paleidžiu šias komandas:

  adb kill-server adb start-server adb devices 

Bet vis tiek gaunu:

 List of devices attached ???????????? no permissions 

Kodėl Kas man trūksta?

227
09 февр. nustatė Leem.fin 09 vasaris 2012-02-09 14:35 '12 at 14:35 2012-02-09 14:35
@ 22 atsakymai

Kas man veikia, paleisti „ADB“ serverį vėl ir vėl. Linux: sudo adb kill-server , o tada sudo adb start-server . Tada jis ras beveik visus prietaisus iš dėžutės.

359
09 февр. Atsakymą pateikė WarrenFaith 09 vasaris. 2012-02-09 14:55 '12 at 2:55 pm 2012-02-09 14:55

Niekas man nepadarė, kol galiausiai neradau atsakymo čia: http://ptspts.blogspot.co.il/2011/10/how-to-fix-adb-no-permissions-error-on.html

Čia kopijuoju tekstą, jei jis išnyksta ateityje.

Sukurkite failą, vadinamą /tmp/android.rules su tokiu turiniu (šešioliktainiai tiekėjų numeriai paimti iš tiekėjų sąrašo puslapio):

 SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="1bbb", MODE="0666" 

Paleiskite šias komandas:

 sudo cp /tmp/android.rules /etc/udev/rules.d/51-android.rules sudo chmod 644 /etc/udev/rules.d/51-android.rules sudo chown root. /etc/udev/rules.d/51-android.rules sudo service udev restart sudo killall adb 
border=0

Atjunkite USB kabelį tarp telefono ir kompiuterio.

Prijunkite telefoną.

Paleiskite adb devices kad patvirtintumėte, jog jis dabar turi leidimą pasiekti telefoną.

Atkreipkite dėmesį, kad vietoj , MODE="0666" galite naudoti , USER="$LOGINNAME" .rules faile, vietoj $LOGINNAME pakeisdami savo prisijungimo vardą, ty su tuo, ką id -nu spausdina.

Kai kuriais atvejais gali tekti suteikti udev taisyklėms failą, kuris yra surūšiuotas arti pabaigos, pavyzdžiui, z51-android.rules .

316
30 сент. atsakymas pateikiamas grebulon 30 rugsėjis 2012-09-30 21:55 '12, 9:55 val. 2012-09-30 21:55

Įveskite šias komandas:

adb kill-server sudo ./adb start-server adb devices

Problema ta, kad nenaudojate adb serverio kaip root.

62
13 авг. Iancrowther atsakymas rugpjūčio 13 d 2012-08-13 18:08 '12, 18:08 2012-08-13 18:08

Aš išbandžiau viską aukštesnį, niekas nedirbo. Galiausiai, jis dirbo, kai perjungiau iš MTP į kamerą (PTP).

33
01 апр. atsakymą pateikė Sabeer Mohammed balandžio 01 d 2015-04-01 08:32 '15 ne 8:32 2015-04-01 08:32

Archlinux sistemoje tai gali atsitikti retkarčiais. Pataisa:

 $ sudo -s # adb kill-server # adb start-server 
13
24 сент. Atsakymas, kurį pateikė Keenan Verbrugge 24 Sep. 2014-09-24 06:23 '14, 6:23, 2014-09-24 06:23

Į šį klausimą buvo išsiųsti daug blogų atsakymų, pradedant nuo realių, kai veikia „ adb root (kurios neturėtų būti reklamuojamos kaip vienintelis ar netgi rekomenduojamas sprendimas), siekiant išspręsti visiškai nesusijusias problemas.

Čia yra vienas iš trumpiausių ir universaliausių leidimų visiems adb ir fastboot įrenginiams:

 echo 'ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:ff420?:*", MODE="0666"' | sudo tee /etc/udev/rules.d/99-android.rules sudo udevadm control --reload-rules sudo udevadm trigger --verbose --action=add --subsystem-match=usb 

Kalbant apie tai, ką OP padarė neteisingai, jis neperrašė udev taisyklių po to, kai redagavo .rules failą.

Be to, OP nepranešė, kurioje „Android“ versijoje (dar žinoma kaip „ROM“) savo telefone. idVendor vertė nustatoma programinėje įrangoje, todėl ji priklauso nuo ROM. Taigi 04E8 vertė, kurią jis naudojo savo pradinėje taisyklėje, galėjo veikti tik „Samsung“ įrenginiams su atsarginiais ROM. Tačiau tai nėra problema šiai udev taisyklei - ji atitinka visus įrenginius, turinčius adb arba fastboot sąsajas, nepriklausomai nuo jų „VendorID“.

11
10 июля '17 в 10:36 2017-07-10 10:36 Atsakymą pateikė Alex P. liepos 10, 17 d. 10:36 2017-07-10 10:36

Tiems, kurie naudoja „debian“, „Ubuntu“ įrenginio konfigūravimo vadovas, skirtas failui „/etc/udev/rules.d/51-android.rules“ sukurti, neveikia. Aš sekiau instrukcijas. Čia čia pateikiame nuorodą.

Redaguokite šį failą kaip „superuser“.

 sudo nano /lib/udev/rules.d/91-permissions.rules 

Raskite panašų tekstą.

 # usbfs-like devices SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \ MODE="0664″ 

Tada pakeiskite režimą į 0666, kaip parodyta žemiau.

 # usbfs-like devices SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \ MODE="0666″ 

Tai leidžia adb dirbti, tačiau vis tiek reikia konfigūruoti įrenginį taip, kad jis būtų atpažintas. Turime sukurti šį failą kaip super naudotoją,

 sudo nano /lib/udev/rules.d/99-android.rules 

ir įveskite

 SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0bb4″, MODE="0666″ 

Pirmiau pateikta eilutė skirta HTC, jei norite gauti išsamų sąrašą, vadovaukitės @grebulon pranešimu.

Išsaugokite failą ir iš naujo paleiskite „udev“ kaip „superuser“.

 sudo /etc/init.d/udev restart 

Prijunkite telefoną per USB, ir jį reikia aptikti rengiant ir vykdant projektą.

6
19 авг. atsakymas duotas jaga 19 rug. 2013-08-19 09:40 '13, 9:40, 2013-08-19 09:40

Turėjau tą pačią problemą, sprendimas yra tas pats: (beje, jums nereikia root įrenginio.)

  • Įveskite „su“, kad perjungtumėte į „superuser“.
  • jūsų kelias / adb kill-server.
  • jūsų kelio / adb pradžios serveris.
  • Jei klaida nepavyksta, galite matyti įrenginių sąrašą, kuriame yra „jūsų kelio / adb įrenginiai“ šakninėje paskyroje.
  • Išeiti iš „superuser“.
  • Dabar savo paskyroje galite paleisti „adb-devices“.

Mėgaukitės

5
12 февр. atsakymą pateikė Jeffrey Yang vasario 12 d. 2013-02-12 08:04 '13, 08:04 2013-02-12 08:04

Tą pačią problemą turėjo ir mano „Galaxy S3“. Mano problema buvo ta, kad idVendor vertė (04E8) nebuvo teisinga. Norėdami rasti tinkamą, prijunkite išmanųjį telefoną prie kompiuterio ir parašykite komandą į terminalą.

  lsusb 

Todėl suradau visus prijungtus USB įrenginius su teisingu ID. Turėtų būti eilutė, kurioje rodomas jūsų išmanusis telefonas, pavyzdžiui:

  Bus 002 Device 010: ID 18d1:d002 Google Inc. 

mano atveju. Taigi teisinga idVendor vertė yra "18d1". Todėl eilutė faile /etc/udev/rules.d/51-android.rules turėtų būti mano atveju

  SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev" 

nei aš paleisiu komandą kompiuteryje

  chmod a+r /etc/udev/rules.d/51-android.rules 

Everithing darbai!

4
17 июля '14 в 12:57 2014-07-17 12:57 atsakymą pateikė vartotojo3714693 17 liepa14 , 12:57 2014-07-17 12:57

Žinau, kad tai gali būti šiek tiek vėlai, bet čia yra labai geras straipsnis, kaip pridėti „Android ADB USB“ tvarkyklę. Rankiniu būdu į „Android“ ADB USB tvarkyklę įtraukiama „Ubuntu 14.04 LTS“

Redaguota, jei norite pridėti nuorodos turinį

Veiksmai

Pastaba . Įsitikinkite, kad „Android“ įrenginį prijungiate USB derinimo režimu.

Atidarykite terminalą ( CTRL + ALT + T ) ir įveskite komandą: lsusb

Dabar galite gauti panašų atsakymą į šį klausimą:
Bus 002 Įrenginys 013: ID 283b: 1024

Pastaba: Dėl šio Bus 002 Device 008: ID 283b:1024
{idVendor}=="283b" {idProduct}=="1024″

Dabar įveskite šią komandą: sudo gedit /etc/udev/rules.d/51-android.rules
Tai sukurs „Android“ taisyklių failą ( 51-android.rules ) arba atidarys esamą vietą nurodytoje vietoje ( /etc/udev/rules.d )

Pridėti naują eilutę į šį failą:
SUBSYSTEM=="usb", ATTRS{idVendor}=="283b", ATTRS{idProduct}=="1024″, MODE="0666″

Pastaba Keiskite idVendor ir idProduct reikšmes su savo prietaiso reikšmėmis. Išsaugokite ir uždarykite.

Dabar įveskite šią komandą:
sudo chmod a+rx /etc/udev/rules.d/51-android.rules - suteikti leidimą skaityti / vykdyti
sudo service udev restart - iš naujo paleiskite udev tarnybą

Dabar turime pridėti idVendor prie adb_usb.ini . Įveskite šias komandas:
cd ~/.android
gedit adb_usb.ini

Įrašykite šią vertę 0x283b

Tai nieko, bet 0x ( idVendor vertė). Todėl pakeiskite reikšmę. apie prietaiso vertę Išsaugokite ir uždarykite failą.

Dabar įveskite šią komandą:
sudo service udev restart

Prijunkite „Android“ įrenginį ir vėl prijunkite.
Dabar įveskite šią komandą:
adb kill-server
adb devices

Ateik čia! Jūsų prietaisas turi būti įtrauktas į sąrašą.

Kopijuojama iš rankiniu būdu į „Android“ ADB USB tvarkyklę įtraukiama į Ubuntu 14.04 LTS

Dirbo man.

2
02 мая '15 в 16:24 2015-05-02 16:24 atsakymas pateikiamas DCii 02 gegužės 15 d. 16:24 2015-05-02 16:24
  • Vadovaukitės šiuo adresu: http://developer.android.com/guide/developing/device.html
  • /Etc/udev/rules.d/51-android.rules faile pakeiskite pardavėjo ID „0bb4“ su „18d1“. Arba pridėkite kitą eilutę, kurioje sakoma: SUBSYSTEM == "usb", SYSFS {idVendor} == "18d1", MODE = "0666"
  • iš naujo paleiskite kompiuterį arba tiesiog paleiskite „udev“ paslaugą.
2
26 июля '13 в 13:08 2013-07-26 13:08 atsakymas pateikiamas krishnendu liepos 26 d. 13 val. 13:08 2013-07-26 13:08

Neprijungus

Visi pateikti atsakymai rodo, kad galite atjungti ir vėl prijungti USB kabelį. Tais atvejais, kai tai neįmanoma (pvz., Kai jūs ištrinate), galite atlikti šiuos veiksmus, kad iš esmės atliktumėte, ką udev taisyklės siūlys prisijungti iš naujo:

 lsusb 

Raskite jums rūpimą įrenginį, pavyzdžiui:

 Bus 003 Device 005: ID 18d1:4ee4 Google Inc. Nexus 

Atkreipkite dėmesį į autobuso numerį, kuriuo jis įgalintas, ir sekite, pavyzdžiui,. autobusui 003 :

 sudo chmod a+w /dev/bus/usb/003/* 

Akivaizdu, kad tai gali būti labiau leistina, nei norite (galbūt daugiau įrenginių yra prijungti, nei jūs), bet jūs gaunate idėją.

1
29 июля '16 в 19:28 2016-07-29 19:28 Atsakymą pateikė Christian Fritz liepos 16 d. 16:28 2016-07-29 19:28

Mano įrenginys yra POSITIVO, o mano operacinė sistema yra Ubuntu 14.04 LTS Taigi mano problema buvo kintamojo pavadinime

SUBSYSTEM=="usb", SYSFS{idVendor}=="1662", MODE="0666" failą /etc/udev/rules.d/51-android.rules ir įdėkite SUBSYSTEM=="usb", SYSFS{idVendor}=="1662", MODE="0666"

Išjungiau įrenginį ir paleiskiu:

 $ sudo udevadm control --reload-rules $ sudo service udev restart 

po to vėl prisijungiau prie „Android“ įrenginio kūrėjo režimu ir

 $ adb devices List of devices attached 1A883XB1K device 
1
24 авг. atsakymą pateikė luciana 24 rug. 2014-08-24 07:36 '14 at 7:36 am 2014-08-24 07:36

Perkraukus udev, nužudykite ADB serverį ir paleiskite kelią, kad galėtumėte įdiegti „ADB“ ir įdiegti „sudk android sudo“ ir padaryti viską, kas sudo. tada paleiskite adb įrenginius, kad išspręstumėte rezoliucijos problemą.

1
16 марта '12 в 17:37 2012-03-16 17:37 atsakymą pateikė Chinthaka Senanayaka kovo 16 d. 12 val. 2012-03-17 17:37

„GitHub“ bendruomenė palaiko udev-taisykles

https://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules

Tai yra pats išsamesnis sąrašas udev taisyklių, kurias mačiau iki šiol, net daugiau nei šiuo metu rekomenduojama sudo apt-get install android-tools-adb oficialioje dokumentacijoje .

0
22 окт. Ciro Santilli atsakymas 刘晓波 死 六四 事件 法轮功 Oct 22 2017-10-22 00:24 '17 ne 0:24 2017-10-22 00:24

Pabandykite vietoj GROUP="plugdev" naudoti pagrindinę naudotojo grupę.

0
09 февр. Atsakymas pateikiamas Jurijus 09 vasaris. 2012-02-09 14:53 '12 at 2:53 pm 2012-02-09 14:53

Mano atveju dėl 12.04 LTS aš turėjau pakeisti savo „HTC Incredible usb“ režimą nuo įkrovos iki nešiklio, o tada įrenginys pasirodė po adb. Žinoma, abiem atvejais derinimas jau buvo atliktas.

-1
25 сент. Atsakymas pateikiamas Alan 25 rugsėjo. 2013-09-25 18:04 '13, 18:04 2013-09-25 18:04

Kaip minėta pirmiau, problema kyla dėl to, kad „adb“ neveikia kaip root.

Aš norėjau pridėti savo sprendimą „Ubuntu 12.04“ problemai su „Android“ studija 0.8.2. Kuris taip pat parodo, kaip atidaryti „Android“ studiją, neįvedant viso kelio:

Pirmiausia į PATH pridėkite „android-studio / bin“, redaguodami .bashrc failą.

 cd ~/ gedit .bashrc //add the below line withing your .bashrc file, I prefer you to put it at the //very bottom HOME=$HOME:~/<android-studio>/bin //save file, exit terminal, open new terminal studio.sh // will now open android studio from any directory in terminal 

Tai leis jums paleisti programą naudojant komandą studio.sh iš terminalo iš bet kurio katalogo. Bet tai neleis jums paleisti jį naudojant sudo iš terminalo iš bet kurio katalogo !!! Tai atneša mums atgal į mūsų pagrindinę problemą. Norėdami tai padaryti, turėsime redaguoti failą / etc / sudoers.

  cd /etc sudo gedit sudoers //edit the secure_path="" to include /home/<your-username>/<android-studio>/bin //save file, exit terminal, open new terminal gksudo studio.sh // will now open android studio as root from any direcotry in terminal // I use gksudo rather than sudo when opening a graphical program 

Dabar adb veikia kaip root, o jūsų kompiuteris atpažįsta jūsų prijungtą įrenginį. Ir galite paleisti programą iš bet kurio katalogo. Būtent taip aš ištaisiau problemą ir maniau, kad dalinsiu ja.

-1
21 июля '14 в 5:31 2014-07-21 05:31 atsakymas pateikiamas mileraj66 liepos 21 d., 14 d., 5:31 val. 2014-07-21 05:31

Taip pat galite pabandyti redaguoti failą adb_usb.ini, esantį adresu /home/username/.android/. Šiame faile yra įrenginių teikėjų, su kuriais norite prisijungti, sąrašas. Jūs tiesiog pridedate įrenginio identifikatoriaus teikėją į naują eilutę (tai yra vienas identifikatorius vienoje eilutėje). Tada iš naujo paleiskite „Adb“ serverį ir iš naujo įdiekite įrenginį.

Tai dirbo man Ubuntu 12.10.

-1
20 сент. atsakymas pateikiamas 10101101 20 sep . 2014-09-20 10:40 '14, 10:40 2014-09-20 10:40

Aš naudoju su ir jis pradėjo dirbti. Kai naudoju „Jetbrains“ su įprastu vartotoju, matau šią problemą, bet iš naujo paleisdamas „Jetbrains“ su režimu, matau savo prietaisą be nieko.

Aš naudoju Ubuntu 13.04 ir Jetbrains 12.1.4

-1
23 нояб. Atsakymą pateikė Deepti Kohli lapkričio 23 d. 2013-11-23 07:03 '13, 7:03, 2013-11-23 07:03

Jei kas nors susiduria su tokiu klaidos pranešimu, kai naudojasi „ adb devices

 no permissions (verify udev rules); see [http://developer.android.com/tools/device.html] 

Atlikite šiuos veiksmus.

 sudo -s adb kill-server adb start-server 

Tai sukėlė man problemą pasirinktiniame „Android“ kūrimo įrenginyje.

-2
28 авг. atsakymą pateikė Ismail Iqbal 28 rug. 2017-08-28 19:58 '17, 7:58 pm 2017-08-28 19:58

Kaip eina Debian, aš dariau viską, ką Kali naudojo. Po chown ir rebooting, aš praradau savo nešiojamojo kompiuterio ir išorinės klaviatūros / pelės. Dvigubos įkrovos „Ubuntu“ studija, kurią parsisiunčiau į jį, sumontavo „Debian“ skaidinį, atidarė terminalą ir

sudo su rm kelias / į / all.android.rules

Ir / libs / udev ... IR / etc / udev IR

gedit / lib / udev / rules.d / 91-leidimai.rules

Ir vėl įjunkite

prietaisai, panašūs į USB

SUBSYSTEM == "usb", ENV {DEVTYPE} == "usb_device", MODE = "0666"

Perkraukite ir visi klaviatūros / pelės vėl veikia. Be to, iš naujo paleiskite atgal į Kali / Debian be androidų ir „normalus“ 91-license.rules ir ...

adb

Veikia taip, kaip turėtų - su leidimais ir pan. Aš vis dar turiu savo vartotoją be šaknies plugdev grupėje. Nurodykite „Adb“ kelią „$ PATH“. Turite adb / home / user / andy / sdk / platformų įrankius /

Tikiuosi, kad tai padės kažkam, kuris taip pat įveikia.

-3
02 окт. Jamie Smith atsakymas, pateiktas spalio 02 d 2014-10-02 19:53 '14, 19:53, 2014-10-02 19:53

Kiti klausimai apie žymes arba Užduoti klausimą