Jump to content

[Guide] Custom boot splash image


Recommended Posts

Guest GizmoTheGreen
Posted (edited)

Hello here is my guide to flashing a custom boot splash image, it's a bit harder since there is no "splash" partition.

the old way from the ZTE Blade where you could do


adb flash splash splash.img

is over... okay step one. get gimp. make your 480x800 image. now vertcially flip it! (don't rotate 180, you want to flip/mirror it upside down. or else it will be mirrored on the device later) now in gimp, go file -> export... export as BMP and click save. it will now prompt for options, check the compatibility one. or the file will be too big. also check the RGB 565 format. now we have our splash image! on to the fun stuff... connect your phone and have debugging on, or boot to recovery manually. now push your file to the phone.

adb push yoursplash.bmp /sdcard/

now you'll want to go into shell.

adb shell

now for some fun stuff...

dd if=/sdcard/yoursplash.bmp of=/dev/block/mmcblk0p18 bs=768070 count=1 conv=notrunc

last option is very important, this means it should just overwrite the first bytes with your splash, and leave the rest alone, without conv=notrunc it would erase anything after that... or thats the theory anyway... but we need to keep the rest, it is an image used for offline charging (when the phone is off)

hope this is helpful, I might add some pictures later :)

thanks to KonstaT for explaining to me how the splash image worked on the new Blade 3

Edited by GizmoTheGreen
Guest KonstaT
Posted

Nice guide. :) Had to do one for myself too and I can verify that this works.

The regular (toolbox's) dd had some issues with conv, so I used dd from busybox.

/system/xbin/busybox dd if=/sdcard/yoursplash.bmp of=/dev/block/mmcblk0p18 bs=768070 count=1 conv=notrunc[/CODE]

Guest KonstaT
Posted

KonstaT, can you add it to CM10? :)

No, it has to be done like on the first post. It's still a separate splash partition, it's just different type than on the original Blade (eMMC vs. MTD). You're probably still thinking of the initlogo and it's a completely different thing.

Guest GizmoTheGreen
Posted (edited)

Nice guide. :) Had to do one for myself too and I can verify that this works.

The regular (toolbox's) dd had some issues with conv, so I used dd from busybox.

/system/xbin/busybox dd if=/sdcard/yoursplash.bmp of=/dev/block/mmcblk0p18 bs=768070 count=1 conv=notrunc
Thanks, and thank your for the help as well! hmm, dd seemed to work ok for me, I just put my phone turned off on the charger, and the image is there. what is the issue with conv? from wiki article on dd

dd can modify data in place.

Overwrite the first 512 bytes of a file with null bytes:

dd if=/dev/zero of=path/to/file bs=512 count=1 conv=notrunc

The notrunc conversion option means do not truncate the output file — that is, if the output file already exists, just replace the specified bytes and leave the rest of the output file alone. Without this option, dd would create an output file 512 bytes long.

[/code]

this is why I think without notrunc it would cause issues, I have not tried without.

Edited by GizmoTheGreen
Guest KonstaT
Posted

Thanks, and thank your for the help as well! hmm, dd seemed to work ok for me, I just put my phone turned off on the charger, and the image is there. what is the issue with conv?

Fails with 'conv option disabled' message. I'm not sure what's that about. Might be only the toolbox in CM10. Works fine with busybox's dd.

You can find the offline charger images from stock ROMs /system/etc/res/images/charger. I've seen these added to CM builds on some devices. I never did that and the images are still displayed and offline charging works on CM10. I'm quite sure these are kept on a separate partition somewhere. It might be that ZTE is just trolling us with that extra image on splash partition. ;)

Guest GizmoTheGreen
Posted

I think theres even more images in there. I might try and modify them sometime and see if it actually does anything, and if it does, might write a program to split them up for editing. problem is I'm a lazy person, I can code, as in, I know a bit of c/c++/c#. I lack experience, heavily. :P

Posted (edited)

btw anyone know how to get partitions size? /proc/mtd return nothing.. wtf?

/proc/partitions returns size in blocks, what is block size? 1024?

Edited by x6itru
Posted

i'm just learning to build android rom's and compile linux kernels :P

Posted

Noob question:

Why not modify splash.img and use recovery to load it? For example with this:

package_extract_file("splash.img", "/dev/block/mmcblk0p18");

splash.img contains a number of bmp files. Each image ix 0x8800 bytes long (00 padded to fill the space). The first is the android robot the rest are stated above battery charging related.

Guest razzmataz1478
Posted (edited)

btw anyone know how to get partitions size? /proc/mtd return nothing.. wtf?

/proc/partitions returns size in blocks, what is block size? 1024?

Times the blocks by 1024 (you're right!) to get what you'd put on the device makefile

Edited by razzmataz1478
Guest KonstaT
Posted

Noob question:

Why not modify splash.img and use recovery to load it? For example with this:

package_extract_file("splash.img", "/dev/block/mmcblk0p18");

splash.img contains a number of bmp files. Each image ix 0x8800 bytes long (00 padded to fill the space). The first is the android robot the rest are stated above battery charging related.

Yeah, sure you can. It's just easier to use the method in the first post than start hex editing the splash.img.

I wrote an easy to use tool for changing the splash/charging images. It's also ClockWorkMod flashable.

http://www.modaco.co...splash-flasher/

  • 7 months later...
Guest MJonMoDaCo
Posted

Nice guide Gizmo. Spent an afternoon making splash pages using your guide. Flashed perfectly, and now I'm injecting the images into all the ROMs I use. Good job. On to boot animations now...

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.