1.基本定位:
涉及编译过程logo的文件路径
vendor/mediatek/proprietary/external/boot_logo_updater/boot_logo_updater.c该文件是图片加载的主函数,其他文件中的图像显示函数被调用。
与logo显示相关的文件:
system/core/init/logo.c
vendor/mediatek/proprietary/external/ipod/bootlogo.cpp
vendor/mediatek/proprietary/external/libshowlogo/show_animation_common.c
vendor/mediatek/proprietary/external/libshowlogo/decompress_common.c
vendor/mediatek/proprietary/external/libshowlogo/show_logo_common.c
vendor/mediatek/proprietary/external/libshowlogo/charging_animation.cpp
lib/libshowlogo/show_logo_common.c
lib/libshowlogo/show_animation_common.c
lib/libshowlogo/decompress_common.c
2.最终定位:
vendor/mediatek/proprietary/external/libshowlogo/charging_animation.cpp此外,该文件还涉及关机充电函数文件logo.bin文件中不同图片加载的索引
./vendor/mediatek/proprietary/custom/flora01v1/lk/include/target/cust_display.h另外,在文件中
./bootable/bootloader/lk/target/flora01v1/include/target/cust_display.h文件也可以是索引参考文件,上述两个文件完全一致。经测试,上述两份文件不会影响关闭充电图片,或在其他地方调用或原作者备份,暂时不删除。
参考上述两份文件的索引号
/bootable/bootloader/lk/rules.mk文件压缩顺序
3.调试:
更改配置文件
在kernel-3.10/arch/arm/configs/flora01v1_debug_defconfig以及flora01v1_defconfig修改屏幕的显示分辨率参数CONFIG_LCM_WIDTH="320"
CONFIG_LCM_HEIGHT="320"
在vendor/mediatek/proprietary/external/libshowlogo/charging_animation.cpp文件中
void anim_show_logo(int
index)函数是最终图像显示函数,index即图像文件索引号
调试关机启动画面,调用fastboot启动模式(另一种方式)surface
flinger,该服务在运行system进程中,Android通过调用服务渲染UI,这里只探索两种启动方式显示不同的图像FB模式)。具体的图像调用和动画控制函数都在。
vendor/mediatek/proprietary/external/libshowlogo/show_animation_common.c文件中有调试图像翻转等
对照图像索引号
#define
ANIM_V1_BACKGROUND_INDEX
35
#define
NUMBER_PIC_START_0
4
#define
NUMBER_PIC_PERCENT
14
#define
BAT_ANIM_START_0 15
#define
LOW_BAT_ANIM_START_0
25
#define
ANIM_LINE_INDEX 36
由于手表屏幕显示较小,首先取消电量数字显示,只保留图像显示,注释电量数字和百分比显示段代码。
电量图像坐标定义文件vendor/mediatek/proprietary/external/libshowlogo/cust_display.h
根据测试,所有分辨率图有分辨率图片的坐标
#define
CAPACITY_LEFT(109)
// battery capacity center
#define
CAPACITY_TOP(69)
#define
CAPACITY_RIGHT(211)
#define
CAPACITY_BOTTOM(230)
图像可以通过配置电量填充矩形来摆正,电池容量与动画相匹配
修改
#define
TOP_ANIMATION_LEFT(109)
// top animation
#define
TOP_ANIMATION_TOP(95)
#define
TOP_ANIMATION_RIGHT(211)
#define
TOP_ANIMATION_BOTTOM(113)
用于配置波动动画效果
附件:该文件不属于内核和内核bootloader,所以现有的打印函数不能打印到串口,如果需要打印调试,可以直接调用库函数fcntl,使用文件读写函数,直接打印字符串ttyMT0(串口),注意close设备节点。