23 votos

`adb pull /data` falla con "0 files pull 0 file skipped"

He rooteado mi dispositivo HTC Evo Design 4G y trato de adb pull /data data y dice "0 files pull 0 file skipped"

Pude sacar /System/build.prop . ¿Cómo puedo extraer la carpeta root?

2 votos

¿Has corrido adb root ¿primero?

1 votos

Sí, pero adb Root no tuvo éxito. No hay permiso. Pero pude adb shell su. Da #.

22voto

Izzy Puntos 45544

Archivos y directorios siguientes /data/data están protegidos del "usuario medio", por lo que no se puede simplemente "tirar" de ellos a menos que el demonio ADB se esté ejecutando en modo Root. Aparte del archivo al que te referías ( /system/buildprop es como mínimo legible por todas las aplicaciones), carpetas a continuación /data/data son "invisibles" (excepto para Root), por lo que ni siquiera pueden leerse.

Para poder utilizar adb pull en ellos, necesitas hacer que tu demonio ADB se ejecute primero en modo Root. Dependiendo del dispositivo, un simple adb root comando podría hacer eso - pero la mayoría de los dispositivos se niegan a hacer. En esos casos, puede utilizar el comando adbd inseguro : Instala esta aplicación en tu dispositivo, iníciala allí y cambia manualmente al modo "inseguro". Ahora la pull debería tener éxito.

Observación: Se llama "inseguro" porque correr adbd ya que Root permite a cualquiera con un ordenador y un cable USB acceder a todo lo que hay en tu dispositivo. Sólo en caso de que usted se pregunta.

0 votos

Gracias. Aparte de la chainfire adbd inseguro, ¿Puedo establecer ro.secure bandera en construir la propiedad? ¿Puedo usar adb shell setprop ro.secure 0?

0 votos

No lo he probado nunca, ni sé exactamente para qué sirve esa bandera, así que no puedo decirlo. (Por cierto: si la respuesta te ha resultado útil, te invito a "upvote" it (la forma SE de decir "gracias") - o "aceptarlo cuando solucionó nuestro problema ;)

1 votos

Adbd trabajo inseguro para mí :)

7voto

Wolfiem Puntos 21

Si tu teléfono está rooteado, hay tres formas de evitarlo. La primera es utilizar ADBD inseguro .

La otra es moverlo a otra carpeta con Root y luego tirar de ahí:

$ adb shell

shell@android:/ $ su
root@android:/ # mkdir /sdcard/data
root@android:/ # cp /data/data/* /sdcard/data
root@android:/ # exit
shell@android:/ $ exit 

$ adb pull /sdcard/data .
$ adb shell

shell@android:/ $ rm -r /sdcard/data/
shell@android:/ $ exit

Creo que se puede construir un script como:

echo 'echo "mkdir /sdcard/data; cp $1/* /sdcard/data; exit" | su; exit' | adb shell
adb pull /sdcard/data .
echo 'rm -r /sdcard/data; exit' | adb shell

y guárdalo en algún sitio.

Por último, la tercera opción es chmod -R 1777 /data/data pero esto es mucho más inseguro, por lo que se desaconseja.

5voto

Hiemanshu Sharma Puntos 156

No se puede tirar de la carpeta de datos directamente ya que adb no tiene acceso al listado de archivos. Si desea tirar de la carpeta /data puede hacerlo a través de la recuperación ([Custom recovery, CWM/TWRP] ejecutar adb mientras el dispositivo está en modo de recuperación, con suerte una recuperación personalizada). O como Root, copia /data a otro directorio (sdcard) y sácalo de ahí.

0 votos

Gracias, señor. Pero yo era capaz de tirar build.prop archivo en /System carpeta. adb shell su y entonces puedo lista de archivos en la carpeta root. He leído en una búsqueda en Google ajuste ro.secure build propiedad a 0 ayudará a tirar /data. ¿Es esto cierto? Si es así, ¿hay alguna manera de hacerlo?

0 votos

Puede extraer build.prop porque /system tiene permiso de listado. Puedes cambiar ro.secure=0 en tu boot.img, pero ese es un paso realmente complejo. Sería más fácil de instalar una recuperación personalizada y hacerlo desde allí.

0 votos

¡Muchas gracias! Mi propósito principal del esfuerzo es la implementación de una aplicación relacionada con la medicina forense como un proyecto de fin de carrera universitaria. Tengo mucho miedo de que al instalar el custom recovery se borren las evidencias del dispositivo. ¿Tienes alguna idea sobre el tema.

1voto

Daniel Puntos 486

PARTE I: Preparar todos los archivos para un ADB PULL

Esto es lo que me ha funcionado a mí:

  • Asegúrate de que estás usando la última versión de ADB.

  • Inicie la sesión ADB: adb shell

  • Obtener derechos SU una vez en la sesión ADB todo lo que tienes que hacer es escribir su así: su . Entonces se dará cuenta de que el $ se convierte en # .

    • El hash te permite saber que estás en modo SU.
  • Crear una carpeta en el /sdcard del dispositivo: mkdir /sdcard/data/

  • Diríjase a root del archivo que desea copiar.

    • En mi caso, por ejemplo, quería hacer una copia de seguridad de mis aplicaciones y guardarla en mi ordenador: /data/app #
  • Un ejemplo de lo que obtengo si ls esa carpeta:

    root@m1:/data/app # ls com.abtnprojects.ambatana-1 com.acr.rootfilemanager-1 com.amazon.kindle-1 com.android.chrome-1 com.android.mms-1 com.android.vending-2'

  • Para copiar recursivamente con el ADB cp utilice la opción -R y como quería copiar todo lo que contenía, utilicé el comodín * así: cp -R */ /sdcard/data/

  • ¡Una vez que presione enter, si el archivo es bastante grande, obviamente tomará un tiempo copiar los archivos, por lo que el cursor parpadeará durante un rato, parecerá que no está haciendo nada, PERO LO ESTÁ HACIENDO! está copiando los archivos, ¡así que no se asuste! y ¡no detenga el proceso!

    • Si quieres abre otra sesión de ADB shell y dirígete a la carpeta donde estás transfiriendo los archivos y haz un ls y deberías ver que la carpeta vacía se está llenando con los archivos. Una vez finalizada la transferencia, recuperarás tu shell.
  • Dirígete al sdcard/data y asegúrese de que todo fue copiado ls :

    'root@m1:/sdcard/data # ls com.abtnprojects.ambatana-1 com.acr.rootfilemanager-1 com.amazon.kindle-1 com.android.chrome-1 com.android.mms-1'**

PARTE II: El ADB PULL

  • Llegados a este punto, si no has creado una carpeta en el equipo de destino, hazlo. Yo he creado una carpeta llamada apps

  • Ahora, vamos a hacer el elusivo ADB PULL recursivo de todos los archivos a la vez:

  • Asegúrate de que has salido de la sesión ADB, ya que hemos estado en modo SU, necesitaremos salir dos veces:

    root@m1:/sdcard/data # exit shell@m1:/ $ exit

  • Desde una sesión shell normal, ejecute el comando adb pull no tiene por qué utilizar el -a opción, yo personalmente lo uso para mantener la integridad de la archivos tanto como sea posible. Ejecute el comando: adb pull -a /sdcard/data/ apps/

Deberías ver algo como esto:

[ 69%] /sdcard/data/com.google.android.gms-1/base.apk: 74%

Una vez hecho:

/sdcard/data/: 296 files pulled. 5.1 MB/s (1193942288 bytes in 221.352s)

Y ¡voilá!

Notas al margen:

  • No sé si importa, pero uso un Mac.
  • Si estando en la sesión ADB tampoco puedes obtener "privilegios su":
    • 1ª: Probablemente necesites darle acceso Root a ADB
    • 2º: "superusuario" no está instalado correctamente
  • Comprueba dos veces tus órdenes

0voto

Haris Cheong Puntos 1

Funciona en mi dispositivo Android 7.1. Pasos para conseguir que funcione:

  1. Descargar la versión insegura de adbd por leroy en https://nofile.io/f/86605d8qsJs/adbd-Insecure-v2.00.apk
  2. Instálalo en tu teléfono.
  3. Ejecutar adb shell en su directorio adb
  4. Tipo su así que usted puede conseguir el "#"
  5. Tipo setenforce 0
  6. Habilitar adbd inseguro. La depuración USB se desactiva
  7. Activar y desactivar la depuración USB desde las opciones de desarrollador
  8. Apaga y vuelve a encender adbd inseguro.

Ahora puede adb pull en su PC.

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