Skip to content

Android Logo and Bootanimation

Note

  1. Rockchip series displays the LOGO in two stages: Uboot and Kernel. logo.bmp is for the Uboot stage, and logo_kernel.bmp is for the Kernel stage.
    1. LOGO resolution must be less than the display resolution.
    2. The format of customized LOGO must be consistent with the original LOGO image format, e.g., bmp, bit depth, and other parameters.
Main Control Models LOGO Path
A133 K5/K5C longan/device/config/chips/a133/configs/c3/android/bootlogo.bmp
H618 K2B/K2C longan/device/config/chips/h618/boot-resource/boot-resource/bootlogo.bmp
RK3562/RK3568/RK3588 K1/K1B/K3/K8 kernel-5.10/logo.bmp
kernel-5.10/logo_kernel.bmp
RK3576 K7/K7C kernel-6.1/logo.bmp
kernel-6.1/logo_kernel.bmp
T527 K9 longan/device/config/chips/t527/boot-resource/boot-resource/bootlogo.bmp

Boot Animation

Note

  1. Android supports two kinds of boot animation, boot video or boot animation file: bootanimation.mp4 and bootanimation.zip.
    1. When configure using mp4 format boot video, after image installing or factory reset,the Android boot animation will be displayed instead of customized boot video, later boot up will display customized boot video .
    2. When both files exist, mp4 has higher priority than zip. boot animation zip will be skipped. For specific priority, see frameworks/base/cmds/bootanimation/BootAnimation.cpp.
Main Control Models Boot Animation Path
A133 K5/K5C android/device/softwinner/ceres-c3/media/bootanimation.zip
H618 K2B/K2C device/softwinner/apollo/common/media/bootanimation/bootanimation.zip
RK3562/RK3568/RK3576/RK3588 K1/K1B/K3/K7/K7C/K8 device/rockchip/common/bootshutdown/bootanimation.zip
T527 K9 device/softwinner/saturn/t527-demo/media/bootanimation/bootanimation.zip

A133 Boot Animation

  1. Replace animation in source code:
android/device/softwinner/ceres-c3/media/bootanimation.zip
  1. add animation file copy instruction in mk:

bootanimation.zip format

--- a/android/device/softwinner/ceres-c3/ceres_c3.mk
+++ b/android/device/softwinner/ceres-c3/ceres_c3.mk

PRODUCT_COPY_FILES += \
+       $(LOCAL_PATH)/media/bootanimation.zip:system/media/bootanimation.zip

bootanimation.mp4 format

Note

For K5C using mp4 format, it needs to be renamed to boot.mp4 (K5C is the board model).

--- a/android/device/softwinner/ceres-c3/ceres_c3.mk
+++ b/android/device/softwinner/ceres-c3/ceres_c3.mk

PRODUCT_COPY_FILES += \
+       $(LOCAL_PATH)/media/bootanimation.mp4:system/media/bootanimation.mp4

A133 Boot Music Customization

If boot music is needed, place the boot music file in the part0 directory and name it Audio.wav. Add audio_conf.txt to the root directory and copy the original animation configuration.

part0/audio.wav
audio_conf.txt

H618 Boot Animation

  1. Store the animation file (zip or mp4 format):
device/softwinner/apollo/common/media/bootanimation/bootanimation.zip
device/softwinner/apollo/common/media/bootanimation/bootanimation.mp4
  1. Add copy instruction in mk:

bootanimation.zip format

--- a/device/softwinner/apollo/common/media/config.mk
+++ b/device/softwinner/apollo/common/media/config.mk

PRODUCT_COPY_FILES += \
+       $(BOOTANIMATION_CONFIG_PATH)/bootanimation.zip:system/media/bootanimation.zip

bootanimation.mp4 format

--- a/device/softwinner/apollo/common/media/config.mk
+++ b/device/softwinner/apollo/common/media/config.mk

PRODUCT_COPY_FILES += \
+       $(BOOTANIMATION_CONFIG_PATH)/bootanimation.mp4:system/media/bootanimation.mp4

RK3562/RK3568/RK3576/RK3588 Boot/Shutdown Animation

Boot animation location:

device/rockchip/common/bootshutdown/bootanimation.zip

Shutdown animation location:

device/rockchip/common/bootshutdown/shutdownanimation.zip

Enable configuration:

--- a/device/rockchip/common/BoardConfig.mk
+++ b/device/rockchip/common/BoardConfig.mk

-BOOT_SHUTDOWN_ANIMATION_RINGING ?= false
+BOOT_SHUTDOWN_ANIMATION_RINGING ?= true

Animation copy implementation:

cat device/rockchip/common/bootshutdown/bootshutdown.mk
CUR_PATH := device/rockchip/common/bootshutdown

HAVE_BOOT_ANIMATION := $(shell test -f $(CUR_PATH)/bootanimation.zip && echo yes)
HAVE_SHUTDOWN_ANIMATION := $(shell test -f $(CUR_PATH)/shutdownanimation.zip && echo yes)

ifeq ($(HAVE_BOOT_ANIMATION), yes)
PRODUCT_COPY_FILES += $(CUR_PATH)/bootanimation.zip:$(TARGET_COPY_OUT_SYSTEM)/media/bootanimation.zip
endif
ifeq ($(HAVE_SHUTDOWN_ANIMATION), yes)
PRODUCT_COPY_FILES += $(CUR_PATH)/shutdownanimation.zip:$(TARGET_COPY_OUT_SYSTEM)/media/shutdownanimation.zip
endif

bootanimation.zip Customization

File Structure

Tip

bootanimation.zip contains the part0, part1 folders and the desc.txt file. The part0 and part1 folders contain the split images of the animation, in png format.

zipinfo bootanimation.zip
 part0/
 part0/0000.png
 part0/0001.png
 part0/0002.png
 ...
 part1
 part1/0013.png
 part1/0014.png
 part1/0015.png
 ...
 audio_conf.txt
 desc.txt

desc.txt Configuration File

Note

Command parsing: 1. WIDTH: 800 is the image width; HEIGHT: 480 is the image height; FPS: 15 is the animation frame rate.
2. TYPE: p means play until boot completes; COUNT: 1 is the number of playbacks, 0 means infinite loop until boot ends; PAUSE: 0 is the number of frames to pause after the part ends; PATH: part1 path.
3. The last line of the command must be an empty line.

// WIDTH HEIGHT FPS
800 480 15
// TYPE COUNT PAUSE PATH
p 1 0 part0
p 0 0 part1

Windows Zip Compression/Packaging

  1. Select the part0, part1, desc.txt, and other files for compression (ensure part0, part1, and other files are at the root level of the zip archive).
  2. Choose the Store compression method.

image-20250408175807082

Linux Zip Compression/Packaging

Tip

Ensure part0, part1, and txt files are at the same root level inside the zip.

Linux compression, specify the lowest compression level stored, which only archives without compression.

zip -0qry bootanimation.zip  *.txt part0/ part1/

Replacing Boot Animation

For debugging purpose, replacing the boot animation in /system.

Tip

​ It's not recommended to use remount way to update anything in /system. This action works but will let OTA fail, cause it might change dynamic partition.so DON'T use remount in production env.

Operation Example: Replace the file to the specified path on the board via ADB.

adb root
adb remount
adb push $(bootanimation_path) /system/media/bootanimation.zip
adb reboot