Customizing the boot image
So far, you learned how to obtain the kernel source code, how to set up the system, how to configure the kernel, and how to create your first custom kernel image. The next step is about equipping your device with your new kernel. To achieve this, we are going to analyze the internal structure of the boot.img
file used by every Android device.
Creating the boot image
A custom ROM comes with four .img
files, necessary to create a working Android system. Two of them (system.img
and data.img
) are compressed images of a Linux compatible filesystem.
The remaining two files (boot.img
and recovery.img
) don't contain a standard filesystem. Instead, they are custom image files, specific to Android. These images contain a 2KB header sector, the kernel core, compressed with gzip
, a ramdisk, and an optional second stated loader.
Android provides further info about the internal structure of the image file in the boot.img.h
file contained in the mkbootimg
package in the AOSP source...