J'utilise un téléphone Samsung Galaxy Nexus ( plateforme Android 4.0 ).
Je développe une application Android sur Ubuntu linux OS. Je souhaite exécuter mon application directement sur le combiné Samsung, j'ai donc effectué les étapes de configuration suivantes:
dans mon
AndroidManifest.xml
dossier de projet , ajoutéandroid:debuggable="true"
à l'<application>
élémentSur l'appareil, dans Paramètres> Sécurité activée Sources inconnues
Sur l'appareil, dans Paramètres> Options développeur, débogage USB activé
Sur mon ordinateur, créé le
/etc/udev/rules.d/51-android.rules
fichier avec le contenu suivant:SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev"
Sur mon ordinateur, exécutez la
chmod a+r /etc/udev/rules.d/51-android.rules
commande
Ensuite, sur mon ordinateur, j'ai ouvert un terminal et exécuté la adb devices
commande, j'ai obtenu:
List of devices attached
???????????? no permissions
Comme je n'ai pas vu mon appareil mais seulement ???????????? no permissions
, j'ai ensuite exécuté les commandes suivantes:
adb kill-server
adb start-server
adb devices
Mais j'ai quand même:
List of devices attached
???????????? no permissions
Pourquoi? Qu'est-ce que je rate?
plugdev
groupe.Réponses:
Ce qui fonctionne pour moi, c'est de tuer et de redémarrer le serveur adb. Sous Linux:
sudo adb kill-server
et puissudo adb start-server
. Ensuite, il détectera presque tous les appareils prêts à l'emploi.la source
-rwxrwxr-x 1 martin martin 156K 2011-11-09 15:40 adb
. Essayez de vous déplacer directement dans le répertoire et de démarrer via "sudo ./adb devices". Si vous pouvez l'exécuter sans sudo, vous devriez pouvoir l'exécuter avec sudo ... Je ne sais pas quel pourrait être votre problème ...adb kill-server
sudo adb start-server
pour vérifier:adb devices
Rien n'a fonctionné pour moi jusqu'à ce que je trouve enfin la réponse ici: http://ptspts.blogspot.co.il/2011/10/how-to-fix-adb-no-permissions-error-on.html
Je copie le texte ici au cas où il disparaîtrait à l'avenir.
Créez un fichier nommé /tmp/android.rules avec le contenu suivant (les numéros de fournisseurs hexadécimaux ont été extraits de la page de liste des fournisseurs):
Exécutez les commandes suivantes:
Débranchez le câble USB entre le téléphone et l'ordinateur.
Rebranchez le téléphone.
Exécutez
adb devices
pour confirmer qu'il a désormais l'autorisation d'accéder au téléphone.Veuillez noter qu'il est possible d'utiliser
, USER="$LOGINNAME"
au lieu de, MODE="0666"
dans le.rules
fichier, en remplaçant$LOGINNAME
votre nom de connexion, c'est-à-dire ce quiid -nu
s'imprime.Dans certains cas, il peut être nécessaire de donner au fichier de règles udev un nom qui trie près de la fin, tel que
z51-android.rules
.la source
70-android.rules
cet article: esausilva.com/2010/05/13/… . Félicitations également pour nous faire savoir que vous devez redémarrerudev
et tuer tous les processus adb. A fonctionné comme un charme!sudo udevadm control --reload-rules
pour actualiser les règles udev si le redémarrage du serveur n'est pas suffisant.Saisissez les commandes suivantes:
adb kill-server
sudo ./adb start-server
adb devices
Le problème est que vous n'utilisez pas le serveur adb en tant que root.
la source
Essayé tout au-dessus, aucun n'a fonctionné .. a finalement fonctionné lorsque je passe connecté du MTP à la caméra (PTP).
la source
Il y a beaucoup de mauvaises réponses postées à cette question, allant de l'insistance à exécuter en
adb
tant queroot
(qui ne doit pas être présentée comme la seule ou même solution recommandée) à la résolution de problèmes complètement indépendants.Voici la recette la plus courte et la plus universelle pour prendre en charge les autorisations pour tous
adb
et lesfastboot
appareils à la fois:Ou vous pouvez utiliser la version un peu plus à ce que j'ai posté essentiel .
Quant à la chose spécifique qu'OP a fait de mal dans sa question - il ne s'agissait pas de recharger les
udev
règles après avoir édité le.rules
fichier.OP n'a pas non plus dit quelle version Android (alias ROM) il avait sur son téléphone. La
idVendor
valeur est définie dans le logiciel et dépend donc de la ROM. La valeur04E8
qu'il a utilisée dans sa règle d'origine n'aurait donc fonctionné que pour les appareils dotés de ROM d'origine Samsung. Mais ce n'est pas un problème pour cetteudev
règle - elle correspond à tous les appareils avecadb
oufastboot
interfaces indépendamment de leur VendorID .la source
Dans Archlinux, cela peut se produire occasionnellement. La solution:
la source
sudo adb kill-server; sudo adb start-server
n'a pas fonctionné mais celui-ci l'a fait.Pour ceux qui utilisent Debian, le guide de configuration d'un périphérique sous Ubuntu pour créer le fichier "/etc/udev/rules.d/51-android.rules" ne fonctionne pas. J'ai suivi les instructions d' ici . Mettre la même chose ici pour référence.
Modifier ce fichier en tant que superutilisateur
Trouvez le texte similaire à celui-ci
Puis changez le mode en 0666 comme ci-dessous
Cela permet à adb de fonctionner, mais nous devons encore configurer l'appareil pour qu'il puisse être reconnu. Nous devons créer ce fichier en tant que superutilisateur,
et entrez
la ligne ci-dessus est pour HTC, suivez la publication de @ grebulon pour la liste complète.
Enregistrez le fichier puis redémarrez udev en tant que super utilisateur
Connectez le téléphone via USB et il devrait être détecté lorsque vous compilez et exécutez un projet.
la source
J'ai eu le même problème, la solution est en tant que boursier: (au fait, vous n'avez pas besoin de rooter votre appareil.)
Prendre plaisir.
la source
su
, utilisezsudo su
. J'ai fait. Et aussi, si vous ne savez pas comment quitter l'utilisateur - utilisezexit
.Je sais que cela pourrait être un peu en retard, mais voici un très bon article sur la façon d'ajouter manuellement le pilote USB Android ADB. Ajout manuel du pilote USB Android ADB dans Ubuntu 14.04 LTS
Modifié pour ajouter du contenu de lien
Pas
Remarque: assurez-vous que vous avez connecté votre appareil Android en mode de débogage USB
Ouvrez le terminal (
CTRL + ALT + T
) et entrez la commande:lsusb
Vous pouvez maintenant obtenir une réponse similaire à ceci:
Bus 002 Device 013: ID 283b:1024
Remarque: En référence à ce
Bus 002 Device 008: ID 283b:1024
{idVendor}==”283b” {idProduct}==”1024″
Entrez maintenant la commande suivante:
sudo gedit /etc/udev/rules.d/51-android.rules
Cela crée le fichier de règles android (
51-android.rules
) ou ouvre celui existant à l'emplacement spécifié (/etc/udev/rules.d
)Ajoutez une nouvelle ligne à ce fichier:
SUBSYSTEM==”usb”, ATTRS{idVendor}==”283b”, ATTRS{idProduct}==”1024″, MODE=”0666″
Remarque Modifiez les
idVendor
&idProduct
valeurs avec les valeurs de votre appareil. Sauver et fermer.Entrez maintenant la commande suivante:
sudo chmod a+rx /etc/udev/rules.d/51-android.rules
- accordez la permission de lecture / exécutionsudo service udev restart
- Redémarrez leudev
serviceMaintenant, nous devons ajouter le
idVendor
àadb_usb.ini
. Entrez les commandes suivantes:cd ~/.android
gedit adb_usb.ini
Ajoutez la valeur suivante
0x283b
Ce n'est rien d'autre que 0x (
idVendor
valeur). Remplacez donc la valeur par. par rapport à la valeur de votre appareil Enregistrez et fermez le fichier.Entrez maintenant la commande suivante:
sudo service udev restart
Débranchez l'appareil Android et reconnectez-le à nouveau.
Entrez maintenant la commande suivante:
adb kill-server
adb devices
Voilà! Votre appareil doit être répertorié.
Copié à partir de l' ajout manuel du pilote USB Android ADB dans Ubuntu 14.04 LTS
A travaillé pour moi.
la source
J'ai eu le même problème avec mon Galaxy S3. Mon problème était que la
idVendor
valeur04E8
n'était pas la bonne. Pour trouver le bon, connectez votre smartphone à l'ordinateur et exécutez-lelsusb
dans le terminal. Il listera votre smartphone comme ceci:Donc, la bonne
idVendor
valeur est18d1
. Et la ligne dans le/etc/udev/rules.d/51-android.rules
doit être:Puis je cours
sudo udevadm control --reload-rules
et tout fonctionne!la source
ATTR{idVendor}=="18d1"
Utiliser les
M0Rf30/android-udev-rules
règles udev maintenues par la communauté GitHubhttps://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules
C'est la liste de règles udev la plus complète que j'ai vue jusqu'à présent, encore plus que celle actuellement recommandée
sudo apt-get install android-tools-adb
dans la documentation officielle , et elle a résolu ce problème pour moi.la source
Remplacez l'ID du fournisseur
0bb4
par18d1
dans/etc/udev/rules.d/51-android.rules
Ou ajoutez une autre ligne qui se lit comme suit:
la source
Lorsque vous redémarrez udev, tuez le serveur adb et démarrez le serveur adb sur le chemin d'installation de sdk android et faites tout sur sudo. puis exécutez les appareils adb, cela résoudra le problème d'autorisation.
la source
Mon appareil est POSITIVO et mon système opérationnel est
Ubuntu 14.04 LTS
donc mon problème était dans le nom de variableJe crée le fichier /etc/udev/rules.d/51-android.rules et je mets
SUBSYSTEM=="usb", SYSFS{idVendor}=="1662", MODE="0666"
J'ai déconnecté l'appareil et exécuté:
après cela, j'ai à nouveau connecté l'appareil Android en mode développeur et
la source
Sans débrancher
Toutes les réponses fournies supposent que vous pouvez débrancher et reconnecter le câble USB. Dans les situations où cela n'est pas possible (par exemple, lorsque vous êtes à distance), vous pouvez faire ce qui suit pour faire essentiellement ce que les règles udev suggérées feraient lors du re-plug:
Trouvez l'appareil qui vous intéresse, par exemple:
Notez le numéro de bus sur lequel il se trouve, puis exécutez-le, par exemple pour le bus
003
:De toute évidence, cela peut être plus permissif que vous ne le souhaitez (il peut y avoir plus d'appareils connectés que celui-ci), mais vous avez l'idée.
la source
udev
règle sans reconnecter l'appareil, utilisez simplement laudevadm trigger --verbose --action=add --subsystem-match=usb
commande.Vous ne devez PAS exécuter le
adb
serveur en tant que root comme le suggèrent d'autres réponses. Au lieu de cela, si vous utilisez Arch Linux, procédez comme suit:android-udev
package avec PacmanRecharger les règles udev:
Ajoutez-vous au
adbusers
groupe, puis déconnectez-vous et connectez-vous:Source: https://wiki.archlinux.org/index.php/android#Configuring_adb
la source
Essayez au lieu d'
GROUP="plugdev"
utiliser le groupe principal de votre utilisateur.la source
Dans mon cas sur ubuntu 12.04 LTS, j'ai dû changer mon mode usb HTC Incredible de charge en média, puis l'appareil est apparu sous adb. Bien sûr, le débogage était déjà activé dans les deux cas.
la source
Veuillez NE PAS suivre les solutions suggérant d'utiliser
sudo
(sudo adb start-server
)! Cela fonctionne adb en tant que root (administrateur) et il n'est PAS censé fonctionner comme ça !!! C'est une mauvaise solution de contournement !Tout ce qui s'exécute en tant que root peut faire quoi que ce soit dans votre système, s'il crée ou modifie un fichier peut changer son autorisation pour être utilisé uniquement par root. Encore une fois, PAS!
La bonne chose à faire est de configurer votre système pour que l'utilisateur ait la permission, consultez ce guide que j'ai écrit sur la façon de le faire correctement.
la source
J'ai eu le même problème et j'ai suivi ces étapes:
Les étapes ci-dessus sont décrites sur android-udev-rules . Ça a marché pour moi.
Assurez-vous simplement de confirmer la boîte de dialogue qui apparaîtra sur l'écran de votre téléphone après l'avoir rebranché.
la source
Cette commande a fonctionné pour moi
la source
J'ai utilisé su et ça a commencé à fonctionner. Lorsque j'utilise Jetbrains avec un utilisateur normal, je vois ce problème mais après avoir redémarré Jetbrains en mode su, je peux voir mon appareil sans rien faire.
J'utilise Ubuntu 13.04 et Jetbrains 12.1.4
la source
Vous pouvez également essayer de modifier le fichier adb_usb.ini , situé dans /home/username/.android/ . Ce fichier contient la liste des fournisseurs d'ID des appareils que vous souhaitez connecter. Vous ajoutez simplement le fournisseur d'ID de votre appareil dans une nouvelle ligne (c'est un identifiant par ligne). Redémarrez ensuite le serveur adb et rebranchez votre appareil.
Cela a fonctionné pour moi sur Ubuntu 12.10.
la source
Quoi qu'il en soit, ce que j'ai fait pour résoudre ce problème (sur Ubuntu ).
Défini dans quels cas j'ai besoin d'exécuter ces commandes. Pour la plupart des utilisateurs d'ubuntu, il existe un dossier de départ (fichier caché
.bashrc
).Dans lequel vous pouvez enregistrer le lancement de ces commandes. Mais ces commandes seront déclenchées lorsque vous entrez la
bash
commande dans la console.Comme j'ai un shell .zshrc, j'ai fait ce qui suit:
console ouverte:
gedit .zshrc
Lorsque le fichier s'ouvre, ajoutez la ligne suivante:
Après ou avant, nous devons créer ce fichier:
.add_device_permissions.sh
dans lequel nous écrivons ce qui suit:Nous devons également créer .permissions_redmi_note où nous devons coder en dur notre mot de passe.
.zshrc
inutile, nous pouvons spécifier le chemin lors du démarrage du système lui-même:Startup Applications Preferences
Où nous appuyons sur "Ajouter" et écrivons notre commande:
/home/vadimm/.add_device_permissions.sh
./adb devices ./adb kill-server sudo ./adb devices ./adb kill-server ./adb devices
la source
Si quelqu'un fait face au message d'erreur suivant lorsqu'il utilise
adb devices
Exécutez ce qui suit
Cela a résolu le problème pour moi sur un appareil Android personnalisé
la source