Sunday, January 9, 2011

Custom boot logo for Spice MI 300 and its clones

Bored to see the factory default splash boot logo everytime you boot/power on your phone, here is a simple guide to have a custom boot logo on your phone. This post does NOT cover how to customize the boot animation while the phone bootstrap the OS.

What you need:
1. A Spice MI 300 or its clone (commtiva z71, orange boston, Motorola quench xt2...)
2. A custom boot logo. Skip 2 and 3 if you already have a boot logo for MI 300.
3  (a) Image editing tool to get the a raw format file.
    (b) Android utility tool rgb2565 to convert this raw file into bootlogo

4. Fastboot binary to push the file into android splash partition.
5. 10-15 minutes of your time :)

 Image editing tools.
Like Imagemagick (Convert.exe), Gimp, Adobe photoshop, Microsoft Paint. (Google picasa  will NOT do :( )
Android utility tool rgb2565 Source
Binary rgb2565 file

Android boot logo specification for MI 300.
The boot logo file is of 320x480 pixels 16bit raw565 format with a size <= 307200 bytes.

How to get this file ?
Search, borrow, or just create one :)
a)To create this custom boot logo we shall start with a picture file of your choice, letsay splashfile.png.
b)Use MSpaint/gimp/Adobephotoshop to rezise the file into 320x480 8bit color non-interlaced png file.
c)Then convert this file into raw format splashfile.raw using (convert.exe from imagemagick)/gimp/photoshop. Make sure that the file size is less than or equal to  <= 460800 bytes.
$ convert -depth 8 splashfile320x480.png rgb:splashfile320x480.raw
Convert expects the input file to be in the same directory.
d) Now use rgb2565 to convert the raw image file into splashfile.raw565
$ rgb2565 < splashfile320x480.raw > splashfile.raw56  
 Make sure that the file size is less than or equal to <= 307200 bytes
Once you have the logo file ready, shutdown/poweroff the phone.
Boot  the into fastboot mode (Vol Down + Hang Up(red) + Power).
Connect the phone to your computer.  Now run in command prompt

$ fastboot flash splash splashfile.raw565
$ fastboot reboot

Enjoy your custom logo :)

Little background about android filesystems and partitions:
Android device firmware ROM will have the following  partitions.

[Firmware File Name]
 FILENAME_FLASH_HEX         = "F0X-0-1280-NPRG7627.hex"
 FILENAME_FLASH_BIN         = "xxx.bin"
 FILENAME_PARTITION         = "F0X-0-1280-partition.mbn"
 FILENAME_QCSBLHDCFG        = "F0X-0-1280-qcsblhd_cfgdata.mbn"
 FILENAME_QCSBL             = "F0X-0-1280-qcsbl.mbn"
 FILENAME_OEMSBLHD          = "F0X-0-1280-oemsblhd.mbn"
 FILENAME_OEMSBL            = "F0X-0-1280-oemsbl.mbn"
 FILENAME_AMSSHD            = "F0X-0-1280-amsshd.mbn"
 FILENAME_AMSS              = "F0X-0-1280-amss.mbn"
 FILENAME_CEFS              = "cefs_modem.mbn"
 FILENAME_APPSBOOTHD        = "F0X-0-1280-appsboothd.mbn"
 FILENAME_APPSBOOT          = "F0X-0-1280-appsboot.mbn"
 FILENAME_ANDROID_BOOT      = "F0X-0-1280-7003-boot.img"
 FILENAME_ANDROID_SYSTEM    = "F0X-0-1280-7003-system.img"
 FILENAME_ANDROID_USER_DATA = "F0X-0-1280-7003-userdata.img"
 FILENAME_ANDROID_RECOVERY  = "F0X-0-1280-recovery.img"
 FILENAME_ANDROID_SPLASH    = "F0X-0-1280-7003-splash.img"
 FILENAME_ANDROID_HIDDEN    = "F0X-0-1280-7003-hidden.img"
 FILENAME_ANDROID_FTM       = "F0X-0-1280-ftm.img"
Of these the boot logo goes into FILENAME_ANDROID_SPLASH partition which has a flag 0x1000.
We use the fastboot protocol to update the splash filesystem with a custom boot logo 
to the android device.  
 Note: If you get dll missing error while mile running fastboot, you need to install the
Android SDK or atleast get these dll files and put them in the same directory as fastboot.

No comments:

Post a Comment