
Estoy intentando montar la imagen nand de Android proporcionada por Project Sandcastle (un proyecto que puede ejecutar Android 10 en un iPhone 7). Estoy intentando montar esta imagen de disco para poder editar el archivo boot.img que presumiblemente se encuentra en esta imagen. Aquí hay información sobre el archivo:
$ file nand
nand: DOS/MBR boot sector; partition 1 : ID=0xee, start-CHS (0x0,0,2), end-CHS (0x0,4,4), startsector 1, 255 sectors; partition 2 : ID=0x7, start-CHS (0x0,4,5), end-CHS (0x0,8,8), startsector 256, 256 sectors
$ sudo fdisk -lu nand
Disk nand: 3.5 GiB, 3269459968 bytes, 6385664 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
nand1 1 255 255 127.5K ee GPT
nand2 256 511 256 128K 7 HPFS/NTFS/exFAT
Intenté montar esto en macOS, pero solicitó un sistema de archivos y ext4 y msdos no funcionaron. Así que hice un USB en vivo de Ubuntu, probé estos comandos y obtuve este resultado:
$ sudo mkdir /android
$ sudo mount -o loop,rw,offset=512 nand /android
mount: /android: wrong fs type, bad option, bad superblock on /dev/loop6, missing codepage or helper program, or other error.
Entonces intenté darle nand
una extensión al archivo, pensé que tal vez no lo reconocía como un archivo porque no había ninguna extensión.
$ mv nand android.image
$ sudo mount -o loop,rw,offset=512 android.image /android
NTFS signature is missing.
Failed to mount '/dev/loop6': Invalid argument
The device '/dev/loop6' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
Intenté montar la otra partición con offset=$((512*256)) pero ocurrió el mismo resultado. También lo probé sin compensación, pero ocurrió el mismo resultado. Finalmente, intenté usar ro en lugar de rw, pero nuevamente ocurrió el mismo resultado. Estoy estancado y no sé qué hacer a continuación. Se puede encontrar la imagen nand comprimida con gzipen este enlace. Realmente agradecería cualquier ayuda que alguien pueda ofrecer.
Respuesta1
Su fdisk
salida indica que esto esnouna tabla de particiones válida: nand2 ocupa sólo 128 KB, lo que simplemente no es suficiente para una partición NTFS. He usado 7-zip (probablemente puedas usar p7zip disponible de forma nativa) ejecutándolo en Wine para abrir la imagen: contiene dos "particiones" y un archivo enorme que es una partición ext4.
No me preguntes cómo, pero encontré el desplazamiento para esta partición ext4. Puedes montarlo con:
mount -o loop,offset=3145728,ro nand /mnt/sandcastle
No se puede montar en lectura y escritura porque Android 10 implementa una nueva función ext4 llamada "shared_blocks" que aún no ha llegado a la línea principal.