首页 > 代码库 > android boot.img文件结构、拆包、打包

android boot.img文件结构、拆包、打包

boot.img is not a compressed filesystem image like system.img. It is read by the bootloader, and contains little more than a kernel image and a ramdisk image.

我们可以从手机导出boot.img, 其实它并不是一个完整的文件系统 ,由google定义的文件格式。如何定义见,android-src/system/core/mkbootimg/bootimg.h


2k头文件,gzip压缩的内核,ramdisk, second stage(可选)

1F 8B 08便是内核起始处

ramdisk映像是一个最基础的小型文件系统,它包括了初始化系统所需要的全部核心文件,例如:初始化init进程以及init.rc(可以用于设置很多系统的参数)等文件。如果你您希望了解更多关于此文件的信息可以参考以下网址:
http://git.source.android.com/?p=kernel/common.git;a=blob;f=Documentation/filesystems/ramfs-rootfs-initramfs.txt

 

二、boot.img解压

以下地址下载到工具,包含2个程序,

https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/android-serialport-api/android_bootimg_tools.tar.gz

* unpackbootimg
* mkbootimg

解压以后得到:
* boot.img-zImage     ----> kernel
* boot.img-ramdisk.gz ----> ramdisk


三、重点说下这个内核
boot.img-zImage

很好判断gzip格式,解压命令:

gunzip -c boot.img-ramdisk.gz | cpio -i
解压后是个特定于cpu的目标文件 arm64 pe格式

四、重新打包
mkbootimg
 

android boot.img文件结构、拆包、打包