80 votes

adb n'a pas de permissions sur Ubuntu 17.04

Quand j'essaie :

$ adb devices

J'obtiens le résultat :

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

Quel est le problème ?

J'ai essayé sur une machine Ubuntu 16.04 et cela a fonctionné parfaitement. J'ai essayé sur un appareil 7.1.1 et cela a également fonctionné parfaitement.

2voto

Shade Points 259

Pour approfondir la réponse de Sumeet Deshmukh, son approche fonctionne en général - si vous souhaitez uniquement utiliser l'option adb à partir de la console.

Android Studio, cependant, démarre apparemment son propre serveur adb, tuant le nôtre. Cela signifie qu'après avoir tué/démarré le serveur avec sudo, Studio le redémarre, ce qui conduit à la situation de départ - pas de permissions.

La solution consiste à démarrer d'abord Studio, puis à effectuer le démarrage/arrêt du serveur. En faisant cela, j'ai réussi à faire apparaître mon Nexus 5X comme une cible d'exécution valide dans Studio.

Ce n'est pas la meilleure situation (devoir exécuter des commandes à chaque fois que vous démarrez Studio), mais cela fait l'affaire d'une manière rapide et sale. Si je trouve une solution plus permanente, je mettrai à jour cette réponse.

2voto

Daniele Segato Points 187

S'il vous plaît NE PAS suivre les solutions suggérant d'utiliser sudo ( sudo adb start-server ) ! Cela exécute adb en tant que root (administrateur) et ce n'est PAS censé fonctionner comme ça ! !! C'est une MAUVAISE solution de contournement !

Tout ce qui fonctionne en tant que root peut faire n'importe quoi dans votre système, s'il crée ou modifie un fichier, il peut changer sa permission pour qu'il ne soit utilisé que par root. Encore une fois, NE LE FAITES PAS !

El la bonne chose à faire est de configurer votre système pour que l'UTILISATEUR ait l'autorisation, consultez le site ce guide J'ai écrit sur la façon de le faire correctement.

2voto

mjhm Points 6418

Cela n'a pas fonctionné pour moi après que je me sois ajouté à la liste des utilisateurs. plugdev et j'ai redémarré la machine juste pour m'assurer que le changement prend effet dans toutes mes sessions Shell. J'ai alors constaté qu'il n'y a pas de 51-android.rules dans /etc/udev/rules.d et j'ai dû faire ce qui suit pour résoudre le problème :

# Here the vendor ID is of Google
$ echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0660", GROUP="plugdev"' | sudo tee —append /etc/udev/rules.d/51-android.rules
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
$ sudo udevadm control --reload-rules
$ sudo service udev restart

J'ai également dû débrancher et rebrancher mon appareil Android.

1voto

M0Rf30/android-udev-rules Règles udev maintenues par la communauté GitHub

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 vue jusqu'à présent, même plus que celle actuellement recommandée sudo apt-get install android-tools-adb sur la documentation officielle donnez-lui une chance.

1voto

xdevs23 Points 255

Assurez-vous que vous avez vos règles udev en place, vérifiez /etc/udev/rules.d

Vous pouvez trouver les règles appropriées ici : https://raw.githubusercontent.com/M0Rf30/Android-udev-rules/master/51-Android.rules

Il suffit de les placer dans /etc/udev/rules.d/ alors :

sudo udevadm control --reload
sudo udevadm trigger

Maintenant, assurez-vous que le serveur adb ne fonctionne pas :

sudo adb kill-server

Ajoutez votre utilisateur à adbusers :

sudo usermod -a -G adbusers $USER

Maintenant, utilisez su $USER ( référence ) afin que votre utilisateur appartienne réellement à adbusers (vérifier en utilisant groups )

Et ensuite, relancez le serveur adb :

adb start-server

Si votre appareil n'apparaît pas dans adb devices et le reconnecter.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X