Android映象檔案的拆解

2021-09-23 17:29:17 字數 1920 閱讀 6240

ramdisk(initrd)是乙個小的分割槽映象,在引導時核心以唯讀方式掛載它。它只保護/init和一些配置檔案。它用於初始化和掛載其它的檔案系統映象。ramdisk是乙個標準的linux特性。

ramdisk.img被包含google android sdk中($sdk_root/tools/lib/images/ramdisk.img),也可以編譯生成($sdk_root/out/target/product/$produt_name/ramdisk.img)。這是乙個gzip壓縮的cpio檔案。

要修改它,首先複製它到你的linux機器上,並用如下命令解開:

user@computer:$ mv ramdisk.img ramdisk.cpio.gz

gzip -d ramdisk.cpio.gz

mkdir ramdisk

cd ramdisk

cpio -i -f ../ramdisk.cpio

解開後,做一些你的修改和刪除無用的檔案後,通過如下命令重新建立ramdisk.cpio:

user@computer:$ cpio -i -t -f ../ramdisk.cpio | cpio -o -h newc -o ../ramdisk_new.cpio
然後可以重新改名並壓縮:

user@computer:$ cd ..

gzip ramdisk_new.cpio

mv ramdisk_new.cpio.gz ramdisk.img

system.img是掛載到 / 下的映象,它包含了全部的系統可執行檔案。

userdata.img掛載到 /data 下的映象,它包含了應用及使用者相關的資料。

在實際的物理裝置中,他們通過ramdisk中的init.rc指令碼掛載為檔案系統。它們可以有各種不同的格式,如 yaffs2、ext4或 ubi-fs。

它們通過android構建系統生成並刷入到物理裝置中。模擬器對它們的使用有所不同(見下文):

模擬器不會修改system.img和userdata.img。

乙個yaffs2檔案在linux被識別為「vms alpha executable」檔案。

user@computer:$ file $}/out/target/product/imx51_ccwmx51js/system.img

./out/target/product/imx51_ccwmx51js/system.img: vms alpha executable

user@computer:$ gcc -o unyaffs unyaffs.c

sudo chmod +x /complete/directory/path/to/unyaffs

然後使用這個命令來拆解 yaff2 映象檔案:

user@computer:$ mkdir image

cd image

unyaffs ../system.img

如果映象是ext4,那麼很簡單,直接掛載就可以讀取其中的內容了:

user@computer:$ mount -o loop -t ext4 system.img /media
作為補充,這裡說一下如何拆解jffs2映象:

user@computer:$ modprobe mtdblock

modprobe jffs2

modprobe mtdram total_size=65536 erase_size=256

mknod /tmp/mtdblock0 b 31 0

dd if=/pathtoimage/rootfs.jffs2 of=/tmp/mtdblock0

mount -t jffs2 /tmp/mtdblock0 /mnt

原文發布時間為:2012-06-14

qnx 映象檔案 QNX OS映象

1.介紹 可引導映象指包含了startup和procnto的映象,ipl,boot rom或bios x86 可以將控制權傳遞給它。一般的可引導映象如下所示 對於有些系統,可能需要與配置相關的設定,通常將提供不可引導的映象。將這個映象看作是第二個 檔案系統 包含一些額外的檔案。由於是不可引導的,所以...

製作QT映象檔案

1 dd if dev zero of qt lib.img bs 1m count 80 建立80m的映象檔案,如果提示no space,可更改80,建立更大的映象 2 mkfs.ext2 f qt lib.img 格式化該映象 3 sudo chmod go w qt lib.img 設定許可權...

windowsCE映象檔案結構

formats struct binfile dword imagestart dword imagelength record imagerecords recordnum struct record 在檔案的最開端,會放置乙個binfile結構,imagestart和imagelength分別對...