MTK 一个分支兼容多客户开机Logo方案
前言
做源码开发的一般都涉及到多个分支,都是同一套源码,但面对不同的客户不同的定制,经常会多开分支。
最简单的就如每个客户开机logo都不一样,经常打系统的你肯定会很魔怔,今天换这家的logo明天另外一家的logo。
这篇就是为了解决这一痛点,如何在一个分支搞定 N 个客户的开机 Logo。
简单科普
MTK 的开机logo图片路径在
vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo\xxx 目录下
xxx 定义对应宏 BOOT_LOGO = wxga
device\mediateksample\型号\ProjectConfig.mk
vendor\mediatek\proprietary\bootable\bootloader\lk\project\型号.mk
修改 BOOT_LOGO 就能去对应的文件夹中找指定的开机logo
主要包含两张 xxx__kernel.bmp 和 xxx_uboot.bmp,图片格式必须是 bmp 的,注意不是改后缀就行了,而是原图保存的时候就选 bmp,这两张图片一般都是一样的,uboot 对应开机时第一帧图片,kernel 对应进入开机动画前的过程显示。其实 MTK 已经为运营商提供了多种分辨率对应开机logo文件夹
但每次都要进入这么深的目录修改也是挺麻烦的,所以我写了个脚本从其它路径拷贝至对应的文件夹,编译的时候就打包我们拷贝的
具体实现
**1、在 device\mediateksample\型号\ProjectConfig.mk 中新增宏定义 **
用于判断是否需要从自定义的路径拷贝 logo 至 dev 路径下
MTK_CUSTOM_BOOTLOGO = yes
用于对应客户名称logo文件夹
MTK_CUSTOM_BOOTLOGO_FOLDER = tencent
以后每次编译只需修改 MTK_CUSTOM_BOOTLOGO_FOLDER 宏,
比如这次打包 tencent,下次打包 pdd,在下次打包 jd,不想拷贝时,修改 MTK_CUSTOM_BOOTLOGO = no
2、在 vendor/mediatek/BootLogo 下新建 tencent、pdd、jd 文件夹
文件夹中放置客户提供的两张开机logo图片 wxga_kernel.bmp wxga_uboot.bmp
3、编写 mk 和 sh 脚本文件
在 BootLogo 路径下新建如下的两个文件
Android.mk
用 MTK_CUSTOM_BOOTLOGO 判断是否需要执行 logo.sh 脚本文件,执行时传递参数 客户文件夹名称 和 目标文件夹名称
ifeq ($(MTK_CUSTOM_BOOTLOGO), yes)
LOCAL_PATH := $(call my-dir)$(info ${TARGET_OUT})COPY_FILES = $(shell ${LOCAL_PATH}/logo.sh ${BOOT_LOGO} ${MTK_CUSTOM_BOOTLOGO_FOLDER})$(info ${COPY_FILES})$(info pathl ${TARGET_COPY_OUT_VENDOR})endif
logo.sh
接受参数,先删除 out 目录下的 lk.img 便于重新生成,烧写时验证效果,
从客户文件夹拷贝 bmp 到 BOOT_LOGO 文件下,判断名称是否是 wxga,
如果不是则根据 boot_logo 重新命名
#!/bin/bashecho -e "logo_path=${2}"echo -e "param_sytem_path=${1}"
echo -e "out_system_path=${OUT}" echo -n "remove old lk.img... "
rm ${OUT}/lk.img
echo "done."target_logo_img_path=$(pwd)/vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/${1}
echo target_logo_img_path=$target_logo_img_pathkernel_img_path=$(pwd)/vendor/mediatek/BootLogo/${2}/wxga_kernel.bmp
uboot_img_path=$(pwd)/vendor/mediatek/BootLogo/${2}/wxga_uboot.bmp
echo kernel_img_path=$kernel_img_path
echo uboot_img_path=$uboot_img_pathcp -f $kernel_img_path $target_logo_img_path
cp -f $uboot_img_path $target_logo_img_pathif [ ${1} != "wxga" ]
thenecho "target folder not wxga"mv ${target_logo_img_path}/wxga_kernel.bmp ${target_logo_img_path}/${1}_kernel.bmpmv ${target_logo_img_path}/wxga_uboot.bmp ${target_logo_img_path}/${1}_uboot.bmpecho "rename target logo done"
fiecho -e "\n logo.sh make done...."
MTK 一个分支兼容多客户开机Logo方案相关推荐
- 【小白刷机】Pixel手机刷Magick模块不兼容重启卡开机logo解决方式
目录 关于Pixel 为什么要刷机? 刷机流程 1. 手机进入bootloader 2. 电脑准备好系统包和SDK工具包 下载系统包 下载SDK工具包 3. 手机连接电脑 4. 修改配置文件,刷入系统 ...
- Android系统之Mtk开机logo镜像单独制作(不用全编译代码)
一.问题背景 在我们客制系统版本时,经常有时候会有需求就是单独更新一个客制logo,如果每次仅仅就是更改一个开机logo,我们每次都需要有一个完整编译的out,也就意味着可能要全编,这想必是非常低效率 ...
- MTK开机LOGO图片的显示原理
MTK开机LOGO图片的显示原理 一.图片的定义 1 1.1.update脚本 1 1.2.rules.mk脚本 2 1.3.图片的宏定义cust_display.h(索引序列号) 3 二.LO ...
- Android9.0 MTK 平板横屏方案修改(强制app横屏 + 开机logo/动画+关机充电横屏 + RecoveryUI 横屏)
文章较长建议先收藏再看 拆解步骤 1.app 强制横屏显示,无视 android:screenOrientation="portrait" 属性 2.屏幕触摸坐标修改为横屏 3.开 ...
- MTK平台修改开机动画,开机logo
修改开机logo 找到目录 trunk/mediatek/custom/common/lk/logo/ 该目录下面有很多的文件夹,都是在不同分辨率下面的logo 要修改的话就看需要修改哪个分辨律下面的 ...
- mtk使用android开关机动画,Android9.0 MTK 平板横屏方案修改(强制app横屏 + 开机logo/动画+关机充电横屏 + RecoveryUI 横屏)...
文章较长建议先收藏再看 拆解步骤 1.app 强制横屏显示,无视 android:screenOrientation="portrait" 属性 2.屏幕触摸坐标修改为横屏 3.开 ...
- Android MTK 6572 修改开机logo和开机动画
1. 开机logo 因为我们显示屏分辨率480*800,所以 \mediatek\config\hsimobile77_ics2\ProjectConfig.mk下的BOOT_LOGO=wvg ...
- MTK平台修改Android动画,Android MTK平台修改开关机动画和开机logo
转载请注明出处:http://blog.csdn.net/u011479494/article/details/50682089 一.修改开机logo 由于我的机器分辨率为540*960 替换:med ...
- Android MTK平台修改开关机动画和开机logo
转载请注明出处:http://blog.csdn.net/u011479494/article/details/50682089 一.修改开机logo 由于我的机器分辨率为540*960 替换:med ...
- Android10.0 MTK 平板横屏方案修改(强制app横屏 + 开机logo/动画+关机充电横屏 + RecoveryUI 横屏)
拆解步骤 1.app 强制横屏显示,无视 android:screenOrientation="portrait" 属性 2.开机动画横屏 3.开机logo.关机充电动画横屏 4. ...
最新文章
- mysql sql诊断建议_MySQL诊断调优常用SQL语句
- SpringBoot 整合 Redis 实现消息队列
- 使用循环计算斐波那契数列
- 微信小程序使用template模板
- 运算符面试题(剑指offer,面试宝典,牛客网)
- var let this的区别
- Oracle 11g R2的卸载与重装
- SqlServer存储过程基础
- windows内核驱动
- PSP3000/2000V3用5.03GEN-C安装教程
- 用VS运行程序错误,提示0x000007b
- 我用AI大模型帮我写公众号赚钱!
- JAVA系统蓝屏_Tomcat启动系统蓝屏
- JD-JUI反编译问题
- JAVA系列:获取当天0点0分0秒(00:00:00),23点59分59秒(23:59:59)的方法
- python forward函数___call__、__init__和 forward三个函数在python中的调用方法
- 六安职院美和易思互联网+特色专业举行第一届HTML网页设计大赛
- 警告标志:警告车辆、行人注意危险地点的标志
- Android应用中保存网络图片功能实现详解
- ipad里excel文件计算机,ipad怎么看excel和Word?ipad查看Word和Excel文件