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

须知少年凌云志,曾许人间第一流。这篇文章主要讲述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

 














    推荐阅读