
Ich versuche, das von Project Sandcastle bereitgestellte Android-NAND-Image zu mounten (ein Projekt, das Android 10 auf einem iPhone 7 ausführen kann). Ich versuche, dieses Disk-Image zu mounten, damit ich die Datei boot.img bearbeiten kann, die vermutlich in diesem Image enthalten ist. Hier sind einige Informationen zur Datei:
$ 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
Ich habe versucht, dies in macOS zu mounten, aber es wurde nach einem Dateisystem gefragt und ext4 und msdos funktionierten nicht. Also habe ich einen Ubuntu Live-USB erstellt und diese Befehle ausprobiert und diese Ausgabe erhalten:
$ 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
Ich habe also versucht , eine Dateierweiterung anzugeben und dachte, dass die Datei möglicherweise nicht als solche erkannt wird, weil keine Erweiterung vorhanden ist.
$ 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?
Ich habe versucht, die andere Partition mit offset=$((512*256)) zu mounten, aber es kam die gleiche Ausgabe. Ich habe es auch ohne offset versucht, aber es kam die gleiche Ausgabe. Schließlich habe ich versucht, ro statt rw zu verwenden, aber wieder kam die gleiche Ausgabe. Ich stecke fest und weiß nicht, was ich als nächstes tun soll. Das gzippte NAND-Image finden Sie hierunter diesem Link. Ich wäre für jede Hilfe, die mir jemand anbieten könnte, wirklich dankbar.
Antwort1
Ihre fdisk
Ausgabe zeigt, dass diesnichteine gültige Partitionstabelle: nand2 belegt nur 128 KB, was für eine NTFS-Partition einfach nicht ausreicht. Ich habe 7-Zip (Sie können wahrscheinlich das nativ verfügbare p7zip verwenden) in Wine verwendet, um das Image zu öffnen: Es enthält zwei „Partitionen“ und eine riesige Datei, die eine ext4-Partition ist.
Fragen Sie mich nicht, wie, aber ich habe den Offset für diese ext4-Partition gefunden. Sie können sie mounten mit:
mount -o loop,offset=3145728,ro nand /mnt/sandcastle
Es kann nicht schreibgeschützt gemountet werden, da Android 10 eine neue ext4-Funktion namens „shared_blocks“ implementiert, die noch nicht den Weg in die Hauptleitung gefunden hat.