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.