Rockchip Android平台动态替换开机logo的实现
Rockchip Android SDK的支持增加logo分区来动态更新开机logo,支持这个功能的uboot需要是next-dev分支的。
本文的实现适用于Rockchip的Android10及以上版本的SDK
1. 代码修改
在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 userdata
2. 替换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. 重启机器即可看到效果
版权声明:本文为weixin_43245753原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。