Mobile Development 10 min read

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.

Rare Earth Juejin Tech Community
Rare Earth Juejin Tech Community
Rare Earth Juejin Tech Community
Customize Android Boot Animation and Linux Kernel Logo on Embedded Devices
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.
image.png
image.png

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 part1 and the last frame of the sequence in part2. Add a desc.txt file with the following content:

1024 768 60
p 1 0 part1
p 0 10 part2

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 generic1 once with no delay.

Then it plays the animation in generic2 in 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 bootanimation folder 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:

adb root
adb remount
adb push /path/to/bootanimation.zip /system/media
adb reboot

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.img during 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 .ppm file to the kernel source directory (e.g., drivers/video/logo/logo_linux_clut224.ppm).

Enable the logo in make menuconfig under 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.img Modify the image with a tool such as splash_screen_tool and repack.

Flash the new splash image:

fastboot flash splash splash.img

4.4 Hide Penguin Logo Without Replacement

Add logo.nologo to the kernel command line (requires unlocked bootloader and modified boot.img cmdline).

Disable CONFIG_LOGO in 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.img or splash.img before making changes.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

AndroidLinux kernelCustomizationADBbootanimation
Rare Earth Juejin Tech Community
Written by

Rare Earth Juejin Tech Community

Juejin, a tech community that helps developers grow.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.