web-dev-qa-db-fra.com

commande adb devices ne fonctionne pas

J'utilise Ubuntu 10.10 64 bits. J'ai ia32-libs installé avec Android Debug Bridge version 1.0.26.

Mes problèmes):

  1. adb devices >>> ???????????? pas de permissions
  2. Sudo adb devices _ >>>> Sudo: adb: commande non trouvée
  3. adb Shell _ >>> erreur: autorisations insuffisantes pour le périphérique

Je suppose que ce sont tous liés. Voici les informations pertinentes.

$ echo $PATH
/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/Android-sdk-linux_x86/tools:/opt/Android-sdk-linux_x86/platform-tools

$ which adb
/opt/Android-sdk-linux_x86/platform-tools/adb

$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
????????????    no permissions

$ Sudo adb devices
Sudo: adb: command not found

$ adb Shell
error: insufficient permissions for device

J'obtiens les mêmes résultats avec un Moto Droid rooté exécutant CM6.1 et un G-Tab rooté exécutant une ROM basée sur CM7.

J'ai passé en revue les articles liés suivants:

J'ai essayé la plupart (pas toutes) des suggestions et je n'ai pas réussi à résoudre mon problème. Les choses que je n'ai pas essayées semblaient inappropriées. J'apprécierais quelques autres conseils et je continuerai le dépannage.

Une chose que je n’ai pas essayée a été d’éditer /etc/udev/rules.d/70-Android.rules. Est-ce que cela sera probablement le problème? Je ne vois pas comment cela pourrait causer "Sudo: adb: command not found". Peut-être que mes problèmes ne sont pas tous liés. Quoi qu'il en soit, pour le moment, je pense que j'ai besoin de l'avis d'autres personnes, car je ne crois pas que j'ai un problème de chemin ou les autres problèmes courants abordés dans ces autres articles.

EDIT: RESOLU grâce à EboMike et RivieraKid. C’était en fait deux problèmes différents:

  1. L'élément n ° 2 ci-dessus (Sudo: adb: commande introuvable) a été résolu en créant un lien symbolique comme suit:

    $ Sudo ln -s /opt/Android-sdk-linux_x86/platform-tools/adb /usr/local/sbin/adb
    

    Cela me permettait alors de faire ce que suggérait EboMike et d’utiliser cette solution . Faire cela était nécessaire pour mon Moto Droid. (Utiliser adb comme Sudo était pas requis pour mon Viewsonic G-Tablet, cependant.)

  2. Mes deux autres problèmes ont été résolus en appliquant la règle udev telle que suggérée par RivieraKid (à partir de ceci lien ).

86
MountainX

Une chose que je n’ai pas essayée a été d’éditer /etc/udev/rules.d/70-Android.rules. Est-ce que cela sera probablement le problème?

Une raison particulière pour laquelle tu ne l'as pas fait? Pour répondre à la question - OUI! Les règles udev sont ce qui informe Ubuntu de ce qu'est votre appareil et permet donc aux outils de l'espace utilisateur d'y accéder.

Vous ne pourrez pas utiliser adb sans suivre correctement les instructions .

Cela dit, vous ne précisez pas la version d'Ubuntu que vous utilisez, mais j'ai eu des problèmes avec la version 10.10 - laissez-moi savoir si vous souhaitez que je publie le contenu de mon fichier de règles.

Ne vous inquiétez pas de faire tourner adb via Sudo, vous n'en avez pas besoin. Le MODE="0666" de la règle udev vous permet d’accéder au périphérique comme n’importe quel utilisateur.


MODIFIER:

N'oubliez pas de recharger les règles:

Sudo udevadm control --reload-rules

EDIT # 2:

Comme @Jesse Glick le souligne correctement, si adb est déjà en cours d'exécution en mode démon, vous devrez également le redémarrer pour que cela fonctionne:

Sudo adb kill-server

J'ai utilisé Sudo ici, car cela garantira que adb sera tué et que c'est la méthode officiellement prise en charge pour arrêter le serveur. Il sera automatiquement redémarré lors de la prochaine utilisation de adb, mais cette fois avec le bon environnement.

87
RivieraKid

Vous devez redémarrer le serveur adb en tant que root. Voir ici .

22
EboMike

Sur mon système Linux Gentoo/Funtoo, j'ai des problèmes similaires:

Je note toujours pas la description de l'appareil correcte et les autorisations insuffisantes:

# Sudo ./adb devices
List of devices attached 
????????????    no permissions
# ./adb usb
error: insufficient permissions for device

Pour moi, aide le howto de Google. Dans mon cas, je devais ajouter la règle udev:

# cat /etc/udev/rules.d/51-Android.rules 
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" 

et mettre en place les droits du système de fichiers

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

Après avoir reconnecté mon smartphone, l'accès au téléphone a réussi, il apparaît également maintenant dans Eclipse 'Android Sélecteur de périphérique:

# Sudo ./adb devices
List of devices attached 
3XXXXXXXXXXXXXC device
# Sudo ./adb usb
restarting in USB mode

Vous devez également vérifier l’appartenance de votre utilisateur au groupe plugdev -.

13
larkee

Chaque réponse que j'ai lue indique le SUBSYSTEM=="usb". Cependant, mon (peut-être ancien) udev avait besoin que cela soit changé en DRIVER=="usb". Enfin, je peux exécuter le serveur adb en tant qu'utilisateur non root ... yay.

Il peut être instructif d’examiner le résultat de udevmonitor --env, suivi du résultat de

udevinfo -a -p <DEVICE_PATH_AS_REPORTED_BY-udevmonitor>
3
anon

Veuillez noter que les IDE tels que IntelliJ IDEA ont tendance à démarrer leur propre serveur adb.

Même tuer manuellement le serveur et exécuter une nouvelle instance avec Sudo n’aideront pas ici tant que vous ne ferez pas votre IDE tuer le serveur lui-même.

2
sebastianwagner

redémarrer le serveur adb en tant que root a fonctionné pour moi. voir:

derek@zoe:~/Downloads$ adb sideload angler-ota-mtc20f-5a1e93e9.Zip 
loading: 'angler-ota-mtc20f-5a1e93e9.Zip'
error: insufficient permissions for device
derek@zoe:~/Downloads$ adb devices
List of devices attached
XXXXXXXXXXXXXXXX    no permissions

derek@zoe:~/Downloads$ adb kill-server
derek@zoe:~/Downloads$ Sudo adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
derek@zoe:~/Downloads$ adb devices
List of devices attached
XXXXXXXXXXXXXXXX    sideload
2
keredson

J'ai résolu ce problème sur mon système Debian GNU/Linux en modifiant les règles système de cette façon:

mv  /etc/udev/rules.d/51-Android.rules /etc/udev/rules.d/99-Android.rules

J'ai utilisé le contenu de fichiers liés à: http://rootzwiki.com/topic/258-udev-rules-for-any-device-no-more-starting-adb-with-Sudo/

1
RzR

Le HTC One m7 utilisant le nouveau CyanogenMod 11.

Le téléphone est connecté USB et ma connexion de données est attachée.

Puis je reçois cette surprise:

cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb Shell
error: insufficient permissions for device

cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb devices
List of devices attached
????????????    no permissions

SOLUTION: Désactivez le modem sur le téléphone.

cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb devices
List of devices attached
HT36AW908858    device
0
cinderman