做原始碼開發的一般都涉及到多個分支,都是同一套原始碼,但面對不同的客戶不同的定製,經常會多開分支。
最簡單的就如每個客戶開機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...