Splash Screen

LeslieAnn

Android Developer
Feb 8, 2011
2,895
1,720
0
Visit site
Which screen exactly are you referring to?

The LG logos, forget it. It's in the phones firmware.
The first animation (originally a Virgin logo with a flare) is in the boot.img. Not so easy to change. On Harmonia, this is the B&W Harmonia Aphrodite + Picasticks logo.

The only other two left are the boot animation movie (tons of turtorials) and the gray Android logo.
Aphrodite doesn't use a bootanimation and the gray android logo is replaced by the green Harmonia script.

The gray Android logo is in framework-res.apk.
It has very limited animation ability as it's only two images one sliding behind another and if you mess with it too much with will mess up or cause your phone to not completely load.
 

picasticks

Well-known member
Feb 28, 2011
136
58
0
Visit site
The splash animation is just a directory of .rle files in /bootimages. Each frame is a HVGA (320x480), 256-color image so it's just a matter of replacing the files. If you have basic Linux proficiency and know what gcc is, this is easy, otherwise you may want to stop reading.

You need to dump your phone's boot partition to a file, then extract the ramdisk. Then, either replace or create the files in the bootimages directory. Finally, repack the ramdisk and boot image, and use flash_image to flash them to your phone's boot partition.

1. This guide explains how to extract, unpack and repack the boot partition. On our phones the partition is mtd0.

2. The animation frame images need to be named according to this pattern:

sprint_power_on_00.rle
sprint_power_on_01.rle
etc.

If in your ramdisk tree, the bootimages directory is empty it's because your ROM has deleted the original VM animation, just create the files named with that pattern and you should be fine.

The ".rle" isn't a standard RLE format. The simplest way to convert to this format is to use ImageMagick to convert to raw RGB along with a small C program called to565 that's part of the Android tree (it's easy to compile, "gcc to565.c" and you're done). i.e. I do:

convert -depth 8 file.png rgb:tmp.raw
to565 -rle < tmp.raw > file.rle && rm tmp.raw

If you screw something up with the format conversion, don't worry, your phone will still boot, it'll just be a bunch of colored bars for the splash animation.

3. The guide I linked above explains how to repack the ramdisk (using mkbootfs) and the boot partition image (using mkbootimg). To save you some time, the parameters for mkbootimg for our phones are:

mkbootimg --kernel $1 --ramdisk $2 --cmdline 'mem=477M console=ttyMSM2,115200n8 androidboot.hardware=thunderc' --base 0x12200000 -o $3

where $1 is kernel filename, $2 is ramdisk filename, $3 is whatever you want to call the boot partition image (i.e. boot.img).

If you are doing this for the first time, it will take you a little while to figure things out. Make sure to save a backup of the original boot partition image you dumped. If you break your boot partition, your phone will stop at LG screen, then you just need to pull and replace the battery and hold down buttons to boot to recovery. Then either fix the problem and flash a new boot image, or flash back the original boot image.
 
  • Like
Reactions: WakeUpC22

eightieskhild

Member
Apr 7, 2011
10
0
0
Visit site
Which screen exactly are you referring to?

The LG logos, forget it. It's in the phones firmware.
The first animation (originally a Virgin logo with a flare) is in the boot.img. Not so easy to change. On Harmonia, this is the B&W Harmonia Aphrodite + Picasticks logo.

The only other two left are the boot animation movie (tons of turtorials) and the gray Android logo.
Aphrodite doesn't use a bootanimation and the gray android logo is replaced by the green Harmonia script.

The gray Android logo is in framework-res.apk.
It has very limited animation ability as it's only two images one sliding behind another and if you mess with it too much with will mess up or cause your phone to not completely load.

yes i'm looking to replace the virgin part with one image and a sound. how does this work, i'm trying to understand.
 

picasticks

Well-known member
Feb 28, 2011
136
58
0
Visit site
read the post above yours...
Yeah, just read my other post. If you're looking to do just one image, you can just name it sprint_power_on_00.rle and put it in /bootimages (and delete the old .rle files). It'll display for a few seconds.

I haven't looked in a while, but if I remember right, the sound isn't part of the boot ramdisk, it's in /system somewhere. So, that's easy to swap out once you track down the exact filename.
 

eightieskhild

Member
Apr 7, 2011
10
0
0
Visit site
which is why I asked where would i start learning, i've been modding all kinds of things for years, started with nintendo 64 games, in 1998. I use Pinguy 80% of the time, I think i can handle this, its just when i google this, i always get a converter, which never helps.
 

eightieskhild

Member
Apr 7, 2011
10
0
0
Visit site
The splash animation is just a directory of .rle files in /bootimages. Each frame is a HVGA (320x480), 256-color image so it's just a matter of replacing the files. If you have basic Linux proficiency and know what gcc is, this is easy, otherwise you may want to stop reading.

You need to dump your phone's boot partition to a file, then extract the ramdisk. Then, either replace or create the files in the bootimages directory. Finally, repack the ramdisk and boot image, and use flash_image to flash them to your phone's boot partition.

1. This guide explains how to extract, unpack and repack the boot partition. On our phones the partition is mtd0.

2. The animation frame images need to be named according to this pattern:

sprint_power_on_00.rle
sprint_power_on_01.rle
etc.

If in your ramdisk tree, the bootimages directory is empty it's because your ROM has deleted the original VM animation, just create the files named with that pattern and you should be fine.

The ".rle" isn't a standard RLE format. The simplest way to convert to this format is to use ImageMagick to convert to raw RGB along with a small C program called to565 that's part of the Android tree (it's easy to compile, "gcc to565.c" and you're done). i.e. I do:

convert -depth 8 file.png rgb:tmp.raw
to565 -rle < tmp.raw > file.rle && rm tmp.raw

If you screw something up with the format conversion, don't worry, your phone will still boot, it'll just be a bunch of colored bars for the splash animation.

3. The guide I linked above explains how to repack the ramdisk (using mkbootfs) and the boot partition image (using mkbootimg). To save you some time, the parameters for mkbootimg for our phones are:

mkbootimg --kernel $1 --ramdisk $2 --cmdline 'mem=477M console=ttyMSM2,115200n8 androidboot.hardware=thunderc' --base 0x12200000 -o $3

where $1 is kernel filename, $2 is ramdisk filename, $3 is whatever you want to call the boot partition image (i.e. boot.img).

If you are doing this for the first time, it will take you a little while to figure things out. Make sure to save a backup of the original boot partition image you dumped. If you break your boot partition, your phone will stop at LG screen, then you just need to pull and replace the battery and hold down buttons to boot to recovery. Then either fix the problem and flash a new boot image, or flash back the original boot image.

by chance do you have the scripts in that tutorial? they are not there.
 

picasticks

Well-known member
Feb 28, 2011
136
58
0
Visit site
by chance do you have the scripts in that tutorial? they are not there.
Let me know if there's anything specific you can't track down.

FYI, I've also been posting recently on this thread, trying to help someone with the boot partition image extraction/packing.

One idea I had there was, if you're on Windows and don't have the mkbootfs and mkbootimg binaries compiled for your platform, you could possibly just do this step directly on your phone. If you download the picasticks kernel .zip, inside the kernel directory you should find these programs, compiled for ARM. Copy them to your phone and chmod them executable, and run them there. (If none of that made any sense ... just forget I said it.)

It is a lot of stuff to learn just to swap in a new splash screen ... for sure I would never have done it if that's all I was after! :)
 
Feb 19, 2011
1,971
284
0
Visit site
arm binaries for yaffs and boot imgs

...One idea I had there was, if you're on Windows and don't have the mkbootfs and mkbootimg binaries compiled for your platform, you could possibly just do this step directly on your phone. If you download the picasticks kernel .zip, inside the kernel directory you should find these programs, compiled for ARM. Copy them to your phone and chmod them executable, and run them there....
searched around a bit for that .zip, found some on mediafire here
thanks! those complete my collection of ARM binaries for .img files! :p

edit: here's the collection. <link>
Contains: dump_image, mkbootimg, unyaffs, and mkfs.yaffs2.arm
I got mkfs.yaffs2.arm from <here>
unyaffs from <here> but I only have the unknown dev to thank for compiling it, still, thanks!
and the others were from the picasticks 07a zip, which you might have mentioned koush's anykernel about? so, maybe thanks koush too if that was correct.
I was hoping someone else would enjoy these utilities as much as I'm about to, so I packaged them all in one place.
If I missed giving credit to anyone for something regarding these pretties, I apologize and will be happy to edit in your name.
 
Last edited:

Forum statistics

Threads
949,659
Messages
6,943,849
Members
3,161,579
Latest member
nshirhall