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

参考:

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐