44 votes

Comment configurer l'accès ADB pour les appareils Android ?

J'utilise Ubuntu 12.10 et j'ai installé Android SDK, défini son chemin d'accès dans mon user .bashrc et cela fonctionne.

Le problème est que mon téléphone exige que adb soit exécuté par root pour les permissions, mais en exécutant adb avec sudo, j'obtiens l'erreur suivante :

sudo : adb : commande non trouvée

J'ai essayé d'utiliser simplement sudo -E adb start-server mais cela ne fonctionne pas. J'ai essayé d'ajouter la ligne du chemin d'exportation à /root/.bashrc et (après s'être rendu compte que cela ne servait à rien) à /etc/bash.bashrc .

Je me souviens que je pouvais le régler sur mon Arch Linux, mais je pense que mon problème est lié au fait que le compte racine d'Ubuntu ne se comporte pas comme je l'attends.


Ce que je ne comprends pas, c'est la chose suivante :

Ceux-ci ne fonctionnent pas :

martin@alyx:~$ sudo adb devices
sudo: adb: command not found

C'est le cas (en tapant le chemin d'accès complet) :

martin@alyx:~$ sudo /opt/android-sdk-linux/platform-tools/adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
CM7-Blade   device

Cela ne fonctionne pas (en utilisant -E avec sudo) :

martin@alyx:~$ sudo -E adb devices
sudo: adb: command not found

Cela fonctionne (en tant que racine) :

martin@alyx:~$ sudo su
root@alyx:/home/martin# adb devices
List of devices attached 
CM7-Blade   device

Je suis totalement perdu et j'apprécierais que l'on m'explique comment définir un chemin d'accès pour sudo ou comment je pourrais résoudre mon problème.

(Et s'il vous plaît, ne dites pas qu'adb ne doit pas être exécuté en tant que root).

Merci d'avance !

Editer : Je veux dire par là que j'ai besoin des permissions de l'administrateur, car sinon je ne peux rien faire :

$ adb devices 
List of devices attached 
????????????    no permissions

ce qui ne se produit pas en tant que superutilisateur. Désolé si c'était un malentendu.

50voto

David Grant Points 8477

Veuillez d'abord lire ce qui suit : Comment configurer Android ADB ?


Configuration de l'accès USB

Tout d'abord, vous n'avez pas besoin des droits de root pour exécuter ADB si vous avez défini les droits en conséquence. Le site de l'AOSP fournit des exemples pour Configuration de l'accès USB pour les appareils Pixel/Nexus. Vous pouvez utiliser le schéma suivant pour les appareils autres que Nexus :

SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", ATTR{idProduct}=="xxxx", MODE="0600", OWNER="<username>"

L'identification du fournisseur et du produit peut être obtenue en utilisant la fonction lsusb et la recherche de votre appareil. (Note : L'appareil est en fait un Galaxy Nexus).

$ lsusb | grep -i samsung
Bus 002 Device 103: ID 04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone [Galaxy S II]

Ainsi, mon /etc/udev/rules.d/51-android.rules La règle udev ressemble à ceci :

# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="username"

Vous pouvez répéter cette opération pour les autres états du téléphone comme fastboot si nécessaire. Pour que les changements prennent effet, rechargez udev ( sudo udevadm control --reload ) ou redémarrer (recommandé).

Mise à disposition des programmes

Au lieu de modification de la variable "path" (chemin d'accès) Je suggérerais d'ajouter un lien symbolique vers l'exécutable soit dans ~/bin/ (réservé à l'utilisateur) ou dans /usr/local/bin/ (à l'échelle du système).

mkdir ~/bin/
ln -s /opt/android-sdk-linux/platform-tools/adb ~/bin/

29voto

Uygar Y Points 391

J'ai rencontré le même problème avec une tablette provenant de Chine (un fabricant bizarre).

En plus de /etc/udev/rules.d/51-android.rules j'ai dû modifier le fichier ~/.android/adb_usb.ini également.

Exécutez le programme ci-dessous sur le terminal ;

sudo gedit ~/.android/adb_usb.ini

et votre adb_usb.ini devrait ressembler à ceci :

# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
# ie 0x2207
0x<!!!Your Vendor ID here!!!>

Déconnexion et reconnexion de l'appareil et exécution des commandes suivantes sur le terminal ;

adb kill-server

et ensuite

adb start-server

L'appareil a été détecté.

2voto

Dans mon cas, au lieu du mode MTP, certains smartphones devaient simplement être configurés en mode PTP, contrairement à la plupart des appareils qui nécessitaient le mode MTP pour être détectés par mon Android Studio (v1.5.1).

Veillez donc à essayer d'abord les modes MTP et PTP avant de passer à la configuration ADP plus complexe d'Unix, sans perdre de temps et sans risquer de les endommager.

Sur les appareils récents, vous pouvez le choisir directement dans les options Dev, tandis que sur les appareils plus anciens, il se trouve dans les options de connexion USB de la barre d'état.

Mais pour moi, les derniers appareils Sony Xperia, à partir du Z5, ne fonctionnent pas, quel que soit le mode USB. Peut-être que mon Android Studio est vieux ou que j'ai besoin de creuser aussi avec les configurations ADP Unix.

1voto

Klawztro Points 702

Procédez comme suit :

  1. Définir les variables Android

    Allez d'abord à votre domicile et appuyez sur Ctrl + H Il vous montrera les fichiers cachés. .bashrc ouvrez-le avec n'importe quel éditeur de texte, puis placez le fichier les lignes ci-dessous à la fin du fichier :

    export ANDROID_HOME=/myPathSdk/android-sdk-linux
    export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
  2. Reboot

  3. Utilisation de l'appareil pour le débogage

    Écouter la connexion :

    adb -a

    Connectez votre appareil Android et autorisez-le :

    cordova run android --device

0voto

Benny Points 4482

Configuration de l'accès USB

L'approche recommandée consiste à créer un fichier à l'adresse /etc/udev/rules.d/51-android.rules .

Veuillez taper dans le terminal :

wget -S -O - http://source.android.com/source/51-android.txt | sed "s/<username>/$USER/" | sudo tee >/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules

Ces nouvelles règles entrent en vigueur la prochaine fois qu'un appareil est branché. Il peut donc être nécessaire de débrancher l'appareil et de le rebrancher sur l'ordinateur.

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