Android: adb: autorisation refusée


91

Tout ce que je tape après adb shellavoir échoué avec Permission denied:

D:\android-sdk-windows\platform-tools>adb shell find /data -name *.db
find: permission denied

D:\android-sdk-windows\platform-tools>adb shell test
test: permission denied

D:\android-sdk-windows\platform-tools>adb remount
remount failed: No such file or directory

Des idées?


Où essayez-vous d'exécuter le shell adb, dans l'émulateur ou l'appareil cible; si sur l'appareil cible, vous ne pouvez pas accéder au dossier / data tant que vous n'avez pas l'autorisation root.
Vamsi

20
après adb root>> adbd cannot run as root in production buildsque faire?
d.popov

3
Je suppose que vous avez besoin d'un téléphone enraciné pour pouvoir l'exécuter
Caner

Oui je sais. Mais, comme vous le voyez actuellement, je n'ai pas la réputation de commenter le message de l'auteur, mais j'ai eu ce problème, donc le seul moyen était d'ajouter un nouveau message, ou d'ouvrir un fil en double, j'ai donc décidé d'ajouter un message.
d.popov

1
le téléphone est enraciné, mais un problème est survenu avec le système d'exploitation. Il était gelé après le chargement de l'écran d'accueil au redémarrage. Quoi qu'il en soit - nandroid clignotant le téléphone avec la ROM d'origine a résolu le problème.
d.popov

Réponses:


129

Selon adb help:

adb root                     - restarts the adbd daemon with root permissions

Ce qui a en effet résolu le problème pour moi.


2
Vous devrez également activer l'accès root pour adb si vous ne l'avez pas déjà fait - voir la réponse de @ Macarse.
Paul Whittaker

En fait, le problème immédiat est qu'android n'est toujours pas livré avec une findcommande (deux ans après votre écriture) . Cela dit, sans adb s'exécutant en tant que root, il est vrai que vous ne pourrez pas non plus descendre la partition / data avec une autre commande (bien que vous puissiez toujours accéder à des emplacements explicites).
Chris Stratton

1
Ce n'est pas vrai. Il vous suffit de passer au bon utilisateur. Voir ma réponse ci-dessous: stackoverflow.com/a/38292436/342947
Fabian Zeindl

2
Votre réponse n'est pas claire. Ce commentaire doit-il être exécuté sur l'appareil ou sur l'ordinateur?
Sauron

20
adbd cannot run as root in production buildsest ce que vous obtenez lorsque vous courez adb root. Il s'agit d'une installation récente de MacOS avec le SDK Android à jour. Je ne pense pas que cette réponse soit correcte du tout, et j'ai vu d'autres personnes mentionner ce problème. Pourquoi tant de votes positifs?
Andrew Koster le

39

Sans root: si vous ne pouvez pas rooter votre téléphone, utilisez la run-as <package>commande pour pouvoir accéder aux données de votre application.

Exemple:

$ adb exec-out run-as com.yourcompany.app ls -R /data/data/com.yourcompany.app/

exec-out exécute la commande sans démarrer un shell et modifier la sortie.


9
Cela ne fonctionne que pour les applications conçues pour être déboguables, c'est-à-dire que vous pouvez l'utiliser pour les applications que vous développez, mais cela ne devrait pas fonctionner pour les versions de production de votre application ou des applications de quelqu'un d'autre.
Chris Stratton

2
Cela revient run-as: Could not set capabilities: Operation not permittedpour moi
Tom M

Cela fonctionne pour l'API de l'émulateur 29, et n'oubliez pas de mettre le .debugpréfixe à la fin du package de l'application pour les applications de débogage:
ultra

19

La raison de "permission refusée" est que votre machine Android n'a pas été correctement rootée. Avez-vous vu $après avoir commencé adb shell? Si vous aviez correctement rooté votre machine, vous l'auriez vu à la #place.

Si vous voyez le $, essayez d'entrer en mode Super utilisateur en tapant su. Si Root est activé, vous verrez le #- sans demander le mot de passe.


2
Une fois que vous avez correctement rooté votre machine, vous devrez avoir activé l'accès root adb et exécuter adb en mode root avant que votre suétape puisse fonctionner - voir les réponses de @ Macarse et @ Roman.
Paul Whittaker

1
Non. La raison de "permission refusée" est qu'il n'y a pas de findcommande.
Chris Stratton

@ChrisStratton Vous m'avez sauvé la vie, j'écrivais déjà une commande shell depuis l'intérieur du shell
adb

1
J'essaye de voir les fichiers dans le simulateur Android. Je tape 'su' après le '$' et il dit: su: not found
Pete Alvin

5

Vous devrez peut-être activer adb root dans le menu des paramètres du développeur. Si vous exécutez à adb rootpartir de la ligne cmd, vous pouvez obtenir:

root access is disabled by system setting - enable in settings -> development options

Une fois que vous avez activé l'option root (ADB uniquement ou Apps et ADB) adb redémarrera et vous pourrez utiliser root à partir de la ligne cmd.


3
Si vous ne voyez pas l'élément "Options du développeur" dans votre menu Paramètres, consultez cette réponse pour savoir comment le rendre visible. (En bref: Paramètres> À propos du téléphone> Numéro de build> Appuyez 7 fois (!).)
Paul Whittaker

1
Mais une fois dedans, je ne vois rien ici! Que devrait-il dire?
JohnyTex

35
Cette option n'existe pas dans les versions Android en stock - si elle existe, elle serait limitée à la ROM secondaire de quelqu'un.
Chris Stratton

Existe-t-il un moyen de faire cela sans interface graphique? Je suppose qu'il y a une option pour cela /system/build.prop, mais je ne peux pas le trouver.
Jeroen

Où puis-je trouver le menu pour rechercher les paramètres?
martinkunev

0

Faites attention avec la barre oblique, remplacez "\" par "/", comme ceci: adb.exe push SuperSU-v2.79-20161205182033.apk / storage


0

data partition non accessible aux utilisateurs non root, si vous souhaitez y accéder, vous devez rooter votre téléphone.

adb root ne fonctionne pas pour tous les produits et dépend du type de construction du téléphone.

dans la nouvelle version sur android studio, vous pouvez explorer le /data/datachemin des applications débuggables.



-4

Exécutez votre en cmdtant qu'administrateur, cela résoudra mes problèmes. Merci.


Non. La question concerne un refus d'Android, pas de Windows.
Chris Stratton

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.