Android: adb: Permiso denegado


91

Lo que sea que escriba después de adb shellque falle 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

¿Algunas ideas?


¿Dónde está intentando ejecutar adb shell, en el emulador o en el dispositivo de destino? si está en el dispositivo de destino, no puede acceder a la carpeta / data hasta que no tenga permiso de root.
Vamsi

20
después adb root>> adbd cannot run as root in production builds¿qué hacer?
d.popov

3
Supongo que necesitas un teléfono rooteado para poder ejecutar eso
Caner

Sí, lo sé. Pero, como ves, actualmente no tengo la reputación de comentar la publicación del autor, pero tuve este problema, así que la única forma era agregar una nueva publicación o abrir un hilo duplicado, así que decidí agregar una publicación.
d.popov

1
el teléfono está rooteado, pero algo salió mal con el sistema operativo. Se estaba congelando después de cargar la pantalla de inicio al reiniciar. De todos modos, nandroid flasheando el teléfono con la ROM estándar resolvió el problema.
d.popov

Respuestas:


129

Según adb help:

adb root                     - restarts the adbd daemon with root permissions

Lo que de hecho resolvió el problema para mí.


2
También deberá habilitar el acceso de root para adb si aún no lo ha hecho; consulte la respuesta de @ Macarse.
Paul Whittaker

En realidad, el problema inmediato es que Android todavía no se envía (dos años después de su escritura) con un findcomando. Dicho esto, sin adb ejecutándose como root, es cierto que tampoco podrá descender por la partición / data con ningún otro comando (aunque es posible que aún pueda acceder a ubicaciones explícitas dentro de él).
Chris Stratton

1
Esto no es verdad. Solo tiene que cambiar al usuario correcto. Vea mi respuesta a continuación: stackoverflow.com/a/38292436/342947
Fabian Zeindl

2
Tu respuesta no es clara. ¿Debería ejecutarse este comentario en el dispositivo o en la computadora?
Sauron

20
adbd cannot run as root in production buildses lo que obtienes cuando corres adb root. Se trata de una instalación reciente de MacOS con el SDK de Android actualizado. No creo que esta respuesta sea correcta en absoluto, y he visto a otras personas mencionar este problema. ¿Por qué tantos votos a favor?
Andrew Koster

39

Sin rootear : Si no puede rootear su teléfono, use el run-as <package>comando para poder acceder a los datos de su aplicación.

Ejemplo:

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

exec-out ejecuta el comando sin iniciar un shell y alterar la salida.


9
Esto solo funciona para aplicaciones creadas para ser depurables, es decir, puede usarlo para aplicaciones que está desarrollando, pero no debería funcionar para versiones de producción de su aplicación o las aplicaciones de cualquier otra persona.
Chris Stratton

2
Esto vuelve run-as: Could not set capabilities: Operation not permittedpara mí
Tom M

Funciona para la API 29 del emulador, y no olvide poner el .debugprefijo al final del paquete de la aplicación para aplicaciones de depuración:
ultraon

19

El motivo del "permiso denegado" es que su máquina Android no se ha rooteado correctamente. ¿Viste $después de empezar adb shell? Si enraizó correctamente su máquina, habría visto en su #lugar.

Si ve el $, intente ingresar al modo de superusuario escribiendo su. Si Root está habilitado, verá el símbolo #- sin pedir contraseña.


2
Una vez que haya rooteado correctamente su máquina, deberá haber habilitado el acceso de raíz de adb y estar ejecutando adb en modo de raíz antes de que su supaso pueda funcionar; consulte las respuestas de @ Macarse y @ Roman.
Paul Whittaker

1
No. El motivo del "permiso denegado" es que no hay ningún findcomando.
Chris Stratton

@ChrisStratton Me salvaste la vida, también estaba escribiendo el comando shell desde el interior del shell adb
Divyanshu Kushwaha

1
Estoy intentando ver archivos en el simulador de Android. Escribo 'su' después de '$' y dice: su: not found
Pete Alvin

5

Es posible que deba activar adb root desde el menú de configuración del desarrollador. Si ejecuta adb rootdesde la línea cmd, puede obtener:

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

Una vez que active la opción raíz (solo ADB o Aplicaciones y ADB), adb se reiniciará y podrá usar la raíz desde la línea cmd.


3
Si no puede ver el elemento 'Opciones de desarrollador' en su menú Configuración, consulte esta respuesta para obtener detalles sobre cómo hacerlo visible. (En resumen: Configuración> Acerca del teléfono> Número de compilación> Toque 7 veces (!).)
Paul Whittaker

1
¡Pero una vez dentro, no veo nada aquí! ¿Qué debería decir?
JohnyTex

35
Esta opción no existe en las compilaciones de Android ; si existe, se limitaría a la ROM del mercado de accesorios de alguien.
Chris Stratton

¿Hay alguna forma de hacer esto sin una GUI? Supongo que hay una opción para ello /system/build.prop, pero no puedo encontrarlo.
Jeroen

¿Dónde encuentro el menú para buscar configuraciones?
martinkunev

0

Tenga cuidado con la barra, cambie "\" por "/", así: adb.exe push SuperSU-v2.79-20161205182033.apk / storage


0

data partición no accesible para usuarios no root, si desea acceder a ella, debe rootear su teléfono.

adb root no funciona para todos los productos y depende del tipo de compilación del teléfono.

en la nueva versión de Android Studio, puede explorar la /data/dataruta de las aplicaciones depurables.



-4

Ejecute su cmdcomo administrador, esto resolverá mis problemas. Gracias.


No. La pregunta se refiere a una negativa de Android, no de Windows.
Chris Stratton

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.