Android: adb: Berechtigung verweigert

90

Was auch immer ich tippe, nachdem adb shelles fehlgeschlagen ist mit 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

Irgendwelche Ideen?

Caner
quelle
Wo möchten Sie die ADB-Shell im Emulator oder auf dem Zielgerät ausführen? Wenn Sie auf dem Zielgerät nicht auf den Ordner / data zugreifen können, bis Sie über die Root-Berechtigung verfügen.
Vamsi
18
nach adb root>> adbd cannot run as root in production buildswas tun?
d.popov
2
Ich denke, Sie brauchen ein gerootetes Telefon, um das ausführen zu können
Caner
Ja, ich weiß. Wie Sie derzeit sehen, habe ich nicht den Ruf, den Beitrag des Autors zu kommentieren, aber ich hatte dieses Problem. Die einzige Möglichkeit bestand darin, einen neuen Beitrag hinzuzufügen oder einen doppelten Thread zu öffnen. Deshalb habe ich beschlossen, einen Beitrag hinzuzufügen.
d.popov
1
Das Telefon ist gerootet, aber mit dem Betriebssystem ist ein Fehler aufgetreten. Nach dem Laden des Startbildschirms beim Neustart fror es ein. Wie auch immer - Nandroid, das das Telefon mit dem Standard-ROM flasht, hat das Problem gelöst.
d.popov

Antworten:

127

Nach adb help:

adb root                     - restarts the adbd daemon with root permissions

Was das Problem für mich tatsächlich gelöst hat.

römisch
quelle
2
Sie müssen auch den Root-Zugriff für adb aktivieren, falls Sie dies noch nicht getan haben - siehe die Antwort von @ Macarse.
Paul Whittaker
Tatsächlich ist das unmittelbare Problem, dass Android (zwei Jahre nach dem Schreiben) immer noch nicht mit einem findBefehl ausgeliefert wird. Ohne adb als root können Sie die / data-Partition jedoch auch nicht mit einem anderen Befehl herabsteigen (obwohl Sie möglicherweise immer noch auf explizite Speicherorte zugreifen können).
Chris Stratton
1
Das ist nicht wahr. Sie müssen nur zum richtigen Benutzer wechseln. Siehe meine Antwort unten: stackoverflow.com/a/38292436/342947
Fabian Zeindl
2
Ihre Antwort ist nicht klar. Sollte dieser Kommentar auf dem Gerät oder auf dem Computer ausgeführt werden?
Sauron
19
adbd cannot run as root in production buildsist das, was du bekommst, wenn du rennst adb root. Dies ist eine aktuelle MacOS-Installation mit aktuellem Android SDK. Ich denke nicht, dass diese Antwort richtig ist, und ich habe andere Leute gesehen, die dieses Problem erwähnt haben. Warum so viele positive Stimmen?
Andrew Koster
39

Ohne Rooting : Wenn Sie Ihr Telefon nicht rooten können, verwenden Sie den run-as <package>Befehl, um auf Daten Ihrer Anwendung zugreifen zu können.

Beispiel:

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

exec-out führt den Befehl aus, ohne eine Shell zu starten und die Ausgabe zu entstellen.

Fabian Zeindl
quelle
9
Dies funktioniert nur für Apps, die so erstellt wurden, dass sie debuggbar sind. Sie können sie also für Apps verwenden, die Sie entwickeln. Sie sollten jedoch nicht für Produktionsversionen Ihrer App oder für Apps anderer Benutzer funktionieren.
Chris Stratton
2
Dies kehrt run-as: Could not set capabilities: Operation not permittedfür mich zurück
Tom M
Es funktioniert für die Emulator-API 29 und vergessen Sie nicht, das .debugPräfix am Ende des App-Pakets für Debug-Apps
anzugeben
19

Der Grund für "Berechtigung verweigert" ist, dass Ihr Android-Computer nicht korrekt gerootet wurde. Hast du gesehen, $nachdem du angefangen hast adb shell? Wenn Sie Ihren Computer richtig gerootet hätten, hätten Sie #stattdessen gesehen .

Wenn dies angezeigt wird $, versuchen Sie , durch Eingabe den Super User-Modus aufzurufen su. Wenn Root aktiviert ist, wird das #- angezeigt, ohne nach dem Kennwort zu fragen.

Wind
quelle
2
Sobald Sie Ihren Computer korrekt sugerootet haben, müssen Sie den adb-Root-Zugriff aktiviert haben und adb im root-Modus ausführen, bevor Ihr Schritt ausgeführt werden kann - siehe Antworten von @ Macarse und @ Roman.
Paul Whittaker
1
Nein. Der Grund für "Erlaubnis verweigert" ist, dass kein findBefehl vorhanden ist.
Chris Stratton
@ ChrisStratton Du hast mein Leben gerettet, ich habe auch schon einen Shell-Befehl aus der ADB-Shell geschrieben
Divyanshu Kushwaha
1
Ich versuche, Dateien im Android-Simulator zu sehen. Ich tippe 'su' nach dem '$' und es heißt: su: nicht gefunden
Pete Alvin
5

Möglicherweise müssen Sie adb root über das Entwicklereinstellungsmenü aktivieren. Wenn Sie adb rootvon der cmd-Zeile laufen , können Sie erhalten:

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

Sobald Sie die Root-Option (nur ADB oder Apps und ADB) aktiviert haben, wird adb neu gestartet und Sie können root über die cmd-Zeile verwenden.

Macarse
quelle
3
Wenn das Element "Entwickleroptionen" in Ihrem Einstellungsmenü nicht angezeigt wird, finden Sie in dieser Antwort Einzelheiten dazu, wie Sie es sichtbar machen können. (Kurz gesagt: Einstellungen> Über Telefon> Build-Nummer> Tippen Sie 7 Mal (!).)
Paul Whittaker
1
Aber einmal sehe ich hier nichts! Was soll es sagen?
JohnyTex
35
Diese Option ist in Standard-Android-Builds nicht vorhanden. Wenn sie überhaupt vorhanden ist, ist sie auf das Aftermarket-ROM einer anderen Person beschränkt.
Chris Stratton
Gibt es eine Möglichkeit, dies ohne eine grafische Benutzeroberfläche zu tun? Ich würde vermuten, dass es eine Option dafür gibt /system/build.prop, aber ich kann sie nicht finden.
Jeroen
Wo finde ich das Menü, um nach Einstellungen zu suchen?
Martinkunev
0

Seien Sie vorsichtig mit dem Schrägstrich und ändern Sie "\" für "/" wie folgt: adb.exe push SuperSU-v2.79-20161205182033.apk / storage

jmojico
quelle
0

data Partition für Nicht-Root-Benutzer nicht zugänglich. Wenn Sie darauf zugreifen möchten, müssen Sie Ihr Telefon rooten.

adb root funktioniert nicht für alle Produkte und hängt vom Typ des Telefons ab.

In der neuen Version von Android Studio können Sie den /data/dataPfad für debuggbare Apps erkunden .

Golil
quelle
-4

Adb remount. Und dann versuchen Sie es mit adb shell

Pavankumar Vijapur
quelle
3
adb remountgibt:remount failed: No such file or directory
Caner
2
Nein, das hat nichts mit dem Problem zu tun.
Chris Stratton
-4

Führen Sie Ihren cmdals Administrator aus, um meine Probleme zu lösen. Vielen Dank.

Kishan Oza
quelle
Nein. Die Frage betrifft eine Ablehnung von Android, nicht von Windows.
Chris Stratton