configurer l'appareil pour le développement???????????? sans autorisations)

j'utilise un téléphone Samsung galaxy nexus ( Android 4.0 plate-forme) .

je développe application Android sur Ubuntu Linux OS. J'aimerais lancer mon application directement sur le dispositif de combiné Samsung, donc j'ai effectué les étapes de configuration suivantes:

  1. dans mon projet AndroidManifest.xml fichier, ajouté android:debuggable="true" à <application> élément

  2. Sur l'appareil, dans le Paramètres > Sécurité activé Sources Inconnues

  3. sur le périphérique, dans le Paramètres > Options du développeur activé débogage USB

  4. sur mon ordinateur, a créé le fichier /etc/udev/rules.d/51-android.rules avec le contenu suivant:

    SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev" 
    
  5. sur mon ordinateur, lancez la commande chmod a+r /etc/udev/rules.d/51-android.rules 1519140920"

puis, sur mon ordinateur j'ai ouvert un terminal et exécuté la commande adb devices , j'ai eu:

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

puisque je n'ai pas vu mon appareil mais seulement ???????????? no permissions , j'exécute alors les commandes suivantes:

 adb kill-server
 adb start-server
 adb devices

Mais j'ai encore:

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

pourquoi? Ce qui me manque?

259
demandé sur Alex P. 2012-02-09 15:35:39

22 réponses

ce qui fonctionne pour moi est de tuer et de redémarrer le serveur adb. Sur linux: sudo adb kill-server puis sudo adb start-server . Ensuite, il détectera presque tous les appareils hors de la boîte.

421
répondu WarrenFaith 2015-03-25 11:04:09

rien n'a fonctionné pour moi jusqu'à ce que je trouve enfin la réponse ici: http://ptspts.blogspot.co.il/2011/10/how-to-fix-adb-no-permissions-error-on.html

je copie le texte ici au cas où il disparaîtrait dans le futur.

créer un fichier nommé /tmp/android.règles dont le contenu est le suivant (les numéros de fournisseurs hexadécimaux ont été tirés de la page de la liste des fournisseurs):

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"

exécuter le suivant commandes:

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

déconnecter le câble USB entre le téléphone et l'ordinateur.

rebranchez le téléphone.

Exécuter adb devices pour confirmer que maintenant il a l'autorisation d'accéder au téléphone.

veuillez noter qu'il est possible d'utiliser , USER="$LOGINNAME" au lieu de , MODE="0666" dans le fichier .rules , en substituant $LOGINNAME à votre nom d'utilisateur, c'est-à-dire ce que id -nu imprime.

Dans certains cas, il peut être nécessaire de donner les règles udev fichier un nom qui trie près de la fin, comme z51-android.rules .

327
répondu grebulon 2017-03-21 08:57:13

entrez les commandes suivantes:

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

le problème est que votre serveur adb ne fonctionne pas en tant que root.

73
répondu iancrowther 2012-08-13 15:08:45

essayé tout ci-dessus, aucun n'a fonctionné .. finalement ça a marché quand je suis passé de MTP à Camera(PTP).

46
répondu Sabeer Mohammed 2017-04-27 05:11:52

il y a beaucoup de mauvaises réponses à cette question allant de l'insistance sur le fait d'utiliser adb comme root (qui ne devrait pas être présentée comme la seule ou même solution recommandée) à la résolution de questions complètement sans rapport.

Voici la recette la plus courte et la plus universelle pour prendre soin des permissions pour tous les adb et fastboot dispositifs à la fois:

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

ou vous pouvez utiliser la version légèrement plus longue que j'ai posté à ce gist .

quant à la chose spécifique que OP a mal faite dans sa question - il ne rechargeait pas les règles udev après avoir édité le fichier .rules .

aussi OP n'a pas dit Quelle Construction Android (aka ROM) il avait sur son téléphone. La valeur idVendor est définie dans le logiciel et dépend donc de la ROM. Ainsi, la valeur de 04E8 il a utilisé dans sa règle d'origine aurait fonctionné que pour les appareils avec Samsung stock ROMs. Mais ce n'est pas un problème pour cette udev règle - il correspond à tous les dispositifs avec adb ou fastboot interfaces indépendamment de leur VendorID .

20
répondu Alex P. 2018-07-19 17:06:06

dans Archlinux cela peut arriver de temps en temps. Le correctif:

$ sudo -s
# adb kill-server
# adb start-server
15
répondu Keenan Verbrugge 2014-09-24 03:23:19

pour ceux qui utilisent debian, le guide pour configurer un périphérique sous Ubuntu pour créer le fichier "/etc/udev/rules.D / 51-android.règles" ne fonctionne pas. J'ai suivi les instructions de ici . Je note la même chose pour référence.

modifier ce fichier comme superuser

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

trouver le texte similaire à ce

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

puis changer le mode en 0666 comme ci-dessous

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

cela permet à adb de fonctionner, mais nous avons encore besoin de configurer l'appareil pour qu'il puisse être reconnu. Nous devons créer ce fichier comme superuser,

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

et inscrivez

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

la ligne ci-dessus est pour HTC, suivez @grebulon post pour la liste complète.

Enregistrer le fichier, puis redémarrer udev comme super-utilisateur

sudo /etc/init.d/udev restart

connecter le téléphone via USB et il doit être détecté lors de la compilation et d'exécuter un projet.

7
répondu jaga 2013-08-28 10:55:57

j'ai eu le même problème, la solution est comme fellow: (soit dit en passant, vous n'avez pas à racine votre appareil.)

  1. Tapez "su" pour passer en super utilisateur.
  2. votre chemin/adb kill-server.
  3. votre chemin/adb start-server.
  4. Si aucune erreur ne se produit, vous pouvez voir la liste des périphériques avec "votre chemin/adb devices" dans le compte root.
  5. quitte super-utilisateur.
  6. Maintenant vous pouvez exécutez "adb devices" dans votre compte.

de Profiter de.

5
répondu Jeffrey Yang 2013-02-12 05:04:47

j'ai eu le même problème avec ma galaxie S3. Mon problème était que la valeur idVendor 04E8 n'était pas la bonne. Pour trouver le bon, connectez votre smartphone à l'ordinateur et lancez lsusb dans le terminal. Il affichera votre smartphone comme ceci:

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

ainsi la droite idVendor valeur est 18d1 . Et la ligne dans le /etc/udev/rules.d/51-android.rules :

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" 

puis j'exécute sudo udevadm control --reload-rules et tout a fonctionné!

4
répondu user3714693 2018-06-14 17:25:21

je sais que cela pourrait être un peu en retard, mais voici un très bon article sur la façon d'ajouter manuellement ADB pilote USB Android. ajouter manuellement Android ADB pilote USB dans Ubuntu 14.04 LTS

modifié pour ajouter le contenu du lien

Étapes

Note: assurez-vous que vous avez connecté votre appareil Android dans le débogage USB mode

ouvrir le terminal ( CTRL + ALT + T ) et entrer la commande: lsusb

Maintenant, vous pourriez obtenir une réponse similaire à cette:

Bus 002 Device 013: ID 283b:1024

Note: En référence à ce Bus 002 Device 008: ID 283b:1024

{idVendor}==”283b” {idProduct}==”1024″

entrez maintenant la commande suivante: sudo gedit /etc/udev/rules.d/51-android.rules

Cela crée le fichier de règles android ( 51-android.rules ) ou ouvrir la position existante à l'emplacement spécifié ( /etc/udev/rules.d )

ajouter une nouvelle ligne à ce fichier:

SUBSYSTEM==”usb”, ATTRS{idVendor}==”283b”, ATTRS{idProduct}==”1024″, MODE=”0666″

Note Edit idVendor & idProduct valeurs avec les valeurs de votre périphérique. Enregistrer et fermer.

entrez maintenant la commande suivante:

sudo chmod a+rx /etc/udev/rules.d/51-android.rules - autorisation de lecture/exécution

sudo service udev restart - redémarrer le udev service

maintenant nous devons ajouter le idVendor à adb_usb.ini . Entrer les commandes suivantes:

cd ~/.android

gedit adb_usb.ini

Ajouter la valeur suivante 0x283b

ce n'est rien mais 0x (valeur idVendor ). Alors remplacez la valeur par. respect de la valeur de votre appareil Enregistrez et fermez le fichier.

entrez maintenant la commande suivante:

sudo service udev restart

débranchez L'appareil Android et rebranchez-le.

Maintenant, entrez la commande suivante:

adb kill-server

adb devices

voilà! Votre appareil doit être répertorié.

copié de ajouter manuellement Android ADB Pilote USB en Ubuntu 14.04 LTS

travaillait pour moi.

3
répondu dc-aoxn 2015-06-20 10:55:53
  1. suivez les instructions à http://developer.android.com/guide/developing/device.html
  2. remplacer le numéro d'identification du vendeur de "0bb4" par "18d1" dans /etc/udev/rules.D / 51-android.règle. Ou ajouter une autre ligne qui lit: Sous-système = = "usb", SYSFS{idVendor} = = "18d1", MODE= "0666"
  3. redémarrer l'ordinateur ou tout simplement redémarrer le service udev.
2
répondu krishnendu 2013-07-26 10:08:33

Lorsque vous redémarrez udev, tuer adb server & start bad serveur goto android sdk chemin d'installation & de faire tout sur sudo. ensuite, exécutez les périphériques adb il résoudra le problème de permission.

1
répondu Chinthaka Senanayaka 2012-03-16 14:37:52

mon appareil est POSITIVO et mon système opérationnel est Ubuntu 14.04 LTS Donc, mon problème était dans le nom variable

je crée le fichier /etc/udev/rules.D / 51-android.règle et mettre SUBSYSTEM=="usb", SYSFS{idVendor}=="1662", MODE="0666"

dispositif déconnecté et exécuter:

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

après cela, j'ai à nouveau connecté l'appareil android en mode développeur et

$ adb devices

List of devices attached 
1A883XB1K   device
1
répondu luciana 2014-08-24 04:50:23

sans débranchement

toutes les réponses fournies supposent que vous êtes en mesure de débrancher et reconnecter le câble USB. Dans les situations où cela n'est pas possible (par exemple, lorsque vous êtes distant), vous pouvez faire ce qui suit essentiellement faire ce que les règles udev suggérées feraient sur re-plug:

lsusb

trouvez l'appareil qui vous intéresse, par exemple:

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

prendre note du numéro du bus sur lequel il se trouve et ensuite l'exécuter, p.ex. pour bus 003 :

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

il est clair que cela peut être plus permissif que vous le voulez (il peut y avoir plus d'appareils attachés que celui-ci), mais vous avez l'idée.

1
répondu Christian Fritz 2016-07-29 16:28:03

Essayez au lieu de GROUP="plugdev" utilisez le groupe principal de votre utilisateur.

0
répondu Yury 2012-02-09 11:53:45

GitHub communauté maintenu udev-règles

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

C'est la liste de règles udev la plus complète que j'ai vu jusqu'à présent, encore plus que le actuellement recommandé sudo apt-get install android-tools-adb sur la documentation officielle , lui donner un essai.

0

vous ne devez pas exécuter adb server comme root comme d'autres réponses le suggèrent. Au lieu de cela, si vous utilisez Arch Linux faire ce qui suit:

  1. installez le paquet android-udev avec Pacman
  2. Recharger les règles udev:

    # udevadm control --reload-rules
    
  3. ajoutez-vous au groupe adbusers , puis déconnectez-vous et connectez-vous:

    # usermod -aG adbusers $LOGNAME
    

Source: https://wiki.archlinux.org/index.php/android#Configuring_adb

0
répondu Babken Vardanyan 2018-03-29 06:43:21

s'il vous Plaît NE suivez PAS les solutions, ce qui suggère d'utiliser sudo ( sudo adb start-server )! Ceci exécute adb en tant que root (administrateur) et il N'est pas censé fonctionner comme ça!!! c'est une mauvaise solution !

Tout ce qui s'exécute en tant que root peut faire n'importe quoi dans votre système, s'il crée ou modifie un fichier peut changer sa permission pour être utilisé seulement par root. Encore une fois, NE le faites PAS!

Le la bonne chose à faire est mis en place votre système pour rendre L'utilisateur ont la permission, Vérifiez ce guide j'ai écrit sur la façon de le faire correctement.

0
répondu Daniele Segato 2018-05-03 08:25:57

dans mon cas sur ubuntu 12.04 LTS, j'ai dû changer mon HTC Incredible usb mode de charge aux médias et puis l'appareil est apparu sous adb. Bien sûr, le débogage était déjà dans les deux cas.

-1
répondu Alan 2013-09-25 15:04:05

j'ai utilisé su et il a commencé à fonctionner. Quand j'utilise Jetbrains avec l'Utilisateur régulier, je vois ce problème, mais après avoir redémarré Jetbrains en mode su, je peux voir mon appareil sans rien faire.

j'utilise Ubuntu 13.04 et Jetbrains 12.1.4

-1
répondu Deepti Kohli 2013-11-23 04:03:50

vous pouvez aussi essayer d'éditer adb_usb.fichier ini , situé à /home/username/.android / . Ce fichier contient la liste des périphériques que vous souhaitez connecter. Vous ajoutez simplement votre appareil id du vendeur en ligne (c'est un id par ligne). Puis redémarrez le serveur adb et relogez votre appareil.

cela a fonctionné pour moi sur Ubuntu 12.10.

-1
répondu 10101101 2014-09-20 07:40:48

si quelqu'un fait face au message d'erreur suivant lorsqu'il utilise adb devices

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

Exécuter

sudo -s 
adb kill-server
adb start-server

qui a fixé la question pour moi sur un appareil android sur mesure

-2
répondu Ismail Iqbal 2017-08-28 16:58:57