Il y a un certain nombre de raisons pour lesquelles cela peut se produire, la plupart peuvent être résolues en suivant les instructions des guide officiel :
- Vous n'avez pas activé USB Debug sur votre appareil (faites-le, voir le guide ci-dessus / autre réponse).
- Votre appareil est en mode USB, essayez de le changer (une notification s'affiche / vous trouvez un menu dans les paramètres du développeur).
- Il vous manque la permission sur le périphérique de votre système Linux : Je vous explique ce qu'il faut faire dans ce cas
Quoi que vous fassiez NE PAS lancement adb start-server
con sudo
(certains guides/réponses sur stack overflow le suggèrent). C'est mauvais ! Cela fonctionne parce que vous exécutez le serveur adb en tant que Root (administrateur) mais ce n'est pas censé fonctionner comme ça et pourrait vous causer d'autres problèmes plus tard.
Tout d'abord, si vous êtes sous Ubuntu / debian, vérifiez si un paquet appelé android-tools-adb
est disponible et l'installer :
sudo apt install android-tools-adb
cette installation une liste de permission gérée par la communauté pour les appareils Android (débrancher / rebrancher l'appareil ou essayer de redémarrer).
Assurez-vous que vous êtes dans le répertoire udev plugdev
groupe :
groups
si le plugdev
n'est pas répertorié, ajoutez-vous :
sudo usermod -aG plugdev $LOGNAME
sudo usermod -aG plugdev $USER
il se peut que vous deviez vous déconnecter et vous reconnecter pour que le changement prenne effet, vérifiez de nouveau avec groups
commandement.
Certains appareils ne sont pas sur la liste, par exemple j'ai un appareil Pixel 2 qui n'est pas listé dans le module maintenu par la communauté. Si vous n'obtenez toujours pas de permission c'est ce que vous devez faire :
Étape 1 : branchez votre appareil
Étape 1 : Vérifiez qu'il est détecté par votre PC :
$ lsusb
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 8087:07da Intel Corp.
Bus 001 Device 003: ID 18d1:4ee7 Google Inc. <----------
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Étape 3 : notez les deux codes que vous voyez après ID
Dans mon exemple, le dispositif est celui nommé Google Inc. et les codes sont 18d1:4ee7
Le premier est l'ID du vendeur, le second est l'ID du modèle de l'appareil, ceux-ci sont pour le Google Pixel 2.
Étape 4 : écrire un udev
règle pour votre appareil
sudo gedit /etc/udev/rules.d/70-android-custom-device.rules
à l'intérieur, écrivez ceci :
# GOOGLE PIXEL 2
ACTION=="add|change", SUBSYSTEM=="usb", \
ATTRS{idVendor}=="18d1", \
ATTRS{idProduct}=="4ee7", \
TAG+="uaccess"
Raplacez votre commentaire ( GOOGLE PIXEL 2 ) avec le nom du périphérique, ceci est ignoré par udev, il n'est utile que pour un humain lisant le fichier (la balise #
est un commentaire). Ensuite, changez le code pour idVendor
y idProduct
avec les codes de vos appareils.
Si vous avez plusieurs appareils avec le même fournisseur, vous pouvez les lister tous en les séparant par un trait d'union. |
par exemple : ATTRS{idProduct}=="d001|4ee7"
Étape 5 : redémarrez udev pour que vos modifications soient lues
sudo service udev restart
Étape 6 : débranchez / rebranchez votre appareil
il devrait maintenant avoir les permissions