1. 程式人生 > >Android boot.img的由來

Android boot.img的由來

boot.img是主要由以上kernel和ramdisk.img生成得到的,具體可參考build/core/Makefile檔案;另外boot.img還包括一些必須的檔案頭資訊,它們之間非頁面對齊部分用0填充。

mkbootimg程式由system/core/mkbootimg工程生成得到,為此我們來看看其中的mkbootimg.c檔案,其中有這樣一段:

//資訊頭部分
if(write(fd,&hdr,sizeof(hdr)) != sizeof(hdr)) goto fail;
if(write_padding(fd,pagesize,sizeof(hdr))) goto fail;


//核心部分
if(write(fd,&kernel_data, hdr.kernel_size)!= hdr.kernel_size) goto fail;
if(write_padding(fd,pagesize,hdr.kernel_size)) goto fail;


//檔案系統部分
if(write(fd,&ramdisk_data,hdr.ramdisk_size)!= hdr.ramdisk_size) goto fail;
if(wirte_padding(fd,pagesize,hdr.ramdisk_size)) goto fail;