[Dell Venue] x1123:
split / unpack / repack boot.img

Hi Guys,

My biggest problem to determine how to pack kernel into boot image is solved. I optimistic to have booting kernel and pack into boot image. I cant determine the board kernel base address. Now I found out the base address is 0x20000000 (twenty million). I have test the coomand line and work well. This is the test procedure > download live boot.img (mean its proved bootable). I toke 408-boot image from many Streakdriod4 rom ... thanks to TheManii :D :

$ split_bootimage.pl 408boot.img
(I renamed boot.img to 408boot.img for easy remember)

output

Page size: 2048 (0x00000800)
Kernel size: 3092536 (0x002f3038)
Ramdisk size: 168270 (0x0002914e)
Second size: 0 (0x00000000)
Board name:
Command line: androidboot.hardware=venue
Writing 408boot.img-kernel ... complete.
Writing 408boot.img-ramdisk.gz ... complete.
...

Now I have in the folder > 3 files : 408boot.img 408boot.img-kernel 408boot.img-rakdisk.gz. We test our command line > to repack kernel and ramdisk into boot image and must be flashable to device and booting :

$ mkbootimg --kernel 408boot.img-kernel --ramdisk 408boot.img-ramdisk.gz --pagesize 2048 --cmdline "androidboot.hardware=venue" --board venue --base 0x20000000 -o new408boot.img <ENTER>

You should have new408boot.img bootable into our venue viat fastboot > test >

$sudo fastboot earse boot (to ensure existing boot is clean)
$sudo fastboot flash boot new408boot.img
$sudo fastboot reboot
...

Mu dell venue with TheManii rom booting properly.

But we need to ensure everything work well. Let us utilize second procedure well known in the world :D

$rm 408boot.img-kernel 408boot.img-ramdisk.gz new408boot.img [B][COLOR="Red"](to clean the folder).[/COLOR][/B]
$unpack-bootimg.pl 408boot.img [ENTER]

OUTPUT WILL BE

kernel written to 408boot.img-kernel.gz
ramdisk written to 408boot.img-ramdisk.cpio.gz
561 blocks

extracted ramdisk contents to directory 408boot.img-ramdisk/

By using UNPACK method we will have THREE file (four including 408boot.img) in folder

408boot.img 408boot.img-ramdisk 408boot-ramdisk.cpio.gz 408boot.img-kernel.gz

I choose unpack method since I wanna to test all command line available in internet is working properly. I change initlogo.rle with one I download from internet and edit default.prop file.

$nano -w 408boot.img-ramdisk/default.prop
EDIT THE text > ro.secure=1 TO ro.secure=0.
change initlogo.rle with other FILENAME.rle (You can download from internet)

Now we have ramdisk file (folder) with different default.prop file and initlogo.rle file (different image .. default is dell logo)

Create new ramdisk file to enable us create bootable image

$mkbootfs 408boot.img-ramdisk | gzip > new408-ramdisk [ENTER]

we should have file named new408-ramdisk gziped :D

Now repack kernel and new ramdisk >

$mkbootimg --kernel 408boot.img-kernel.gz --ramdisk new408-ramdisk --pagesize 2048 --board venue --cmdline "androidboot.hardware=venue --base 0x20000000 -o realynewboot.img [ENTER]
...

flash realynewboot.img via fastboot :D my boot splash changed into image attached ...

for step by step ... i put on MY BLOG

I share this to have someone try together to compile a kernel and convert into bootable image. with this kernel proble tackled ... build ROM is easier :D