Android: adb: autorizzazione negata


93

Qualunque cosa digito dopo adb shellche fallisce con 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

Qualche idea?


Dove stai cercando di eseguire la shell adb, nell'emulatore o nel dispositivo di destinazione; se sul dispositivo di destinazione non è possibile accedere alla cartella / data finché non si dispone dell'autorizzazione di root.
Vamsi

21
dopo adb root>> adbd cannot run as root in production buildscosa fare?
d.popov

3
Immagino che tu abbia bisogno di un telefono con root per essere in grado di eseguirlo
Caner

si, lo so. Ma, come vedi attualmente, non ho la reputazione di commentare il post dell'autore, ma avevo questo problema, quindi l'unico modo era aggiungere un nuovo post o aprire un thread duplicato, quindi ho deciso di aggiungere un post.
d.popov

1
il telefono è stato rootato, ma qualcosa è andato storto con il sistema operativo. Si stava congelando dopo aver caricato la schermata principale al riavvio. In ogni caso, il problema con il flashing del telefono con la ROM di serie è stato risolto con nandroid.
d.popov

Risposte:


130

Secondo adb help:

adb root                     - restarts the adbd daemon with root permissions

Il che ha effettivamente risolto il problema per me.


2
Dovrai anche abilitare l'accesso root per adb se non l'hai già fatto - vedi la risposta di @ Macarse.
Paul Whittaker

In realtà, il problema immediato è che Android ancora non (due anni dopo la tua scrittura) viene fornito con un findcomando. Detto questo, senza adb in esecuzione come root, è vero che non sarai in grado di discendere la partizione / data con nessun altro comando (anche se potresti comunque essere in grado di accedere a posizioni esplicite al suo interno).
Chris Stratton

1
Questo non è vero. Devi solo passare all'utente corretto. Vedere la mia risposta qui sotto: stackoverflow.com/a/38292436/342947
Fabian Zeindl

2
La tua risposta non è chiara. Questo commento deve essere eseguito sul dispositivo o sul computer?
Sauron

23
adbd cannot run as root in production buildsè quello che ottieni quando corri adb root. Si tratta di una recente installazione di MacOS con SDK Android aggiornato. Non penso che questa risposta sia corretta e ho visto altre persone menzionare questo problema. Perché così tanti voti positivi?
Andrew Koster

40

Senza rooting : se non è possibile eseguire il root del telefono, utilizzare il run-as <package>comando per poter accedere ai dati dell'applicazione.

Esempio:

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

exec-out esegue il comando senza avviare una shell e alterare l'output.


9
Funziona solo per le app create per essere debug, ovvero puoi usarlo per le app che stai sviluppando, ma non dovrebbe funzionare per le versioni di produzione della tua app o di altre app.
Chris Stratton

2
Questo ritorna run-as: Could not set capabilities: Operation not permittedper me
Tom M

1
Funziona con l'emulatore API 29 e non dimenticare di mettere il .debugprefisso alla fine del pacchetto dell'app per le app di debug:
ultraon

19

Il motivo per "permesso negato" è perché il tuo computer Android non è stato correttamente rootato. Hai visto $dopo aver iniziato adb shell? Se hai eseguito correttamente il root della tua macchina, avresti visto #invece.

Se vedi il $, prova ad accedere alla modalità Super utente digitando su. Se Root è abilitato, vedrai #- senza chiedere la password.


2
Dopo aver eseguito correttamente il root della tua macchina, dovrai aver abilitato l'accesso root adb ed eseguire adb in modalità root prima che il tuo supassaggio possa funzionare - vedi le risposte di @ Macarse e @ Roman.
Paul Whittaker

1
No. Il motivo per "permesso negato" è che non esiste alcun findcomando.
Chris Stratton

@ChrisStratton Mi hai salvato la vita, stavo già scrivendo il comando della shell dall'interno della shell adb
Divyanshu Kushwaha

1
Sto cercando di vedere i file nel simulatore Android. Digito "su" dopo "$" e viene visualizzato: su: non trovato
Pete Alvin

5

Potrebbe essere necessario attivare adb root dal menu delle impostazioni dello sviluppatore. Se esegui adb rootdalla riga cmd puoi ottenere:

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

Una volta attivata l'opzione root (solo ADB o App e ADB), adb verrà riavviato e sarai in grado di utilizzare root dalla riga cmd.


3
Se non riesci a vedere la voce "Opzioni sviluppatore" nel menu Impostazioni, leggi questa risposta per i dettagli su come renderla visibile. (In breve: Impostazioni> Info sul telefono> Numero build> Tocca 7 volte (!).)
Paul Whittaker

1
Ma una volta dentro, non vedo niente qui! Cosa dovrebbe dire?
JohnyTex

36
Questa opzione non esiste nelle build Android di serie : se esiste affatto, sarebbe limitata alla ROM aftermarket di qualcuno.
Chris Stratton

C'è un modo per farlo senza una GUI? Immagino che ci sia un'opzione per questo /system/build.prop, ma non riesco a trovarlo.
Jeroen

Dove trovo il menu per cercare le impostazioni?
martinkunev

0

Fai attenzione con la barra, cambia "\" per "/", in questo modo: adb.exe push SuperSU-v2.79-20161205182033.apk / storage


0

data partizione non accessibile per utenti non root, se si desidera accedervi è necessario eseguire il root del telefono.

adb root non funziona per tutti i prodotti e dipende dal tipo di build del telefono.

nella nuova versione su Android Studio puoi esplorare il /data/datapercorso per app debuggabili.



-4

Esegui il tuo cmdcome amministratore questo risolverà i miei problemi. Grazie.


No. La domanda riguarda un rifiuto da parte di Android, non da Windows.
Chris Stratton

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.