This document explains how to change the boot logo. It is divided into two parts: the first part covers the Ubuntu platform, and the second part covers the Android platform.
The official Khadas Ubuntu image displays three logos during system boot:
The U-Boot logo is located at /usr/share/fenix/logo/logo.bmp.
The required image format is BMP with a resolution of 500x500px and a color depth of 24 bits.
You can use the terminal to check the format of the default logo image:
$ file /usr/share/fenix/logo/logo.bmp
Example output:
/usr/share/fenix/logo/logo.bmp: PC bitmap, Windows 3.x format, 500 x 500 x 24, image size 750002, resolution 2834 x 2834 px/m, cbSize 750056, bits offset 54
To change it, simply replace the default logo.bmp file with your own BMP image that meets the format requirements.
Use the netpbm tool to convert a PNG image to the required PPM format.
$ pngtopnm linux_logo.png > linux_logo.pnm $ pnmquant 224 linux_logo.pnm > linux_logo_clut224.pnm $ pnmtoplainpnm linux_logo_clut224.pnm > logo_linux_clut224.ppm
Place the generated logo_linux_clut224.ppm file into the drivers/video/logo/ directory of your Linux kernel source code, replacing the existing file.
Recompile the kernel. After flashing the new kernel, the boot logo will be updated.
The Plymouth logo file is located at /usr/share/fenix/logo/logo.png. Replace this .png file to change the graphical boot splash screen.
If you are building a custom image with Fenix, you can change the logo by replacing the file at archives/logo/png/logo.png before the build.
Starting from Android 10, Rockchip merged the logo partition into the super partition, making it impossible to modify the boot logo dynamically without rebuilding the entire firmware. To address this, a new custom partition has been added to allow for dynamic logo updates.
kernel-6.1/logo.bmp.
You can push a prepared logo.bmp file to the device using ADB.
$ adb root $ adb remount $ adb push logo.bmp /vendor/custom/ $ adb reboot
Example command output:
$ adb root restarting adbd as root $ adb remount AVB verification is disabled, disabling verity state may have no effect Remounted /system as RW Remounted /vendor as RW Remounted /odm as RW Remounted /system_dlkm as RW Remounted /system_ext as RW Remounted /vendor_dlkm as RW Remounted /odm_dlkm as RW Remounted /product as RW Remount succeeded $ adb push logo.bmp /vendor/custom logo.bmp: 1 file pushed, 0 skipped. 655.0 MB/s (4147272 bytes in 0.006s) $ adb reboot
After the device reboots, the new logo should be displayed.
This method involves modifying the Android source code and building a complete update package.
1) Replace the logo source: Replace the logo.bmp file in the kernel-6.1/ directory of your Android source code.
2) build the update package:
$ cd PATH_YOUR_PROJECT $ source build/envsetup.sh && lunch kedge2-userdebug $ ./build.sh -UCKAu
This will generate an update.img file.
3) Flash the firmware: Burn the generated update.img to your device using the standard upgrade method (refer to the “How To Upgrade” guide). After the device restarts, the new boot logo will be active.