0 votos

¿Cómo transferir mmcblk0 a una PC con Windows?

Entonces esto es lo que quiero extraer: mmcblk0 con un tamaño de 15,7 GB.

C:\adb>adb shell
shell@android:/ $ su
su
shell@android:/ # fdisk -l /dev/block/mmcblk0
fdisk -l /dev/block/mmcblk0

Disco /dev/block/mmcblk0: 15,7 GB, 15758000128 bytes
1 cabezal, 16 sectores/rastreo, 1923584 cilindros
Unidades = cilindros de 16 * 512 = 8192 bytes

Esto es lo que intenté:

C:\adb>adb shell su busybox cat /dev/block/mmcblk0 > C:\1.bin

Solo tengo una salida de 1KB con el contenido dentro que dice "id desconocido". También intenté con pull pero parece que tampoco funciona.

¿Qué debo hacer para obtener este mmcblk0 de 15,7 GB?

2voto

AlexBar Puntos 441

Inténtalo: dd if=/dev/block/mmcblk0 of=/sdcard/something.bin

Puedes hacerlo en un Emulador de Terminal o en la shell de ADB.
Solo requiere acceso de root.

Luego puedes transferir este archivo a tu escritorio. No conozco una manera de hacerlo simultáneamente.

0 votos

¿Esto incluiría también la imagen de recuperación?

0voto

zhaorufei Puntos 101
  1. Mostrar las Opciones de Desarrollador (Configuración > Desarrollador > toca en compilación 7 veces)

  2. Activar la Depuración USB (Configuración > Desarrollador > Depuración USB)

  3. Utilizar la recuperación TWRP para evitar limitaciones de root del sistema operativo

    adb reboot recovery

  4. Verificar tus puntos de montaje

    adb shell mount | FINDSTR /R /C:"^/dev"

  5. Realizar el pull

    adb pull /dev/block/mmcblk0 mmcblk0.img

Para aquellos que utilizan un sistema similar a Unix, usar grep en lugar de FINDSTR;

./adb shell mount | grep -P "^/dev" | perl -pe 's/ .*//g' | sort -u
/dev/block/platform/msm_sdcc.1/by-name/cache
/dev/block/platform/msm_sdcc.1/by-name/modem
/dev/block/platform/msm_sdcc.1/by-name/persist
/dev/block/platform/msm_sdcc.1/by-name/system
/dev/block/platform/msm_sdcc.1/by-name/userdata
/dev/fuse

1 votos

No puedes adb pull un dispositivo, lo siento, por lo que eso no funcionará. Ni siquiera en modo de recuperación.

0 votos

Extraño. Si revisas Error al hacer ADB pull: objeto remoto '/dev/block/mmcblk0p24' no es un archivo o directorio, simplemente muestra objeto remoto '/dev/block/mmcblk0' no es un archivo o directorio - lo cual es lo que esperaba ver aquí.

0 votos

@user1133275 puede que tengas un punto allí, pero entonces dd if=/dev/block/mmcblk0 of=/sdcard/something.bin tampoco debería haber funcionado. Si lo comprobaste tú mismo y te funcionó, supongo que simplemente tenemos que creerte y agregar "esto podría no funcionar siempre. Si no lo hace, utiliza el otro enfoque" :)

0voto

Robert Puntos 435

Si estás en la terminal, podrías usar sh en lugar de su

desde windows, usando ADB, poner el dispositivo en una recuperación personalizada y luego desde una ventana de cmd:

adb remount
adb root
adb shell

si se hace mientras el dispositivo está en modo recuperación (y no bootloader o sideload) entrarás a una terminal/línea de comandos con "~:" en lugar de "shell@android:" y proceder con:

cat /dev/block/mmcblk0 > /sdcard/mmcblk0.img

[entonces no es necesario usar sh ya que ya estás adentro como shell] y luego abre otra ventana de cmd separada desde tu computadora para extraer el archivo que creaste (hace 20-30 mins****) y usa:

adb pull /sdcard/mmcblk0.img

puedes nombrarlo "mmcblk0.img" como desees, solo necesita un nombre de archivo de salida y extensión

****SIN EMBARGO, ten en cuenta y sé paciente cuando ejecutes cat, porque la ventana de cmd en windows no mostrará nada mientras está "creando" el archivo .img de 15gb, solo mostrará un salto de línea en la ventana de cmd y parecerá no dar respuesta mientras procesa tu comando. Y sabrás que ha terminado cuando obtengas una nueva línea para ingresar un nuevo comando. como tiene más de 15gb, si tu dispositivo no tiene suficiente espacio de almacenamiento para crear el archivo, puedes cambiar la ruta de salida después de ">" a /storage/sdcard1/mmcblk0.img o lo que sea, pero asegúrate de tener una microsd rápida (clase 10 o mejor) porque 15gb tardarán un tiempo en escribirse. Estimo alrededor de media hora en una microsd externa.

aparte de eso, ¿por qué querrías extraer eso? tendría más sentido si preguntaras sobre mmcblk0p05 o mmcblk0p03 pero ehh, si no planeas leer los binarios por hex entonces supongo que cada hombre (o mujer) tiene sus propias preferencias...

0voto

Guillermo Gomez Puntos 423

Si tengo razón, no has hecho nada mal pero la forma en que ejecutas su.
Desde su --help (Versión SuperSU 2.79):

Uso#2: su LOGIN COMANDO...

Por lo tanto, deberías ejecutar

C:\\adb>adb shell su **root** busybox cat /dev/block/mmcblk0 > C:\\1.bin

y todo estará bien.

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