J'utilise Ubuntu 12.10 et j'ai installé Android SDK, défini son chemin d'accès dans mon utilisateur .bashrc
et cela fonctionne.
Le problème est que mon téléphone nécessite que adb soit exécuté par root pour les autorisations, mais en exécutant adb avec sudo, j'obtiens le message d'erreur suivant:
sudo: adb: commande introuvable
J'ai essayé d'utiliser simplement sudo -E adb start-server
, mais cela ne fonctionne pas. J'ai essayé d'ajouter la ligne de chemin d'exportation à /root/.bashrc
et (après avoir réalisé que cela n'a pas aidé) /etc/bash.bashrc
.
Je me souviens que je pourrais l’installer sur mon Arch Linux, mais j’imagine que mon problème est maintenant lié au compte racine Ubuntu qui ne se comporte pas comme prévu.
Ce que je ne comprends pas, c'est ce qui suit:
Ceux-ci ne fonctionnent pas:
martin@alyx:~$ sudo adb devices
sudo: adb: command not found
Ceci fait (en tapant le chemin 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 (avec -E avec sudo):
martin@alyx:~$ sudo -E adb devices
sudo: adb: command not found
Cela fonctionne (en tant que root):
martin@alyx:~$ sudo su
root@alyx:/home/martin# adb devices
List of devices attached
CM7-Blade device
Je suis totalement dérouté maintenant et j'apprécierais quelques précisions sur la manière de tracer une voie pour Sudo ou sur la manière dont je pourrais résoudre mon problème.
(Et s'il vous plait, ne dites pas que adb ne devrait pas être lancé en tant que root.)
Merci d'avance!
Edit: En exigeant des autorisations root, je veux dire que j'en ai besoin car sinon, je reçois:
$ adb devices
List of devices attached
???????????? no permissions
qui ne se produit pas en tant que superutilisateur. Désolé si c'était un malentendu.
Réponses:
Veuillez lire d'abord ce qui suit: Comment configurer Android ADB?
Configuration de l'accès USB
Tout d'abord, vous n'avez pas besoin d'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 périphériques Pixel / Nexus. Vous pouvez utiliser le schéma suivant pour les périphériques non-Nexus:
Les identifiants de fournisseur et de produit peuvent être obtenus en utilisant
lsusb
et en recherchant votre appareil. (Remarque: l'appareil est en fait un Galaxy Nexus.)Donc, ma
/etc/udev/rules.d/51-android.rules
règle udev ressemble à ceci:Vous voudrez peut-être répéter cette opération pour les autres états du téléphone, comme Fastboot, si nécessaire. 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 soit dans
~/bin/
(utilisateur uniquement), soit dans/usr/local/bin/
(système entier).la source
adb devices
travaille pour moi sans privilèges root.Je suis tombé sur le même problème avec une tablette en provenance de Chine (un fabricant étrange).
En plus du
/etc/udev/rules.d/51-android.rules
fichier, je devais~/.android/adb_usb.ini
aussi changer .Courez ci-dessous sur le terminal;
et votre
adb_usb.ini
fichier devrait ressembler à:Appareil déconnecté et reconnecté et devant également exécuter des commandes sous le terminal;
et après
Et l'appareil a été détecté.
la source
0x2207
dans votre exemple, il s'agit du même identifiant de fournisseur que mon appareil utilise.Dans mon cas, au lieu du mode MTP, certains téléphones intelligents devaient simplement être configurés en mode PTP, contrairement à la plupart des appareils qui exigeaient que le mode MTP soit détecté par mon Android Studio (v1.5.1).
Assurez-vous d’abord d’essayer les modes MTP et PTP avant de passer à la configuration ADP plus complexe de Unix et de ne pas les endommager.
Dans les nouveaux appareils, vous pouvez le choisir directement dans les options de développement, tandis que dans les anciens modèles, il s’agit des Options de connexion USB de la barre d’état.
Pourtant, les derniers appareils Sony Xperia à partir de Z5 et des versions ultérieures ne fonctionneront pas, quel que soit le mode USB. Peut-être que mon Android Studio est vieux ou que je dois aussi creuser avec les configurations Unix ADP.
la source
Suivez ces étapes:
Définir les vars android
Dans un premier temps, allez chez vous et appuyez sur Ctrl+, Hil montrera que les fichiers cachés recherchent maintenant un
.bashrc
fichier, ouvrez-le avec n’importe quel éditeur de texte, puis placez les lignes ci-dessous à la fin du fichier:Redémarrage
Utiliser le périphérique pour déboguer
Écoutez la connexion:
Connectez votre appareil Android et autorisez-le:
la source
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 saisir le terminal:
Ces nouvelles règles entrent en vigueur lors du prochain branchement d'un périphérique. Il peut donc être nécessaire de débrancher le périphérique et de le rebrancher à l'ordinateur.
la source
Bien que la réponse acceptée m'aide à faire avancer les choses, j'étais toujours perplexe:
et particulièrement
depuis selon
sudo --help
:Il s'avère que sur de nombreuses distributions Linux (y compris Debian et Ubuntu)
secure_path
, lesenv_reset
options sont activées par défaut, ce qui réinitialise votrePATH
variable et la définitsecure_path
. Vous pouvez le changer dans le/etc/sudoers
fichier en utilisant visudo.Sinon, vous pouvez exécuter:
la source
Essayez cette commande:
sudo tools/android update sdk --no-ui
README DU SDK:
la source