Updating Bootlogo and Bootanimation for Nokia 8110 4G

  |   Source

Before you continue reading: I will provide some details on creating bootlogos (which basically means the bootsplash) for the Nokia 8110 4G. This post will have mostly cover some technical details and is not a full "how-to" as it lacks a description of most of the required tools. I am using an AOSP tree to do all the stuff here that has been built for an generic architecture. I might create a stripped version of the tools and provide it as soon as I find some time doing so.

/images/8110/nokia_boot.jpg

Bootlogos for Android devices

Most Android devices show some kind of bootsplash right after powering on. After some time they switch to a boot animation. Both are stored at different locations in different formats on the device.

The boot animation is some non-compressed zip-file that is stored at /system/media/bootanimation.zip and will be rendered after the device has booted the kernel and mounted the /system partition. The file basically contains some directories with numbered files and a file called desc.txt telling, which files shall be played when in what way. I will not cover this, as there are a low of guides on that around on the internet. Just note: The Nokia 8110 just uses the Android mechanisms to show the "NOKIA" logo during boot.

The bootsplash shown directly after turining the device on is a different story. It is stored in some low-level raw format that needs to fit some parameters of the LCD to be properly drawn.

16bit Colors

Codeaurora has some script to render those logos based on PNG or other image files. Unfortunately, the script creates 24bit color images that use one byte for each color value. The Nokia 8110 4G cannot render those, as the display requires a 16bit color space.

I have patched the script based on the original Codeaurora version. You can find the script working with the Nokia 8110 4G on github.

It basically converts the 8 bit color channels to 5 bit color values for red and blue and another 6 bit for the green channel. The resulting values are concatenated to a 16 bit color code that can be understood by the device.

Splash Partition

The device contains a splash partition. This holds the boot logo. The content of this partition is not signed and we can update it whenever we gained writeaccess to it. Luckily the recovery has such access, so it is possible to assembly a signed update.zip that updates the bootsplash.

As a PoC, I have created an update package that writes some Nokia logo to the spash and some bootanimation to the system partition. I could not resist to use some of the well known Nokia powerup animations for this. You can see the result here:

You can also download the update.zip here, if you want to understand, how it actually works. Note: The provided update.zip is properly signed. I would not recommend to install it on a productive device as you most likely will lose update capabilities. If you use the update.zip on your device, note that you do it on your own risk and that I will not accept any responsibility for broken hardware.