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

36

J'utilise Ubuntu 12.10 et j'ai installé Android SDK, définissez son chemin dans mon utilisateur .bashrc et ça marche.

Le problème est que mon téléphone nécessite que adb soit exécuté par root pour les autorisations, mais que l'exécution de adb avec sudo génère l'erreur suivante:

sudo: adb: commande introuvable

J'ai essayé d'utiliser simplement sudo -E adb start-server , mais cela ne fonctionne pas. Je ai essayé d'ajouter la ligne de chemin d'exportation à /root/.bashrc et (après avoir réalisé qu'il n'a pas aidé) à /etc/bash.bashrc .

Je me souviens que je pouvais le configurer sur mon Arch Linux, mais je suppose que mon problème est maintenant connecté au compte root Ubuntu ne se comportant pas comme je l’espérais.

Ce que je ne comprends pas est le suivant:

Celles-ci ne fonctionnent pas:

[email protected]:~$ sudo adb devices
sudo: adb: command not found

Cela fait (en tapant le chemin complet):

[email protected]:~$ 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):

[email protected]:~$ sudo -E adb devices
sudo: adb: command not found

Cela fonctionne (en tant que root):

[email protected]:~$ sudo su
[email protected]:/home/martin# adb devices
List of devices attached 
CM7-Blade   device

Je suis totalement confus maintenant et j'apprécierais quelques éclaircissements sur la façon de définir un chemin pour sudo ou comment je pourrais résoudre mon problème.

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

Merci d'avance!

Modifier: En exigeant des autorisations root, je veux dire que j'en ai besoin parce que sinon, j'obtiens:

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

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

    
posée Martin Fejes 07.11.2012 - 00:39
la source

6 réponses

44

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

Configuration de l’accès USB

D'abord, vous n'avez pas besoin des autorisations root pour exécuter ADB si vous avez défini les autorisations en conséquence. Le site AOSP fournit des exemples de Configuration de l’accès USB pour les appareils Pixel / Nexus. Vous pouvez utiliser le schéma suivant pour les périphériques non-Nexus:

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

L'ID du fournisseur et du produit peut être obtenu en utilisant lsusb et en recherchant votre appareil. (Remarque: le périphérique est en réalité un Galaxy Nexus.)

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

Ma règle /etc/udev/rules.d/51-android.rules udev ressemble donc à ceci:

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

Si vous le souhaitez, vous souhaiterez peut-être répéter cette opération pour les autres états du téléphone, comme fastboot. Pour que les modifications prennent effet, rechargez udev ( sudo udevadm control --reload ) ou redémarrez (recommandé).

Rendre les programmes disponibles

Au lieu de modifier la variable de chemin , je suggérerais d’ajouter un lien symbolique à l’exécutable dans ~/bin/ (user uniquement) ou en /usr/local/bin/ (à l'échelle du système).

mkdir ~/bin/
ln -s /opt/android-sdk-linux/platform-tools/adb ~/bin/
    
réponse donnée LiveWireBT 07.11.2012 - 02:26
la source
29

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

En plus du fichier /etc/udev/rules.d/51-android.rules , je devais également modifier ~/.android/adb_usb.ini .

Exécutez ci-dessous sur le terminal;

sudo gedit ~/.android/adb_usb.ini

et votre fichier adb_usb.ini devrait ressembler à:

# 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!!!>

Périphérique déconnecté et reconnecté et nécessaire pour s'exécuter sous les commandes du terminal;

adb kill-server

et après

adb start-server

Et l’appareil a été détecté.

    
réponse donnée Uygar Y 05.09.2013 - 13:33
la source
2

Dans mon cas, au lieu du mode MTP, certains Smartphones devaient simplement être configurés en mode PTP, contrairement à la plupart des appareils nécessitant la détection du mode MTP par Android Studio (v1.5.1).

Veillez donc à essayer d'abord les modes MTP et PTP sans avoir besoin de passer du temps à la configuration ADP plus complexe d'Unix et peut-être à leur faire du tort.

Dans les nouveaux appareils, vous pouvez le choisir directement dans les options de développement, alors qu’il est plus ancien dans les options connectées par USB de la barre d’état.

Pourtant, pour moi aussi, les nouveaux Sony Xperia Devices de Z5 et plus ne fonctionneront pas, quel que soit le mode USB. Peut-être que mon Android Studio est ancien ou que je dois aussi creuser avec les configurations Unix ADP.

    
réponse donnée George Goodporter 06.02.2017 - 18:35
la source
0

Suivez ces étapes:

  1. Définir les variables Android

    Initialement, allez chez vous et appuyez sur Ctrl + H il vous montrera que les fichiers cachés recherchent maintenant le fichier .bashrc , ouvrez-le avec n'importe quel éditeur de texte puis placez 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. Redémarrer

  3. Utilisation du périphérique pour déboguer

    Écouter la connexion:

    adb -a
    

    Connectez votre appareil Android et autorisez-le:

    cordova run android --device
    
réponse donnée Vladimir Tamayo 16.06.2016 - 18:23
la source
0

Configuration de l’accès USB

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

Veuillez saisir 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 prennent effet à la prochaine connexion d’un périphérique. Il peut donc être nécessaire de débrancher le périphérique et de le rebrancher sur l’ordinateur.

    
réponse donnée Benny 07.09.2017 - 18:16
la source
-1

Essayez cette commande: sudo tools/android update sdk --no-ui

LISEZMOI DU SDK:

  

Bienvenue sur le SDK Android!   L'archive SDK Android contient initialement uniquement les outils de base du SDK. Cela fait   ne pas contenir de plate-forme Android ou de bibliothèques tierces. En fait, il   n'a même pas tous les outils nécessaires pour développer une application.   Pour commencer à développer des applications, vous devez installer les outils de plate-forme.   et au moins une version de la plate-forme Android, à l'aide du SDK Manager.   Platform-tools contient des outils de construction régulièrement mis à jour pour prendre en charge de nouveaux   fonctionnalités dans la plate-forme Android (ce qui explique pourquoi ils sont séparés de base   Outils SDK), y compris adb, dexdump et autres.   Pour installer des outils de plate-forme, des plates-formes Android et d'autres modules complémentaires, vous devez   avoir une connexion Internet, donc si vous prévoyez d'utiliser le SDK   hors ligne, veuillez vous assurer de télécharger les composants nécessaires en ligne.   Pour démarrer le gestionnaire de SDK, exécutez le programme "android".   Depuis la ligne de commande, vous pouvez également déclencher directement une mise à jour par   en cours d'exécution: tools/android update sdk --no-ui

    
réponse donnée user121040 05.12.2013 - 17:57
la source

Lire d'autres questions sur les étiquettes