configurer l'appareil pour le développement???????????? sans autorisations)
j'utilise un téléphone Samsung galaxy nexus ( Android 4.0 plate-forme) .
je développe application Android sur Ubuntu Linux OS. J'aimerais lancer mon application directement sur le dispositif de combiné Samsung, donc j'ai effectué les étapes de configuration suivantes:
-
dans mon projet
AndroidManifest.xml
fichier, ajoutéandroid:debuggable="true"
à<application>
élément -
Sur l'appareil, dans le Paramètres > Sécurité activé Sources Inconnues
-
sur le périphérique, dans le Paramètres > Options du développeur activé débogage USB
-
sur mon ordinateur, a créé le fichier
/etc/udev/rules.d/51-android.rules
avec le contenu suivant:SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev"
-
sur mon ordinateur, lancez la commande
chmod a+r /etc/udev/rules.d/51-android.rules
1519140920"
puis, sur mon ordinateur j'ai ouvert un terminal et exécuté la commande adb devices
, j'ai eu:
List of devices attached
???????????? no permissions
puisque je n'ai pas vu mon appareil mais seulement ???????????? no permissions
, j'exécute alors les commandes suivantes:
adb kill-server
adb start-server
adb devices
Mais j'ai encore:
List of devices attached
???????????? no permissions
pourquoi? Ce qui me manque?
22 réponses
ce qui fonctionne pour moi est de tuer et de redémarrer le serveur adb. Sur linux: sudo adb kill-server
puis sudo adb start-server
. Ensuite, il détectera presque tous les appareils hors de la boîte.
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 dans le futur.
créer un fichier nommé /tmp/android.règles dont le contenu est le suivant (les numéros de fournisseurs hexadécimaux ont été tirés de la page de la liste des fournisseurs):
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1bbb", MODE="0666"
exécuter le suivant commandes:
sudo cp /tmp/android.rules /etc/udev/rules.d/51-android.rules
sudo chmod 644 /etc/udev/rules.d/51-android.rules
sudo chown root. /etc/udev/rules.d/51-android.rules
sudo service udev restart
sudo killall adb
déconnecter le câble USB entre le téléphone et l'ordinateur.
rebranchez le téléphone.
Exécuter adb devices
pour confirmer que maintenant il a 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 fichier .rules
, en substituant $LOGINNAME
à votre nom d'utilisateur, c'est-à-dire ce que id -nu
imprime.
Dans certains cas, il peut être nécessaire de donner les règles udev fichier un nom qui trie près de la fin, comme z51-android.rules
.
entrez les commandes suivantes:
adb kill-server
sudo ./adb start-server
adb devices
le problème est que votre serveur adb ne fonctionne pas en tant que root.
essayé tout ci-dessus, aucun n'a fonctionné .. finalement ça a marché quand je suis passé de MTP à Camera(PTP).
il y a beaucoup de mauvaises réponses à cette question allant de l'insistance sur le fait d'utiliser adb
comme root
(qui ne devrait pas être présentée comme la seule ou même solution recommandée) à la résolution de questions complètement sans rapport.
Voici la recette la plus courte et la plus universelle pour prendre soin des permissions pour tous les adb
et fastboot
dispositifs à la fois:
echo 'ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:ff420?:*", MODE="0666"' | sudo tee /etc/udev/rules.d/99-android.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --verbose --action=add --subsystem-match=usb
ou vous pouvez utiliser la version légèrement plus longue que j'ai posté à ce gist .
quant à la chose spécifique que OP a mal faite dans sa question - il ne rechargeait pas les règles udev
après avoir édité le fichier .rules
.
aussi OP n'a pas dit Quelle Construction Android (aka ROM) il avait sur son téléphone. La valeur idVendor
est définie dans le logiciel et dépend donc de la ROM. Ainsi, la valeur de 04E8
il a utilisé dans sa règle d'origine aurait fonctionné que pour les appareils avec Samsung stock ROMs. Mais ce n'est pas un problème pour cette udev
règle - il correspond à tous les dispositifs avec adb
ou fastboot
interfaces indépendamment de leur VendorID .
dans Archlinux cela peut arriver de temps en temps. Le correctif:
$ sudo -s
# adb kill-server
# adb start-server
pour ceux qui utilisent debian, le guide pour configurer un périphérique sous Ubuntu pour créer le fichier "/etc/udev/rules.D / 51-android.règles" ne fonctionne pas. J'ai suivi les instructions de ici . Je note la même chose pour référence.
modifier ce fichier comme superuser
sudo nano /lib/udev/rules.d/91-permissions.rules
trouver le texte similaire à ce
# usbfs-like devices
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, \ MODE=”0664″
puis changer le mode en 0666 comme ci-dessous
# usbfs-like devices
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, \ MODE=”0666″
cela permet à adb de fonctionner, mais nous avons encore besoin de configurer l'appareil pour qu'il puisse être reconnu. Nous devons créer ce fichier comme superuser,
sudo nano /lib/udev/rules.d/99-android.rules
et inscrivez
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, ATTRS{idVendor}==”0bb4″, MODE=”0666″
la ligne ci-dessus est pour HTC, suivez @grebulon post pour la liste complète.
Enregistrer le fichier, puis redémarrer udev comme super-utilisateur
sudo /etc/init.d/udev restart
connecter le téléphone via USB et il doit être détecté lors de la compilation et d'exécuter un projet.
j'ai eu le même problème, la solution est comme fellow: (soit dit en passant, vous n'avez pas à racine votre appareil.)
- Tapez "su" pour passer en super utilisateur.
- votre chemin/adb kill-server.
- votre chemin/adb start-server.
- Si aucune erreur ne se produit, vous pouvez voir la liste des périphériques avec "votre chemin/adb devices" dans le compte root.
- quitte super-utilisateur.
- Maintenant vous pouvez exécutez "adb devices" dans votre compte.
de Profiter de.
j'ai eu le même problème avec ma galaxie S3.
Mon problème était que la valeur idVendor
04E8
n'était pas la bonne.
Pour trouver le bon, connectez votre smartphone à l'ordinateur et lancez lsusb
dans le terminal. Il affichera votre smartphone comme ceci:
Bus 002 Device 010: ID 18d1:d002 Google Inc.
ainsi la droite idVendor
valeur est 18d1
. Et la ligne dans le /etc/udev/rules.d/51-android.rules
:
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
puis j'exécute sudo udevadm control --reload-rules
et tout a fonctionné!
je sais que cela pourrait être un peu en retard, mais voici un très bon article sur la façon d'ajouter manuellement ADB pilote USB Android. ajouter manuellement Android ADB pilote USB dans Ubuntu 14.04 LTS
modifié pour ajouter le contenu du lien
Étapes
Note: assurez-vous que vous avez connecté votre appareil Android dans le débogage USB mode
ouvrir le terminal ( CTRL + ALT + T
) et entrer la commande:
lsusb
Maintenant, vous pourriez obtenir une réponse similaire à cette:
Bus 002 Device 013: ID 283b:1024
Note:
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 ouvrir la position existante à l'emplacement spécifié ( /etc/udev/rules.d
)
ajouter une nouvelle ligne à ce fichier:
SUBSYSTEM==”usb”, ATTRS{idVendor}==”283b”, ATTRS{idProduct}==”1024″, MODE=”0666″
Note Edit idVendor
& idProduct
valeurs avec les valeurs de votre périphérique.
Enregistrer et fermer.
entrez maintenant la commande suivante:
sudo chmod a+rx /etc/udev/rules.d/51-android.rules
- autorisation de lecture/exécution
sudo service udev restart
- redémarrer le udev
service
maintenant nous devons ajouter le idVendor
à adb_usb.ini
. Entrer les commandes suivantes:
cd ~/.android
gedit adb_usb.ini
Ajouter la valeur suivante
0x283b
ce n'est rien mais 0x (valeur idVendor
). Alors remplacez la valeur par. respect de 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 rebranchez-le.
Maintenant, entrez la commande suivante:
adb kill-server
adb devices
voilà! Votre appareil doit être répertorié.
copié de ajouter manuellement Android ADB Pilote USB en Ubuntu 14.04 LTS
travaillait pour moi.
- suivez les instructions à http://developer.android.com/guide/developing/device.html
- remplacer le numéro d'identification du vendeur de "0bb4" par "18d1" dans /etc/udev/rules.D / 51-android.règle. Ou ajouter une autre ligne qui lit: Sous-système = = "usb", SYSFS{idVendor} = = "18d1", MODE= "0666"
- redémarrer l'ordinateur ou tout simplement redémarrer le service udev.
Lorsque vous redémarrez udev, tuer adb server & start bad serveur goto android sdk chemin d'installation & de faire tout sur sudo. ensuite, exécutez les périphériques adb il résoudra le problème de permission.
mon appareil est POSITIVO et mon système opérationnel est Ubuntu 14.04 LTS
Donc, mon problème était dans le nom variable
je crée le fichier /etc/udev/rules.D / 51-android.règle
et mettre SUBSYSTEM=="usb", SYSFS{idVendor}=="1662", MODE="0666"
dispositif déconnecté et exécuter:
$ sudo udevadm control --reload-rules
$ sudo service udev restart
après cela, j'ai à nouveau connecté l'appareil android en mode développeur et
$ adb devices
List of devices attached
1A883XB1K device
sans débranchement
toutes les réponses fournies supposent que vous êtes en mesure de débrancher et reconnecter le câble USB. Dans les situations où cela n'est pas possible (par exemple, lorsque vous êtes distant), vous pouvez faire ce qui suit essentiellement faire ce que les règles udev suggérées feraient sur re-plug:
lsusb
trouvez l'appareil qui vous intéresse, par exemple:
Bus 003 Device 005: ID 18d1:4ee4 Google Inc. Nexus
prendre note du numéro du bus sur lequel il se trouve et ensuite l'exécuter, p.ex. pour bus 003
:
sudo chmod a+w /dev/bus/usb/003/*
il est clair que cela peut être plus permissif que vous le voulez (il peut y avoir plus d'appareils attachés que celui-ci), mais vous avez l'idée.
Essayez au lieu de GROUP="plugdev"
utilisez le groupe principal de votre utilisateur.
GitHub communauté maintenu udev-règles
https://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 vu jusqu'à présent, encore plus que le actuellement recommandé sudo apt-get install android-tools-adb
sur la documentation officielle , lui donner un essai.
vous ne devez pas exécuter adb
server comme root comme d'autres réponses le suggèrent. Au lieu de cela, si vous utilisez Arch Linux faire ce qui suit:
- installez le paquet
android-udev
avec Pacman -
Recharger les règles udev:
# udevadm control --reload-rules
-
ajoutez-vous au groupe
adbusers
, puis déconnectez-vous et connectez-vous:# usermod -aG adbusers $LOGNAME
Source: https://wiki.archlinux.org/index.php/android#Configuring_adb
s'il vous Plaît NE suivez PAS les solutions, ce qui suggère d'utiliser sudo
( sudo adb start-server
)! Ceci exécute adb en tant que root (administrateur) et il N'est pas censé fonctionner comme ça!!! c'est une mauvaise solution !
Tout ce qui s'exécute en tant que root peut faire n'importe quoi dans votre système, s'il crée ou modifie un fichier peut changer sa permission pour être utilisé seulement par root. Encore une fois, NE le faites PAS!
Le la bonne chose à faire est mis en place votre système pour rendre L'utilisateur ont la permission, Vérifiez ce guide j'ai écrit sur la façon de le faire correctement.
dans mon cas sur ubuntu 12.04 LTS, j'ai dû changer mon HTC Incredible usb mode de charge aux médias et puis l'appareil est apparu sous adb. Bien sûr, le débogage était déjà dans les deux cas.
j'ai utilisé su et il a commencé à fonctionner. Quand j'utilise Jetbrains avec l'Utilisateur régulier, 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
vous pouvez aussi essayer d'éditer adb_usb.fichier ini , situé à /home/username/.android / . Ce fichier contient la liste des périphériques que vous souhaitez connecter. Vous ajoutez simplement votre appareil id du vendeur en ligne (c'est un id par ligne). Puis redémarrez le serveur adb et relogez votre appareil.
cela a fonctionné pour moi sur Ubuntu 12.10.
si quelqu'un fait face au message d'erreur suivant lorsqu'il utilise adb devices
no permissions (verify udev rules); see [http://developer.android.com/tools/device.html]
Exécuter
sudo -s
adb kill-server
adb start-server
qui a fixé la question pour moi sur un appareil android sur mesure