8 votos

Adb push ... Permiso denegado

Estoy tratando de enviar un archivo a un directorio en un dispositivo Android físico, pero me encuentro con el siguiente error.

>adb push data.db /data/data/com.me.app/databases
failed to copy 'data.db' to '/data/data/com.me.app/databases/data.db': Permission denied

Creo que adb tiene los privilegios suficientes.

>adb root
adbd is already running as root

Aquí están los detalles de permisos para la ruta: /data/data/com.me.app/databases

drwxrwxrwx system   system            2014-01-14 10:31 data
drwxrwxrwx system   system            2015-05-23 16:06 data
drwxrwxrwx u0_a224  u0_a224           2015-05-23 15:26 com.me.app
drwxrwxrwx u0_a224  u0_a224           2015-05-23 15:30 databases

No estoy seguro de qué hacer en este caso. Tal vez estoy haciendo algo mal, pero simplemente quiero enviar el archivo data.db al directorio /data/data/com.me.app/databases en el dispositivo.

¿Alguien sabe qué estoy haciendo mal o qué debo considerar? Gracias.

3 votos

Ponga su solución alternativa como respuesta aquí y acepte su propia respuesta para que las personas que busquen un problema similar lo vean respondido cuando lo busquen.

6voto

yohosuff Puntos 31

Editar: Encontré una solución alternativa: AirDroid me permite subir el archivo, pero los permisos en el archivo están configurados de la siguiente manera:

-rw-------

Realizando los siguientes comandos se soluciona este problema (desde el símbolo del sistema de Windows 7).

>adb shell
# su
# chmod 777 /data/data/com.me.app/databases/data.db

5voto

JeffK Puntos 61

Tuve una variación de este problema, así que lo dejaré aquí en caso de que alguien más lo busque en Google:

./adb push update.zip /sdcard
[  0%] C:/Users/Alex/AppData/Local/Programs/Git/sdcard
adb: error: failed to copy 'update.zip' to 'C:/Users/Alex/AppData/Local/Programs/Git/sdcard':
remote secure_mkdirs failed: No such file or directory
update.zip: 0 archivos transferidos. 41.6 MB/s (131072 bytes in 0.003s)

Sin embargo, en mi caso el problema era ejecutar adb desde Git Bash Shell (MinGW64). Funcionaba bien al ejecutarlo desde el shell de Windows normal.

4voto

Alexey Romanov Puntos 153

El enfoque habitual, que no requiere ninguna aplicación adicional:

  1. Enviar a /data/tmp/;

  2. Copiar en el dispositivo usando adb shell, utilizando cp si está disponible en su dispositivo o cat si no lo está.

     > adb push data.db /data/tmp/data.db
     > adb shell
     # su # o run-as com.me.app
     # cp /data/tmp/data.db /data/data/com.me.app/databases/data.db

Recuerde cambiar com.me.app al nombre de paquete correcto de su aplicación.

0 votos

Esta técnica funcionó para mí. Para mayor detalle, en realidad subí un archivo obb a /sdcard/ y luego utilicé adb shell sin permisos de root para copiar este archivo a la carpeta de paquete correcta para este archivo (en /sdcard/Android/obb/nombrepaquete/ donde nombrepaquete debe cambiarse para que coincida con el de su aplicación de Android.

0 votos

Tuve que crearlo primero: adb shell mkdir /data/tmp/ ; adb shell chmod 777 /data/tmp/ ; adb push file /data/tmp/

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X