ROM Androud: Manipulasi boot.img

From OnnoWiki
Revision as of 10:12, 31 December 2014 by Onnowpurbo (talk | contribs) (New page: split_bootimg.pl The Android boot.img file contains a kernel and a ramdisk. While researching Android, I've needed to manipulate the ramdisk of a phone. I created the split_bootimg.pl scr...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

split_bootimg.pl

The Android boot.img file contains a kernel and a ramdisk. While researching Android, I've needed to manipulate the ramdisk of a phone. I created the split_bootimg.pl script to parse the boot.img file format and extract the parts.

split_bootimg.pl
http://www.enck.org/tools/split_bootimg_pl.txt

The following example uses the boot.img from the full TC4-RC28 update:

% ./split_bootimg.pl boot.img 
Page size: 2048 (0x00000800)
Kernel size: 1388548 (0x00153004)
Ramdisk size: 141518 (0x000228ce)
Second size: 0 (0x00000000)
Board name: 
Command line: no_console_suspend=1
Writing boot.img-kernel ... complete.
Writing boot.img-ramdisk.gz ... complete.

Extract the ramdisk.

% mkdir ramdisk
% cd ramdisk
% gzip -dc ../boot.img-ramdisk.gz | cpio -i
% cd ..

Make any changes necessary (e.g., set ro.secure=0 in default.prop).

Recreate the cpio archive using the mkbootfs binary produced from building the Android source code (The cpio utility in OS X does not recognize the newc format, therefore mkbootfs is the best option for OS X users).

% mkbootfs ./ramdisk | gzip > ramdisk-new.gz

Recreate the image file using the mkbootimg binary produced from building the Android source code.

% mkbootimg --cmdline 'no_console_suspend=1 console=null' \
   	    --kernel boot.img-kernel \ 
	    --ramdisk ramdisk-new.gz \
            -o boot-new.img

Additional Notes:

   For Nexus One: Add --base 0x20000000 to mkbootimg command-line.
   The console=null command line option was introduced in the TC4-RC30 boot images to remove the root shell
   Do not use a boot.img image extracted directly from /dev/mtd/mtd2. This image may become corrupted during the read process.


Referensi