====== Change Boot Logo ====== ===== Introduction ===== 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. ===== Linux ===== The official Khadas Ubuntu image displays three logos during system boot: * U-Boot logo * Linux kernel logo * Plymouth (Ubuntu) boot splash logo ==== U-Boot Logo ==== 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: ```shell $ 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. ==== Linux Kernel Logo ==== Use the netpbm tool to convert a PNG image to the required PPM format. ```shell $ 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. ==== Plymouth (Ubuntu Boot Splash) Logo ==== 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 [[/products/sbc/vim3/development/linux/build-ubuntu| building a custom image with Fenix]], you can change the logo by replacing the file at ''archives/logo/png/logo.png'' before the build. ===== Android ===== 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. ==== Logo Format Requirements==== * **Source Location:** The original logo file in the Android source code is located at ''kernel-6.1/logo.bmp''. * **Required Format:** * 16-bit RGB565 BMP format. * Resolution should be ≤ 1080P (1920x1080 pixels). ==== Update Logo via ADB ==== You can push a prepared ''logo.bmp'' file to the device using ADB. ```shell $ adb root $ adb remount $ adb push logo.bmp /vendor/custom/ $ adb reboot ``` Example command output: ```shell $ 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. ==== Update Logo by Rebuilding Firmware ==== 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: ```shell $ 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.