GNU/Linux >> Tutoriels Linux >  >> Linux

Android - Tablette Android sans nom i.onik non reconnue par adb - appareils adb vides

La réponse d'Izzy est trompeuse. Deux éléments sans rapport ont été mélangés (la liste d'ID de fournisseur dans adb d'un côté et la configuration des autorisations sous Linux de l'autre).

1) appareils pris en compte par adb :

Adb a une liste codée en dur des ID de fournisseurs USB qu'il essaie. Par exemple. Les téléphones portables HTC utilisent 0xbb4, qui est répertorié (fichier source usb_vendors.c), alors que 0x2207 ne l'est pas.

Le seul le moyen d'ajouter à cette liste (sans patcher la source) est de mettre les identifiants des fournisseurs dans le fichier $HOME/.android/adb_usb.ini , ligne par ligne. (HOME est bien configuré ?)

Aucun câble spécial n'est nécessaire.

2) configuration des autorisations pour un accès non root :

L'udev-fiddling consiste à donner à l'utilisateur un accès, par exemple. /dev/bus/usb/002/009 (modification du numéro de bus/numéro d'appareil ; voir lsusb pour les valeurs actuelles).

Les détails de ceci ne sont pas pertinents pour la question de l'auteur original, car il a exécuté adb en tant que root.


Comme décrit dans Configuration d'ADB pour Nexus 4 sur Ubuntu 11.10, sous Linux, il est important d'être répertorié soit dans ~/.android/adb_usb.ini (basé sur l'utilisateur) ou /etc/udev/rules.d/51-android.rules . La syntaxe des deux fichiers diffère :alors que dans le premier cas, il suffit d'ajouter simplement l'identifiant du fournisseur (echo 0x18d1 >> ~/.android/adb_usb.ini pour un Nexus 4), l'entrée de la règle UDEV est un peu plus complexe. Les détails peuvent être trouvés dans la question liée (ou plutôt ses réponses).

Dans le cas de krlmlr, ce n'était pas un "soit-ou", mais apparemment les deux parties étaient nécessaires (je n'avais jamais eu ça auparavant, et je n'ai même jamais utilisé le adb_usb.ini -- mais cela ne veut pas dire qu'il n'y a pas de telles exceptions). En ajoutant l'appareil aux deux endroits (ce qui ne peut pas faire de mal de toute façon), l'appareil est finalement apparu.

Deux remarques supplémentaires :après avoir modifié les règles UDEV, le service UDEV doit être redémarré pour accepter les modifications. Sur Ubuntu, cela peut être fait via sudo service udev restart (alternativement, vous pouvez simplement forcer UDEV à recharger ses règles en utilisant udevadm control --reload-rules ). Si votre appareil n'est toujours pas détecté, il a probablement été branché pendant que vous effectuiez les modifications ; vous devez ensuite déconnecter et reconnecter le câble USB. Bien sûr, Débogage USB doit être activé sur votre appareil :)

Exemple

Basé sur la sortie suivante de lsusb pour l'appareil Android en question :

Bus 002 Device 009: ID 2207:0010  

il a fallu créer /etc/udev/rules.d/51-android.rules comme root avec le contenu suivant :

SUBSYSTEM=="usb", ATTR{idVendor}=="2207", ATTR{idProduct}=="0010", MODE="0660", GROUP="plugdev"

et pour créer ~/.android/adb_usb.ini avec le contenu suivant :

0x2207

Le premier est nécessaire pour autoriser les utilisateurs réguliers (appartenant au groupe plugdev ) pour accéder à l'appareil. Notez le masque d'autorisation 0660 au lieu du 0666 fréquemment vu ce qui est plus faible d'un point de vue de la sécurité (ce dernier permet un accès "monde", tandis que le premier ne permet qu'un accès "utilisateur et groupe"). La seconde est nécessaire pour que adb tente de parler à l'appareil en premier lieu. Après ça :

sudo chmod a+r /etc/udev/rules.d/51-android.rules
sudo udevadm control --reload-rules
adb kill-server

et débranchez+branchez votre appareil Android. Ensuite,

adb devices

a finalement montré l'appareil Android.

Pour mon LG Optimus 4X HD , il suffisait d'ajouter une ligne à /etc/udev/rules.d/51-android.rules :

SUBSYSTEMS=="usb", ATTRS{idVendor}=="1004", ATTRS{idProduct}=="61a6", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"

Peut-être le SYMLINK l'option fait la différence que je n'avais pas besoin de l'entrée supplémentaire dans ~/.android/adb_usb.ini .


Linux
  1. Linux – Configuration `x86_64′ non valide :machine `x86_64′ non reconnue ?

  2. Installer Grub 2 sur Mdadm, quel appareil ?

  3. uflash :commande introuvable

  4. losetup :commande introuvable

  5. sshpass n'est pas reconnu sous Windows

Commande Lsblk sous Linux (liste des périphériques de bloc)

Termux - Exécutez Linux sur des appareils Android, aucun enracinement requis !

Comment détecter et gérer les appareils sous Linux

Comment démarrer un émulateur Android dans Ubuntu 16.04 ?

Table de partition non reconnue par le noyau Linux

Android - Utiliser une tablette Android comme tablette graphique Wacom pour un PC ?