我正在尝试挂载Project Sandcastle(可在iPhone 7上运行Android 10的项目)提供的Android nand映像。我试图挂载该磁盘映像,以便可以编辑该映像中的boot.img文件。以下是有关文件的一些信息:
$ 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
我试图在macOS上挂载它,但是它要求使用文件系统,而ext4和msdos却不起作用。因此,我制作了一个Ubuntu live USB,并尝试了以下命令并获得以下输出:
$ 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.
因此,我尝试提供nand
文件扩展名,我认为可能没有将其识别为文件,因为没有扩展名。
$ 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?
我尝试用offset = $((512 * 256))挂载另一个分区,但是发生了相同的输出。我也尝试了无偏移量,但是发生了相同的输出。最后,我尝试使用ro而不是rw,但是再次出现了相同的输出。我被卡住了,我不知道下一步该怎么做。可以在此链接中找到压缩后的nand图像。我真的很感激任何人都可以提供的帮助。
您的fdisk
输出表明这不是有效的分区表:nand2仅占用128KB,这对于NTFS分区来说还远远不够。我使用在Wine中运行的7-zip(您可能可以使用本机可用的p7zip)打开图像:它包含两个“分区”和一个很大的文件,它是ext4分区。
不要问我怎么做,但是我已经找到了这个ext4分区的偏移量。您可以使用以下方法挂载它:
mount -o loop,offset=3145728,ro nand /mnt/sandcastle
它无法以读写方式挂载,因为Android 10实现了名为“ shared_blocks”的新ext4功能,该功能尚未进入主流。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句