MTK 一个分支兼容多客户开机Logo方案

简介: 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文件夹


20191205181240254.png

但每次都要进入这么深的目录修改也是挺麻烦的,所以我写了个脚本从其它路径拷贝至对应的文件夹,编译的时候就打包我们拷贝的


具体实现


**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/bash
echo -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_path
kernel_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_path
cp -f $kernel_img_path $target_logo_img_path
cp -f $uboot_img_path  $target_logo_img_path
if [ ${1} != "wxga" ]
then
   echo "target folder not wxga"
   mv ${target_logo_img_path}/wxga_kernel.bmp  ${target_logo_img_path}/${1}_kernel.bmp
   mv ${target_logo_img_path}/wxga_uboot.bmp  ${target_logo_img_path}/${1}_uboot.bmp
   echo "rename target logo done"
fi
echo -e "\n logo.sh make done...."


目录
相关文章
WGCLOUD - 如何修改LOGO和系统软件名称
在文件server/config/application.yml里修改
|
10月前
|
XML 安全 Devops
|
11月前
|
搜索推荐
Magisk模块:MIUI广告截拦&屏蔽更新
Magisk模块:MIUI广告截拦&屏蔽更新
2020 0
|
存储 Linux C语言
西门子LOGO!编程软件Soft Comfort V7.0版本的特色功能
西门子LOGO! Soft Comfort V7软件具有以下特点:支持从0BA0到0BA7的历代LOGO!系列产品;支持通过RS232,USB和以太网编程;支持所有的功能块(包括新功能块);支持用户自定义函数功能,函数的创建、导入导出、密码保护、用户文档操作;支持LOGO!0BA7联网操作,组态数据、网络中单元寻址、离线模拟、在线测试;支持数据记录操作。
西门子LOGO!编程软件Soft Comfort V7.0版本的特色功能
西门子LOGO!编程软件V7.0版本特色功能之数据归档
LOGO!0BA7支持将数据记录存储到内部存储区或SD卡上,使用标准的SD卡支持FAT12、FAT16或FAT32格式,内部容量最大8G,传输速度为每秒6兆字节,而SIMATIC记忆卡使用FAT格式,非常适合小数据包,具有更长的使用寿命和更多的使用次数。
西门子LOGO!编程软件V7.0版本特色功能之数据归档
西门子LOGO!编程软件新版本的特色功能
西门子LOGO!编程软件新版本的特色功能
西门子LOGO!编程软件新版本的特色功能
|
Windows
Win 10获三大厂商硬件驱动更新
据外媒Windows Lastest今日报道,英特尔、英伟达和AMD为Windows 10系统更新了驱动程序。这些更新是为了让未来的软件更好的在设备上运行,因此保持更新是非常必要的。特别是对于游戏爱好者,显卡的驱动程序更新一般会为最新的3A大作提供支持,修复错误,更新后能获得更好的体验。
201 0
Win 10获三大厂商硬件驱动更新
|
Android开发
Moto Z2 Force正式发布!史上最强模块化手机!
自从联想收购了摩托罗拉(MOTO)以后,整个摩托罗拉就开始走下坡路。
230 0
Moto Z2 Force正式发布!史上最强模块化手机!