web-dev-qa-db-fra.com

Erreur 'autorisations insuffisantes' sur la commande `adb Push` le 12.04

Quand j'ai essayé d'insérer mon fichier apk dans une tablette, j'ai eu cette erreur, aidez-moi s'il vous plaît.

adb server is out of date.  killing... 
* daemon started successfully * 
error: insufficient permissions for device.

Merci d'avance pour l'aide.

57

J'ai vu cette même erreur parfois sur Ubuntu. Une solution de contournement pour cela consiste à exécuter adb avec la commande Sudo. Par exemple, si vous appuyez sur app.apk sur sdcard, la commande sera

Sudo adb Push app.apk /mnt/sdcard

Assurez-vous également que vous avez sélectionné le mode "Débogage USB" dans les paramètres de l'application (dans Gingerbread) ou dans la section Développement (dans SandCream Sandwich et supérieur). Si adb est déjà en cours d'exécution, vous devez d'abord le tuer avec la commande Sudo adb kill-server

J'espère que cela aidera.

21
Anwar

J'ai rencontré ce même problème. Ajouter une règle udev comme indiqué ici a fait le tour suivant:

Connectez-vous en tant qu'utilisateur root, créez un fichier /etc/udev/rules.d/51-Android.rules et ajoutez une ligne comme celle-ci pour accorder des autorisations à quiconque appartenant au groupe plugdevname__:

SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"

Dans cet exemple, l'ID du fournisseur est HTC. Vous devez utiliser l'ID de fournisseur de votre périphérique. Pour l'obtenir, exécutez lsusbet recherchez une ligne comme celle-ci.

Bus 002 Device 009: ID 2a47:9e18

Dans cet exemple, votre identifiant de fournisseur serait 2a47, vous devrez donc remplacer 0bb4 par 2a47. La ligne correcte se lirait donc comme suit:

SUBSYSTEM=="usb", ATTR{idVendor}=="2a47", MODE="0666", GROUP="plugdev"

Maintenant, attribuez des autorisations de lecture sur les fichiers, rechargez udev et rechargez le démon adb:

Sudo chmod a+r /etc/udev/rules.d/51-Android.rules
Sudo udevadm control --reload-rules
adb kill-server
adb start-server

Vous devrez peut-être déconnecter et reconnecter votre appareil au port USB.

60
erjoalgo

La réponse de Jorch914 sur StackOverflow a résolu ce problème pour moi:

Ok, donc j'ai finalement trouvé le problème, apparemment sur cet appareil, vous devez configurer pour vous connecter en tant qu'appareil photo (même après le débogage USB est déjà activé)

enter image description here

Aussi ce lien décrit le processus d'installation

20
kas

Ces deux commandes simples ont résolu le problème pour moi:

adb kill-server
adb start-server

Notez que contrairement à réponse du semi-débutant je n'ai pas besoin de Sudo.

12
Nicolas Raoul

Je viens de parcourir le même problème, mais voici comment j'ai pu le lire:

  • vous devez tuer le serveur adb existant en lançant la commande suivante: adb kill-server (peut-être faux, mais je l'ai émis avec AND sans Sudo
  • démarrez le serveur adb avec les autorisations appropriées en émettant: Sudo adb start-server
  • le tour est joué vous savez peut-être exécuter toutes les commandes dont vous avez besoin

Je ne sais pas si vous savez, mais il existe un package qui inclut adb. Je mentionne cela parce que j'ai remarqué que vous obtenez une référence à une version plus ancienne de adb. Vous pouvez installer le système en tapant ce qui suit dans votre ligne de commande: Sudo apt-get install Android-tools-adb

J'espère que ça aide.

10
semi-newbie

Aujourd'hui, j'ai rencontré l'erreur insufficient permissions for device alors que adbfonctionnait comme prévu quelques minutes auparavant. Maintenant je reçois:

$ adb devices
List of devices attached 
????????????    no permissions

$ adb Shell
error: insufficient permissions for device

Peu de temps avant de rencontrer l'erreur, j'avais désactivé Media device (MTP), car je pensais que je n'aurais pas besoin d'utiliser MTPname__. Cependant, il semble que le débogage USB, ou au moins certaines commandes adbname__, nécessitent que Media device (MTP) soit activé.

Pour activer Media device (MTP) sur Android 4.4, accédez à:

Settings
Storage
The "..." menu (in the upper right corner)
USB computer connection
Media device (MTP)

Lorsque MTPest désactivé, lsusbindique ce qui suit:

Bus 002 Device 071: ID [idVendor1]:[idProduct1] Google Inc.

Après avoir activé MTPname__, lsusb affiche les informations suivantes:

Bus 002 Device 072: ID [idVendor2]:[idProduct2] [idVendor string]

IdVendor et idProduct changent, selon que MTPest activé ou non.

Je ne suis pas un expert Android. Il est donc possible que le comportement ci-dessus soit spécifique à mon modèle de téléphone.

2
mpb

Encore une autre possibilité: le partage de connexion USB entre également en conflit avec adb. Le désactiver résout le problème pour moi.

0
张实唯

La réponse à ce problème se trouve ici: https://github.com/snowdream/51-Android

En tant que développeur Android, je vous suggère de ne PAS utiliser "Sudo" pour forcer l'utilisation de adb n'importe où. Ce n'est pas ce que nous devrions faire. Les règles, les politiques et les restrictions sont là pour notre propre sécurité.

0
Pavlos Theodorou

J'ai le même problème et j'ai résolu le problème en ajoutant le chemin de your_Android_sdk_path à la variable d'environnement, comme

Sudo export $PATH:/your_Android_sdk_path/platform-tools/adb

vous pouvez ajouter cela à votre compte ou à l'ensemble du système en modifiant ces fichiers fichier ~/.bashrc ou ~/.profile ou /etc/profile, /etc/bash.bashrc, or /etc/environment si vous souhaitez ajouter un accès à l'ensemble du système.

puis créer le lien de cela dans bin

Sudo ln -s /your_Android_sdk_path/platform-tools/adb /bin/adb

si vous avez utilisé des périphériques adb ou une commande, commencez par tuer le serveur comme

adb kill-server

puis démarrez le serveur comme

adb start-server
adb devices

vous pouvez maintenant voir que vos appareils sont listés correctement sans problème

0
Naval Kishor Jha

Cela pourrait venir d'une autre raison. Je viens de recevoir cette erreur en essayant d'installer un apk sur le périphérique:

$ adb install platforms/Android/build/outputs/apk/Android-armv7-release.apk 
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
error: insufficient permissions for device
- waiting for device -

C'est arrivé parce que l'appareil n'était pas prêt sur le mode correct. L'appareil partageait sa connexion 4G via USB.

On peut le savoir comme ça:

$ adb devices -l
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *

33332EF19F3D00EC       no permissions usb:1-1.2

Il suffisait donc de désactiver le partage de connexion sur le téléphone et de recommencer.

En général, assurez-vous d'avoir le résultat suivant via la commande adb device avant d'essayer de transférer des fichiers sur le périphérique

$ adb devices -l
List of devices attached
33332EF19F3D00EC       device usb:1-1.2

Dans ces cas, pas besoin de tuer ou de redémarrer le serveur adb.

Il en serait probablement de même si vous avez monté l'appareil pour le transfert de données via USB

0
Rémi B.

J'ai eu le même problème et j'ai reçu des autorisations insuffisantes. Ce que j'ai fait a été de révoquer les autorisations USB pour mon ordinateur portable. Puis arrêté et commencé le débogage USB. Rebranchez-le à l'ordinateur portable et accordez des autorisations de débogage USB.

0
Les Labbauf