A FlashROM szétbontása
Ezek az állományok zip fájlok, egyszerűen tömörítsük ki.
A tartalma nagyjából így épül fel:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | -rw-r--r-- 1 build build 11937 jún 3 23:03 AC8227_Android_scatter.txt -rw-r--r-- 1 build build 2636652 máj 27 17:00 arm2.bin -rw-r--r-- 1 root root 161 okt 24 14:09 bootimg.cfg -rw-r--r-- 1 build build 6398160 máj 27 17:01 cache.img -rw-r--r-- 1 build build 315944 máj 27 17:00 lk.bin -rw-r--r-- 1 build build 1048576 máj 27 17:00 metazone.bin -rw-r--r-- 1 build build 7727104 febr 4 2019 patched_boot.img -rw-r--r-- 1 build build 116972 máj 27 17:00 preloader_8227l_demo.bin -rw-r--r-- 1 build build 8237056 máj 27 17:00 recovery.img -rw-r--r-- 1 build build 135168 máj 27 17:00 secro.img -rw-r--r-- 1 build build 1610612736 okt 24 13:50 system.img -rw-r--r-- 1 build build 1295916 máj 27 17:00 trustzone1.bin -rw-r--r-- 1 build build 1295916 máj 27 17:00 trustzone2.bin -rw-r--r-- 1 build build 140618624 máj 27 17:01 userdata.img |
Akkor a system.img tartalmazza a rendszerelemeket, ami valószínűleg egy ext4 partíció képmása. Ez csatolható a következő paranccsal:
0 1 2 3 | mkdir /mnt/imgfile mount -o loop system.img /mnt/imgfile |
Természetesen a többi img fájlt is szerkeszteni tudjuk!
Amennyiben a ROM archívum (zip fájl) bin és upd fájlokat tartalmaz, az eljárás más!
Például: FireOS Filesystem
A boot.img szétbontása, szerkesztése, létrehozása
Eszközök:
- binwalk (2.x)
- Android bootimg tools
- Android unpack bootimg tools
Szedjük szét a boot.img állományt
0 1 2 3 4 5 6 7 8 | mkdir unpack_bootimg ./unpackbootimg -i boot.img -o unpack_bootimg/ BOARD_KERNEL_CMDLINE BOARD_KERNEL_BASE 80000000 BOARD_PAGE_SIZE 2048 |
Amennyiben sikeres, a parancs hibaüzenet nélkül befejeződik… listázzuk mit kaptunk
0 1 2 3 4 5 6 7 | ls -l -rw-r--r-- 1 root root 9 okt 24 20:42 boot.img-base -rw-r--r-- 1 root root 1 okt 24 20:42 boot.img-cmdline -rw-r--r-- 1 root root 5 okt 24 20:42 boot.img-pagesize -rw-r--r-- 1 root root 1660517 okt 24 20:42 boot.img-ramdisk.gz -rw-r--r-- 1 root root 6063446 okt 24 20:42 boot.img-zImage |
Ezek közül csak a boot.img-ramdisk.gz állománnyal kell még dolgoznunk. Ez a indítási ramdiszk.
Bár látszólag ez egy gzip formátumú állomány, a boot.img-ramdisk.gz kibontásakor hiba jelentkezik, mert az a tény, hogy a boot.img-ramdisk.gz fejléce extra adatokkal rendelkezik.
Ellenőrizzük
0 1 2 3 4 5 6 7 | binwalk boot.img-ramdisk.gz DECIMAL HEXADECIMAL DESCRIPTION -------------------------------------------------------------------------------- 512 0x200 gzip compressed data, maximum compression, from Unix, NULL date (1970-01-01 00:00:00) 637828 0x9BB84 xz compressed data |
A felesleges extra adatokat el kell távolítani.
Keressük meg a ramdisk kezdőcímét, a „1f 8b 08 00” Gzip magic-ot
0 1 2 3 | od -A d -t x1 boot.img-ramdisk.gz | grep "1f 8b 08 00" 0000512 1f 8b 08 00 00 00 00 00 02 03 9c bd 09 5c 53 57 |
Most már biztosan tudjuk, hogy az 512 bájton van, nyerjük ki a valódi ramdiszket
0 1 2 3 4 5 6 | dd if=boot.img-ramdisk.gz of=ramdisk.gz bs=512 skip=1 3242+1 beolvasott rekord 3242+1 kiírt rekord 1660005 bájt (1,7 MB, 1,6 MiB) másolva, 0,00661959 s, 251 MB/s |
Megkaptuk a valódi ramdiszket: ramdisk.gz
Most már ki tudjuk bontani a teljes tartalmát egy mappába:
0 1 2 3 4 | mkdir ramdisk_extract cd ramdisk_extrackt gunzip -dc ../ramdisk.gz | cpio -i |
A fájlok elérhetőek szerkesztésre
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | -rw-r--r-- 1 build build 178 okt 24 20:02 auto_shutdown.sh lrwxrwxrwx 1 build build 13 okt 24 20:02 charger -> /sbin/healthd drwxrwx--x 2 build build 4096 okt 24 20:02 data/ -rw-r--r-- 1 build build 842 okt 24 20:02 default.prop drwxr-xr-x 2 build build 4096 okt 24 20:02 dev/ -rw-r--r-- 1 build build 127 okt 24 20:02 enableswap.sh -rw-r--r-- 1 build build 1685 okt 24 20:02 factory_init.project.rc -rw-r--r-- 1 build build 24479 okt 24 20:02 factory_init.rc -rw-r--r-- 1 build build 44235 okt 24 20:02 file_contexts -rw-r--r-- 1 build build 929 okt 24 20:02 fstab -rw-r----- 1 build build 2571 okt 24 20:02 fstab.ac8227l -rwxr-x--- 1 build build 394324 okt 24 20:02 init* ...... ...... |
Ha kész vagyunk, csomagoljuk össze a saját ramdiszket:
0 1 2 3 | mkbootfs ./ramdisk | gzip> new_ramdisk.gz mkbootimg --kernel kernel --ramdisk new_ramdisk.gz -o new_boot.img |
Hozzászólások lezárva