Rockchip Android SDK的支持增加logo分区来动态更新开机logo,支持这个功能的uboot需要是next-dev分支的。
本文的实现适用于Rockchip的Android10及以上版本的SDK
在Android上层增加logo分区:
在device下面的产品目录的BoardConfig.mk里面增加BOARD_WITH_SPECIAL_PARTITIONS := logo:16M,如下:
这里表示增加一个16M大小的logo分区
@sys2_206:~/4_Android12_29_sdk/device/rockchip/rk3588$ git diff diff --git a/rk3588_s/BoardConfig.mk b/rk3588_s/BoardConfig.mk index a1c5c20..890a6c3 100644 --- a/rk3588_s/BoardConfig.mk +++ b/rk3588_s/BoardConfig.mk @@ -1,4 +1,5 @@ # # Copyright 2014 The Android Open-Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -37,3 +38,6 @@ PRODUCT_KERNEL_DTS := rk3588-evb1-lp4-v10 BOARD_GSENSOR_MXC6655XA_SUPPORT := true BOARD_CAMERA_SUPPORT_EXT := true BOARD_HS_ETHERNET := true +BOARD_WITH_SPECIAL_PARTITIONS := logo:16M
按上面步骤修改代码并编译烧写固件到机器后,可以在机器里面看到logo分区,如下:
rk3588_s_evb7:/ $ ls dev/block/by-name/ backup cache logo misc mmcblk2boot0 recovery super uboot vbmeta boot dtbo metadata mmcblk2 mmcblk2boot1 security trust userdata2. 替换logo
2.1 把logo图片push到机器的sdcard/目录下,注意logo图片需要是bmp格式的
xxx@xxx:~/home1/download/Linux_Upgrade_Tool_v2.4/Linux_Upgrade_Tool_v2.4$ adb push ../../logo.bmp sdcard/ ../../logo.bmp: 1 file pushed, 0 skipped. 715.0 MB/s (6220854 bytes in 0.008s) xxx@xxx:~/home1/download/Linux_Upgrade_Tool_v2.4/Linux_Upgrade_Tool_v2.4$ adb push ../../logo_kernel.bmp sdcard/ ../../logo_kernel.bmp: 1 file pushed, 0 skipped. 1246.8 MB/s (6220854 bytes in 0.005s)
2.2. 制作logo.img
rk3588_s_evb7:/sdcard # cat logo.bmp > logo.img && truncate -s %512 logo.img && cat logo_kernel.bmp >> logo.img
这些需要注意,两种logo图片中间需要512对齐,truncate -s %512 logo.img就是做512对齐
2.3. 通过dd命令将logo.img文件写到logo分区中
130|rk3588_s_evb7:/sdcard # dd if=logo.img of=/dev/block/by-name/logo
2.4. 重启机器即可看到效果



