Customize Android Boot Animation and Linux Kernel Logo on Embedded Devices
This guide explains how to create a custom Android boot animation using frame sequences, package it correctly, compress it, replace it via ADB, and also covers modifying or hiding the Linux kernel and bootloader logos, including required tools, file formats, and safety precautions.
Boss: Our device boots showing Android. Replace Android with our company logo and add a cool animation. Developer: Got it, boss. Developer to UI: The boss wants a cool animation.
1. UI Design Frame Animation
When communicating with UI designers, clearly convey the boss's request for a "cool" animation. The most important points are:
Export the animation as a sequence of frames.
Resolution must match the board's resolution.
Use naming rule 00.jpg, 01.jpg … 99.jpg.
2. Create Animation Package
Create a folder named
bootanimation. Inside, create subfolders for the first part (named
part1) and the second part (named
part2). Place the UI‑designed animation frames in
part1and the last frame of the sequence in
part2. Add a
desc.txtfile with the following content:
<code>1024 768 60
p 1 0 part1
p 0 10 part2</code>Global parameters (first line)
1024– screen width in pixels.
768– screen height in pixels.
60– frames per second (FPS). Actual FPS may be limited by hardware.
Segment parameters (subsequent lines)
Each following line defines an animation segment in the format:
[type] [loop count] [delay] [directory name]First segment: p 1 0 generic1
p– normal play mode (play frames then stop).
1– play once.
0– no additional delay.
generic1– directory containing the PNG frames (e.g.,
part0,
part1).
Second segment: p 0 10 generic2
p– normal play mode.
0– infinite loop until the boot process ends.
10– delay of 10 frames (≈0.167 s at 60 FPS).
generic2– directory for the second animation.
The system first plays the animation in
generic1once with no delay.
Then it plays the animation in
generic2in an infinite loop, pausing 10 frames between loops.
The boot animation runs until the system finishes booting or is forcibly stopped.
Compress animation package (important step)
Compress the contents of the
bootanimationfolder itself, not the parent folder.
Use a “store” compression format (e.g., 360 compression custom setting).
3. Replace Animation Package
Use ADB to replace the boot animation. The device must be rooted (most development boards are already rooted). Typical commands:
<code>adb root
adb remount
adb push /path/to/bootanimation.zip /system/media
adb reboot</code>The package is usually named
bootanimation.zip; some manufacturers may use a different name.
4. Linux Boot Animation (Penguin Logo) and Kernel Logo
Some boards display a Linux penguin logo before Android starts. Modifying it usually requires changing kernel boot parameters or replacing kernel/bootloader logo files.
4.1 Confirm Logo Type
Linux kernel logo : typically embedded in the kernel, formats .ppm, .rle, or .png.
Bootloader logo : some devices (e.g., Qualcomm) show a splash image like
splash.imgduring the bootloader stage.
4.2 Replace Linux Kernel Logo
Obtain the kernel source code from the vendor or community.
Prepare a custom logo in PPM format matching the screen resolution (e.g., 1024×768).
Copy the
.ppmfile to the kernel source directory (e.g.,
drivers/video/logo/logo_linux_clut224.ppm).
Enable the logo in
make menuconfigunder Device Drivers → Graphics support → Bootup logo.
Compile the kernel and generate
boot.img.
Flash the new kernel with
fastboot flash boot boot.img.
4.3 Replace Bootloader Logo (Qualcomm example)
Extract the current splash image:
adb pull /dev/block/bootdevice/by-name/splash splash.imgModify the image with a tool such as
splash_screen_tooland repack.
Flash the new splash image:
fastboot flash splash splash.img4.4 Hide Penguin Logo Without Replacement
Add
logo.nologoto the kernel command line (requires unlocked bootloader and modified
boot.imgcmdline).
Disable
CONFIG_LOGOin the kernel configuration and recompile.
Notes
Risk warning : Modifying the kernel or bootloader may brick the device. Contact the manufacturer for assistance.
Compatibility : Logo implementation varies across devices; consult device documentation.
Backup : Always back up important data and keep original
boot.imgor
splash.imgbefore making changes.
Rare Earth Juejin Tech Community
Juejin, a tech community that helps developers grow.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.