Android 系统准备知识-bootimg文件的结构

做android系统的兄弟都知道,android系统编译完成后生成的目标文件会包含几个img boot.img system.img data.img 等

可以通过fastboot 工具,在fastboot 环境下执行fastboot 命令烧录进去。

例如: fastboot flash boot boot.img

烧录完后,这几个img会挂载到文件系统中相应的地方,系统就可以读取操作了。

kernel的编译完后的文件格式是zimage格式,而根目录编译完后会以cpio压缩后生成个ramdisk文件。最后会用android 自带的工具**mkbootimg**生成boot.img文件而boot.img中不光为这两个部分,具体可以用开源工具**unbootimg** **repack-zImage** 解压看到由文件头信息boot header,压缩的内核,文件系统数据ramdisk以及second stage loader(可选)组成,它们之间非页面对齐部分用0填充,可以从bootimg.h文件中看到。

** +-----------------+

** | boot header    | 1 page

** +-----------------+

** | kernel              | n pages

** +-----------------+

** | ramdisk          | m pages

** +-----------------+

** | second stage    | o pages

** +-----------------+

second stage可有可无 如上所说kernel再zImge中

根目录内容压缩再ramdisk中,也就是说开机流程中很重要的init进程再ramdisk中如果修改init进程就需要烧写boot.img而不是system.img

http://blog.csdn.net/zhenwenxian/article/details/6219431/

你可能感兴趣的:(Android 系统准备知识-bootimg文件的结构)