boot.img
boot和recovery映像并不是一個完整的文件系統,它們是一種android自定義的文件格式,該格式包括了2K的文件頭,后面緊跟著是用gzip壓縮過的內核,再后面是一個ramdisk內存盤,
ramdisk映像是一個最基礎的小型文件系統,它包括了初始化系統所需要的全部核心文件,例如:初始化init進程以及init.rc(可以用于設置很多系統的參數)等文件。以下是一個典型的ramdisk中包含的文件列表:
./init.trout.rc
./default.prop
./proc
./dev
./init.rc
./init
./sys
./init.goldfish.rc
./sbin
./sbin/adbd
./system
./data
(-) 解壓
(1)下載 split_bootimg.pl
(2)split_bootimg.pl boot.img? 將分解出gzipped kernel 和?boot.img-ramdisk.gz
(3)gunzip -c boot.img-ramdisk.gz? |cpio -i
這樣就把rootfs 解壓出來了
(二) 打包
(1) 打包rootfs
在當前目錄下,把所有不需要的文件清理掉
find?.|cpio-o-H?newc|gzip>../newramdisk.cpio.gz
(2) 制作boot.img
mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel your-kernel-file --ramdisk newramdisk
對于system.img 文件
system.img 也就是一個yaffs格式的文件。
解包工具unyaffs的代碼下載地址為:
編譯方法非常地簡單,只需要下載源代碼,然后運行:
$ gcc -c unyaffs.c
$ gcc -o unyaffs unyaffs.o
即可生成這個unyaffs的解包工具,unyaffs工具需要放到linux的/bin目錄下,并賦予執行權限sudo chmod 777 unyaffs
執行unyaffssystem.img
2. 編譯yaffs2鏡像制作工具:mkyaffs2image://點擊左下角的 Download tarball 下整個tar包
解壓,進入utils目錄,編譯
生成 mkyaffs2image 及 mkyaffs
命令格式#./mkyaffs2image system/ system.img
參考: