MTK 乙個分支相容多客戶開機Logo方案

2021-10-01 06:59:44 字數 2919 閱讀 3089

做原始碼開發的一般都涉及到多個分支,都是同一套原始碼,但面對不同的客戶不同的定製,經常會多開分支。

最簡單的就如每個客戶開機logo都不一樣,經常打系統的你肯定會很魔怔,今天換這家的logo明天另外一家的logo。

這篇就是為了解決這一痛點,如何在乙個分支搞定 n 個客戶的開機 logo。

mtk 的開機logo路徑在

vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo\***目錄下

*** 定義對應巨集 boot_logo = wxga

device\mediateksample\型號\projectconfig.mk

vendor\mediatek\proprietary\bootable\bootloader\lk\project\型號.mk

修改 boot_logo 就能去對應的資料夾中找指定的開機logo

主要包含兩張 ***__kernel.bmp 和 ***_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 $

)copy_files = $(shell $

/logo.sh $ $

)$(info $

)$(info pathl $

)endif

logo.sh接受引數,先刪除 out 目錄下的 lk.img 便於重新生成,燒寫時驗證效果,

從客戶資料夾拷貝 bmp 到 boot_logo 檔案下,判斷名稱是否是 wxga,

如果不是則根據 boot_logo 重新命名

#!

/bin/bash

echo -e "logo_path=$"

echo -e "param_sytem_path=$"

echo -e "out_system_path=$"

echo -n "remove old lk.img... "

rm $

/lk.img

echo "done."

target_logo_img_path=$(pwd)

/vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/$

echo target_logo_img_path=$target_logo_img_path

kernel_img_path=$(pwd)

/vendor/mediatek/

bootlogo

/$/wxga_kernel.bmp

uboot_img_path=$(pwd)

/vendor/mediatek/

bootlogo

/$/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[ $

!="wxga"

]then

echo "target folder not wxga"

mv $

/wxga_kernel.bmp $

/$_kernel.bmp

mv $

/wxga_uboot.bmp $

/$_uboot.bmp

echo "rename target logo done"

fiecho -e "\n logo.sh make done...."

git 乙個分支覆蓋另乙個分支

git 遇到的問題 git fetch 分支 git merge fenzhi 本地 沒有更新 比如1.我想將test分支上的 完全覆蓋dev分支,首先切換到dev分支 git checkout dev 2.然後直接設定 給遠端的test分支上的 git reset hard origin test...

好開心,多客戶端的乙個網路程式終於通了

網際網路環境,tcp sokcet api程式設計.初步測試成功.已經奮戰了好久了.tcp是乙個可靠的面向連線的傳送服務.由於ip並不能保證接收的資料報的順序與傳送的相一致,tcp會在收信端裝配tcp資料段並形成乙個不間斷的資料流.傳送端不斷傳送資料,接收端在接到之後,要根據資料報的格式,重新組包,...

建立乙個git 分支

1 檢視當前的本地分支列表 git branch a 2 新增乙個本地分支test git branch test 3 檢視當前的本地分支列表,會發現多了乙個test分支 git branch a 4 檢視當前的遠端分支列表 沒有test分支 git branch r 5 檢視遠端倉庫名 git r...