configurer l'appareil pour le développement (???????????? sans autorisations)
J'utilise un Samsung galaxy nexus téléphone (Android 4.0 plate-forme) .
Je développe une application Android sur Ubuntu linux OS. Je voudrais lancer ma candidature directement sur le Samsung combiné de l'appareil, j'ai donc effectué les étapes de configuration suivantes:
-
dans mon projet
AndroidManifest.xml
fichier, ajoutéandroid:debuggable="true"
à la<application>
élément -
Sur l'appareil, dans le Paramètres > Sécurité activé sources Inconnues
-
Sur l'appareil, dans le Paramètres > options pour les Développeurs activé débogage USB
-
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 le
chmod a+r /etc/udev/rules.d/51-android.rules
commande
Puis, sur mon ordinateur, j'ai ouvert un terminal et exécuter l' adb devices
commande, j'ai eu:
List of devices attached
???????????? no permissions
Puisque je n'ai pas mon appareil mais uniquement ???????????? no permissions
, je puis exécutez 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?
- après exectuing adb kill-server u ne reçois le message que * non-exécution du démon. en commençant maintenant sur le port 5037 * * démon lancé avec succès * --- si ce n'est essayer jusqu'à u obtenir ce msg
- Essayez de vérifier que l'utilisateur est en
plugdev
groupe. - Run =>sudo adb start-server (Utiliser l'accès root pour exécuter bad)
- j'ai enfin trouvé la solution qui a fonctionné pour moi dans ce lien github.com/snowdream/51-android
Vous devez vous connecter pour publier un commentaire.
Ce qui fonctionne pour moi est de tuer et de commencer la bad serveur à nouveau. Sur linux:
sudo adb kill-server
et puissudo adb start-server
. Ensuite, il permet de détecter presque tous les appareils hors de la boîte.sudo /opt/android/platform-tools/adb devices
-rwxrwxr-x 1 martin martin 156K 2011-11-09 15:40 adb
. Essayez de déplacer le répertoire directement et de commencer par "sudo ./adb devices". Si vous pouvez l'exécuter sans sudo, vous devriez être en mesure de le lancer avec sudo... je ne suis pas sûr de ce que votre problème peut être...adb kill-server
sudo adb start-server
à vérifier:adb devices
Rien n'a fonctionné pour moi jusqu'à ce que j'ai finalement trouvé la réponse ici:
http://ptspts.blogspot.co.il/2011/10/how-to-fix-adb-no-permissions-error-on.html
Je suis de copier le texte ici au cas où elle disparaît dans l'avenir.
Créer un fichier nommé /tmp/android.règles avec le contenu suivant (hex vendeur numéros ont été prises à partir de la liste des fournisseurs de page):
Exécutez les commandes suivantes:
Débranchez le câble USB entre le téléphone et l'ordinateur.
Reconnecter 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.rules
fichier, la substitution$LOGINNAME
pour votre nom de connexion, c'est à dire ce queid -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
.70-android.rules
que par ce post: esausilva.com/2010/05/13/.... Aussi bravo de nous faire savoir que vous avez à redémarrerudev
et de tuer tous les bad processus. A travaillé comme un charme!sudo udevadm control --reload-rules
à l'actualisation des règles udev si le fait de redémarrer le serveur n'est pas assez.SUBSYSTEM=="usb", ATTRS{idVendor}=="1bbb", MODE="0666"
Entrez les commandes suivantes:
adb kill-server
sudo ./adb start-server
adb devices
La question est de ne pas l'exécution de la bad serveur en tant que root.
Essayé tous les ci-dessus, aucune n'a fonctionné .. enfin quand je switch connecté en tant que de MTP pour Appareil photo(PTP).
Il y a beaucoup de mauvaises réponses postées à cette question, allant d'insister sur l'exécution de
adb
commeroot
(qui ne devrait pas être présenté comme la seule ou même la solution recommandée) pour résoudre complètement les problèmes sans rapport.Ici est le plus court et le plus de recette universelle pour la prise en charge des autorisations pour tous les
bad
etfastboot
appareils à la fois:Ou vous pouvez employer un peu plus de la version que j'ai posté à ce gist.
Comme pour la chose spécifique que l'OP fait de mal dans sa question - il n'était pas le rechargement de la
udev
règles après l'édition de la.rules
fichier.Aussi l'OP n'a pas dit qui Android build (aka ROM), il avait sur son téléphone. Le
idVendor
valeur est définie dans le logiciel et, par conséquent, il dépend de la ROM. Ainsi, la valeur de04E8
qu'il utilise dans ses règles d'origine ont travaillé uniquement pour les appareils avec Samsung stock Rom. 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.Dans Archlinux cela peut arriver de temps en temps. Le correctif:
sudo adb kill-server; sudo adb start-server
n'ai pas de travail mais celui-ci fait.Pour ceux qui utilisent debian, le guide pour la mise en place d'un dispositif 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. Mettre la même chose ici pour référence.
Modifier ce fichier en tant que superutilisateur
Trouver le texte similaire à ce
Puis modifiez le mode 0666 comme ci-dessous
Cela permet à la bad pour le travail, mais nous avons encore besoin de configurer l'appareil de sorte qu'il peut être reconnu. Nous avons besoin de créer ce fichier en tant que superutilisateur,
et entrez
la ligne ci-dessus est pour HTC, suivez @grebulon post pour la liste complète.
Enregistrez le fichier et redémarrez udev en tant que super-utilisateur
Connecter le téléphone via USB, et il doit être détecté lorsque vous compilez et exécutez un projet.
J'ai eu le même problème, la solution est aussi fellow: (en passant, vous n'avez pas à la racine de votre périphérique.)
Profiter.
su
, utilisezsudo su
. Je l'ai fait. Et aussi, si vous ne savez pas comment faire pour cesser de l'utilisateur - utilisationexit
.Je sais que cela pourrait être un peu tard, mais voici un très bon article sur comment ajouter manuellement Android ADB USB Driver. Ajouter manuellement Android ADB USB driver dans Ubuntu 14.04 LTS
Édité pour Ajouter un Lien Contenu
Étapes
Remarque: assurez-vous que vous avez connecté votre appareil Android en Débogage USB mode
Ouvrir un terminal (
CTRL + ALT + T
) et entrez la commande:lsusb
Maintenant, vous pourriez obtenir une réponse similaire à ceci:
Bus 002 Device 013: ID 283b:1024
Remarque:
Avec référence à la présente
Bus 002 Device 008: ID 283b:1024
{idVendor}==”283b”
{idProduct}==”1024″
Maintenant, entrez la commande suivante:
sudo gedit /etc/udev/rules.d/51-android.rules
Cela crée de l'android fichier de règles (
51-android.rules
) ou ouvrir l'un à 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 Modifier
idVendor
&idProduct
valeurs avec votre appareil de valeurs.Enregistrer et fermer.
Maintenant, entrez la commande suivante:
sudo chmod a+rx /etc/udev/rules.d/51-android.rules
- subvention de lecture/exécution de l'autorisationsudo service udev restart
- Redémarrer leudev
serviceMaintenant, nous devons ajouter les
idVendor
àadb_usb.ini
. Entrez les commandes suivantes:cd ~/.android
gedit adb_usb.ini
Ajoutez la valeur suivante
0x283b
Ce n'est rien, mais 0x(
idVendor
valeur). Afin de remplacer la valeur avec. respect pour votre appareil de valeurEnregistrez et fermez le fichier.
Maintenant, entrez la commande suivante:
sudo service udev restart
Fiche de l'appareil Android, et de le reconnecter à nouveau.
Maintenant, entrez la commande suivante:
adb kill-server
adb devices
Là vous allez! Votre appareil doit être répertorié.
Copié À Partir De Ajouter manuellement Android ADB USB driver dans Ubuntu 14.04 LTS
A fonctionné pour moi.
J'ai eu le même problème avec mon Galaxy S3.
Mon problème était que la
idVendor
valeur04E8
n'était pas le bon.Pour trouver le droit de connecter votre smartphone à votre ordinateur et lancez
lsusb
dans le terminal. Il donnera la liste de votre smartphone comme ceci:De sorte que le droit
idVendor
valeur est18d1
. Et la ligne dans le/etc/udev/rules.d/51-android.rules
doit être:Puis-je exécuter
sudo udevadm control --reload-rules
et tout a fonctionné!ATTR{idVendor}=="18d1"
Ou ajouter une autre ligne qui se lit comme suit:
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
Utiliser le
M0Rf30/android-udev-rules
GitHub communauté maintenu udev-règleshttps://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules
C'est le plus complet udev-liste de règles que j'ai vu jusqu'à présent, encore plus que le traitement actuellement recommandé
sudo apt-get install android-tools-adb
sur la documentation officielle, et il a résolu le problème pour moi.Lorsque vous redémarrez udev, tuer adb server & début de la bad serveur goto android sdk chemin d'installation & faire sur sudo. ensuite, exécutez la bad appareils, il va résoudre un problème d'autorisation.
Mon appareil est POSITIVO et mon système d'exploitation est
Ubuntu 14.04 LTS
Donc, mon problème est dans le nom de la variable
J'ai créer le fichier /etc/udev/rules.d/51-android.les règles
et mettre
SUBSYSTEM=="usb", SYSFS{idVendor}=="1662", MODE="0666"
J'ai déconnecté l'appareil
et de l'exécuter:
après ce que j'ai connecté l'appareil android en mode développeur de nouveau et
Sans débrancher
Toutes les réponses supposent que vous êtes en mesure de débrancher et rebrancher le câble USB. Dans les situations où cela n'est pas possible (par exemple, lorsque vous êtes à distance), vous pouvez effectuer les opérations suivantes pour essentiellement faire ce que l'ont suggéré les règles udev sur la re-prise:
Trouver l'appareil qui vous intéresse, par exemple:
Prendre en note le numéro de l'autobus c'est sur, et puis l'exécuter, par exemple pour les bus
003
:Clairement ce qui peut être plus permissive que vous voulez (il y a peut être plus de périphériques connectés que ce soit), mais vous obtenez l'idée.
udev
règle sans reconnexion de l'appareil, juste utiliserudevadm trigger --verbose --action=add --subsystem-match=usb
de commande.Vous ne devez PAS exécuter
adb
serveur en tant que root comme d'autres réponses sont ce qui suggère. Au lieu de cela, si vous utilisez Arch Linux, procédez de la manière suivante:android-udev
paquet avec PacmanRecharger des règles udev:
Vous ajouter à
adbusers
groupe et puis déconnectez-vous et connectez-vous:Source: https://wiki.archlinux.org/index.php/android#Configuring_adb
Essayez plutôt de
GROUP="plugdev"
utiliser le groupe principal de l'utilisateur.Dans mon cas sur ubuntu 12.04 LTS, j'ai dû changer mon HTC Incredible mode usb de charge pour les Médias et l'appareil a montré jusqu'en vertu de la bad. Bien sûr, le débogage était déjà dans les deux cas.
Veuillez NE suivent PAS de solutions, ce qui suggère d'utiliser
sudo
(sudo adb start-server
)! Ce run bad en tant que root (administrateur) et il n'est PAS censé fonctionner comme ça!!! C'est une MAUVAISE solution de contournement!Tout ce qui fonctionne en tant que root peut faire n'importe quoi dans votre système, s'il crée ou modifier un fichier peut changer son autorisation pour être utilisés uniquement par root. Encore une fois, NE PAS!
La bonne chose à faire est de configurer votre système pour permettre à l'UTILISATEUR d'avoir la permission, découvrez ce guide j'ai écrit sur la façon de le faire correctement.
J'ai utilisé de la ligue et il a commencé à travailler. Lorsque j'utilise Jetbrains avec un utilisateur normal, je vois ce problème, mais après le redémarrage de Jetbrains en mode su, je peux voir mon appareil sans rien faire.
J'utilise Ubuntu 13.04 et Jetbrains 12.1.4
Vous pouvez également essayer d'édition adb_usb.ini fichier, situé à /home/username/.android/. Ce fichier contient l'id de fournisseur de la liste des appareils que vous souhaitez connecter. Vous ajoutez simplement votre appareil id du vendeur en ligne (c'est un id par ligne). Redémarrez bad serveur et de le rebrancher votre appareil.
Cela a fonctionné pour moi sous Ubuntu 12.10.
De toute façon, ce que j'ai fait pour résoudre ce problème(sur Ubuntu).
Définis dans ce cas j'ai besoin pour exécuter ces commandes. Pour la plupart des utilisateurs d'ubuntu il y a un dossier d'accueil (fichier caché
.bashrc
).Dans laquelle vous pouvez enregistrer le lancement de ces commandes. Mais ces commandes sera déclenché lorsque vous entrez le
bash
de commande dans la console.Depuis que j'ai un shell .zshrc puis j'ai fait la suivante:
ouvrez la console:
gedit .zshrc
Lorsque le fichier s'ouvre, ajoutez la ligne suivante:
Après ou avant de, nous avons besoin de créer ce fichier:
.add_device_permissions.sh
dans lequel nous écrire ce qui suit:Aussi nous avons besoin de créer .permissions_redmi_note où nous avons besoin de coder en dur, notre mot de passe.
.zshrc
inutiles, nous pouvons spécifier le chemin d'accès lors du démarrage du système lui-même:Startup Applications Preferences
Où nous appuyer sur "Ajouter" et d'écrire notre commande:
/home/vadimm/.add_device_permissions.sh
./adb devices
./adb kill-server
sudo ./adb devices
./adb kill-server
./adb devices
Si quelqu'un fait face à la message d'erreur suivant lorsqu'ils utilisent
adb devices
Exécutez les opérations suivantes
Qui a résolu le problème pour moi sur une version personnalisée d'android appareil