Change Linux kernel splash screen
A Linux development computer
A graphic design application
ppmquantutility (part of
pnmnorawutility (part of
The Linux kernel source code
The splash image is stored in the Linux kernel sources in PPM (Portable Pixmap Format) format. To change the splash image, follow these steps:
Create a splash image using a graphic design application. Save the image as
You can convert any existing image to ppm format using conversion utilities such as
Reduce the number of colors to 224 using
ppmquant. Execute this command:
$ ppmquant 224 logo_custom.ppm > logo_custom_224.ppm
Convert the image to ASCII format using
pnmnoraw. Issue this command:
$ pnmnoraw logo_custom_224.ppm > logo_custom_clut224.ppm
The final name of the image must be
In the Linux kernel sources, replace the current logo image with the image you have just created. For Android, it is located at
If you already have the kernel compiled, remove the objects to generate the images with the new image. For Android:
$ rm -rf out/target/product/ccimx8xsbcpro/obj/KERNEL_OBJ
Build the firmware and program it in the module. The new splash is displayed when you boot your device.
Change Android boot animation
The boot animation and its configuration are contained in a ZIP file. The system selects this zip file from the following locations, in order:
getprop("vold.decrypt") = '1'`)
bootanimation.zip file includes the following:
desc.txt part0 \ part1 \ part directories ... / partN /
desc.txtfile containing the configuration of the animation.
One or more part directories with the PNG images that compose the animation, with filenames containing incremental numbers.
The animation sequentially displays the images in the
The files located in
part0 are displayed first.
Then, if there are more part folders, files within
part1 are displayed, and so on.
The boot animation must contain at least one sequence folder (
|You can find the complete specifications at bootanimation format.|
desc.txt file format
The contents of this file define how the sequences and images are displayed during the animation. The file is configured with the following:
The first line defines the general parameters of the animation:
WIDTH HEIGHT FPS
HEIGHTequal the resolution of the PNG images.
FPSdefines the number of images play per second.
It is followed by a number of rows of the form:
TYPE COUNT PAUSE PATH [#RGBHEX [CLOCK1 [CLOCK2]]]
TYPEis a single char indicating what type of animation segment this is:
pthis part will play unless interrupted by the end of the boot.
cthis part will play to completion, no matter what.
COUNTdefines the number of times that the sequence will loop. A 0 indicates that the sequence will loop infinitely until boot is complete. The last sequence of the animation typically has a COUNT value of 0.
PAUSEdefines (in number of frames) how long the scene will pause on the last frame before continuing. Divide the
PAUSEvalue by the FPS to convert it into time.
PATHis the name of the directory where the PNG images for this part are located (e.g.
RGBHEXis the background color, specified as #RRGGBB.
CLOCK2are the coordinates at which to draw the current time (for watches).
420 600 30 p 1 15 part0 p 0 0 part1
In this example, the 420 x 600 PNG images play at 30 fps.
The first scene (
part0) plays once and pauses for 15 frames (15/30 = 0.5 seconds) before moving onto the next scene (
part1), which loops until the boot has finished.
You can add as many sequence definition lines as necessary.
Part directories contain the images for each sequence of the animation. Every file is expected to be a PNG file that represents one frame in that part (at the specified resolution). They must be named sequentially: their name can have a common prefix but must end with a whole number incrementing by one.
boot_0000.png boot_0001.png boot_0002.png ... boot_0085.png
An animation must contain at least one sequence, so there should be at least one part folder within the
Generate your own boot animation
Follow these steps to create your own boot animation:
Generate the sequence or sequences of PNG images with a graphic design application. Remember to name the images with an incremental whole number.
Divide the animation into sequences and organize the PNG files in their corresponding sequence directories. If your animation contains just one sequence, you only need one folder.
desc.txtfile and configure your animation settings. See desc.txt file format for more information.
Zip your animation files (
desc.txtand directories) in a file called
bootanimation.zip. Run the zip compression command inside the directory with the
$ ls . desc.txt part0 part1 .... partn $ zip -0 -r ../bootanimation.zip *
You must run the command inside the directory and use the store option to generate the
Modify the Android sources to build firmware with your own boot animation: