ADB sur Ubuntu ne reconnaît pas le Nexus 4

8

Je ne parviens pas à faire reconnaître mon téléphone Nexus 4 par ADB sur Ubuntu (12.04 avec un noyau plus récent installé: 3.8.0-30-generic). Le mode développeur est activé sur le téléphone.

L'appareil apparaît dans lsusb :

$ lsusb
...
Bus 003 Appareil 034: ID 18d1: 4ee5 Google Inc. 
...

Mais lorsque j'exécute des appareils adb, j'obtiens une liste vide. J'ai trouvé de nombreux messages sur Internet à propos de ce problème, mais aucun d'eux ne résout le problème. Il y a deux solutions.

  • Ajoutez une règle à /etc/udev/rules.d/51-android.rules . J'ai trouvé diverses variations pour le contenu de ce fichier. Dans la plupart des cas, une valeur idVendor et idProduct doit être définie en fonction de la sortie de lsusb . Voici quelques exemples que j'ai essayés
SOUS-SYSTÈME == "usb", ATTRS {idVendor} == "18d1", ATTRS {idProduct} == "4ee5", MODE = "0666" GROUP = "androiddev", SYMLINK + = "android% n"
SOUS-SYSTÈME == "usb", ATTR {idVendor} == "18d1", MODE = "0666", GROUP = "plugdev"
SOUS-SYSTÈME == "usb", ATTRS {idVendor} == "18d1", SYMLINK + = "android_adb", MODE = "0666"
SOUS-SYSTÈME == "usb", ATTR {idVendor} == "18d1", ATTR {idProduct} == "4ee5", MODE = "0666", OWNER = "my-login" 

Après avoir ajouté cela, j'ai défini les autorisations pour le fichier de règles sur 644 et j'ai redémarré le PC / redémarré udev, redémarré le téléphone et branché mon Nexus 4.

  • Ajoutez l'ID du fournisseur à ~ / .android / adb_usb.ini.
echo 0x18d1 >> ~ / .android / adb_usb.ini

J'ai exécuté des périphériques adb en tant qu'utilisateur root et normal, mais je ne reçois qu'une liste vide:

$ appareils adb
* le démon ne fonctionne pas. le démarrer maintenant sur le port 5037 *
* démon a démarré avec succès *
Liste des périphériques connectés 

Des idées sur la façon de résoudre ce problème? Toute aide de suggestions serait grandement appréciée.

Lespaul86
la source

Réponses:

7

Il ne suffit pas de faire apparaître la page des options du développeur dans le menu des paramètres (en appuyant plusieurs fois sur le numéro de build). Sur cette page, il y a une option de débogage USB , qui est désactivée par défaut.

Lorsque le débogage USB est activé, la connexion de votre appareil à un PC via USB fait apparaître la notification "Débogage USB connecté", qu'il soit adbou non en cours d'exécution sur le PC.

Dan Hulme
la source
Pourriez-vous détailler votre réponse? Où trouver cette "page"?
Luís de Sousa
@ LuísdeSousa android.stackexchange.com/q/33496/12442
Dan Hulme
J'essaie de me connecter adbcar l'écran tactile est cassé. Je n'ai aucun moyen d'accéder à ses menus et applications. Y aurait-il un autre moyen d'activer cette fonction de débogage USB?
Luís de Sousa
1

Pour un ensemble d'instructions plus complet sur la façon de configurer les règles udev du Nexus 4 sur ubuntu, suivez ces instructions:

Comment trouver l'ID du vendeur de votre appareil

Vous pouvez trouver un ID fournisseur pour les périphériques connectés USB avec la commande linux suivante:

lsusb

Cela générera une liste de tous les périphériques USB connectés, alors assurez-vous que votre appareil est connecté avant de le faire.

Bus 001 Device 004: ID 18d1:4ee2 Google Inc.

La première partie du champ après ID est l'ID du vendeur (18d1) et la deuxième partie correspond au mode dans lequel l'appareil est connecté. Dans ce cas, 4ee2 est égal au mode MTP avec débogage activé.

CRÉER UNE RÈGLE UDEV POUR NEXUS 4

Pour pouvoir détecter le téléphone Nexus 4 sous Ubuntu, la première chose à faire est de créer les règles udev appropriées qui permettront au système de détecter le téléphone.

Ces règles udev devraient pouvoir gérer 4 cas différents:

  • téléphone connecté en mode MTP (débogage USB activé ou désactivé)
  • téléphone connecté en mode PTP (débogage USB activé ou désactivé)
  • téléphone connecté en mode Fastboot
  • téléphone connecté en mode de récupération

Ils seront déclarés en /etc/udev/rules.d/99-android.rules. Si le fichier existe déjà, ajoutez simplement le contenu à la fin de celui-ci.

# sudo gedit /etc/udev/rules.d/99-android.rules

Le contenu ci-dessous doit être ajouté. Assurez-vous de remplacer le champ your-login par votre nom d'utilisateur approprié avec lequel vous vous êtes connecté.

# Google Nexus 4 16 Gb
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee1", MODE="0666", OWNER="your-login" # MTP media (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0666", OWNER="your-login" # MTP media with USB debug on(multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee5", MODE="0666", OWNER="your-login" # PTP media (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee6", MODE="0666", OWNER="your-login" # PTP media with USB debug on (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0666", OWNER="your-login" # Bootloader
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666", OWNER="your-login" # Recovery

Redémarrez les services

Une fois terminé, le service udev doit être redémarré.

# sudo service udev restart

Notez que dans certains cas, il est également nécessaire de redémarrer adb avec:

adb kill-server
adb start-server

Ou redémarrez complètement le système avec:

sudo reboot -n

La reconnexion du câble USB (au lieu d'un redémarrage) peut également fonctionner.

Autoriser la connexion ADB

Si vous venez d'activer l'option de débogage ADB sur votre téléphone et que vous avez créé cette nouvelle connexion, la commande ADB peut répertorier votre appareil comme unauthorized. Vérifiez simplement l'écran de votre téléphone puis autorisez la nouvelle connexion.

Crédits

La plupart de ces informations ont été trouvées sur http://bernaerts.dyndns.org/android/267-android-nexus4-root-twrp-ubuntu . Ceci est un guide d'enracinement pour Nexus 4 sur Ubuntu. Je n'ai utilisé que la première étape de ce guide.

hcpl
la source
Je viens d'essayer cette solution d'Ubuntu 14.04 et même après le redémarrage du système, le Nexus 4 n'est pas reconnu.
Luís de Sousa
Avez-vous essayé de démarrer adb avec les autorisations root? Voir l'une des autres réponses sur Ubuntu 14.04 + avez-vous vérifié le mode de connexion USB sur l'appareil?
hcpl
Oui, je l'ai essayé avec sudo. Le téléphone se connecte en mode MTP avec débogage désactivé.
Luís de Sousa
1

J'utilise Ubuntu 14.04 LTS et j'ai constaté que je dois exécuter adb avec les autorisations root pour qu'il détecte mon téléphone. Tout à l'heure, j'ai couru (à partir du répertoire platform-tools) ./adb deviceset j'ai trouvé une liste vide. J'ai redémarré adb en tant que root en exécutant ./adb kill-serverpuis sudo ./adb start-server. adb devicesRetourne maintenant :

List of devices attached 
01d17087d29dec60    device

Alors qu'avant cela ressemblait à ceci:

Liste des périphériques connectés

the.laurence
la source
tuer, puis commencer comme root a fonctionné pour moi. Utilisation d'un Nexus 5
Russ Wheeler
1
Je viens d'essayer cette solution sur Ubuntu 14.04 et je reçois toujours une liste d'appareils vide.
Luís de Sousa
0

FYI: J'ai récemment mis à jour la version Android de 4.4 à 5.0 sur mon téléphone et ADB n'afficherait plus l'appareil comme connecté. Il semble que la méthode de connexion USB MTP était correcte avant qu'elle ne soit désormais PTP .

flowtron
la source
Pourriez-vous détailler votre réponse? Où exactement cette méthode devrait-elle être modifiée?
Luís de Sousa
Comme je l'ai dit MTP était correct AVANT, APRÈS la mise à jour PTP était correcte.
flowtron