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:

<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

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:

<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.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.

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

login 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.