1. 程式人生 > >MTK開機LOGO圖片的顯示原理

MTK開機LOGO圖片的顯示原理



MTK開機LOGO圖片的顯示原理

總結:5

以下原始碼分析基於C300

Android 開機畫面由三部分組成,第一部分在bootloader 啟動時顯示uboot第二部分在啟動kernel 時顯示kernel第三部分在系統啟動時(bootanimation)顯示(動畫)。

ubootkernelLOGO(專案中一般這兩張圖片是一樣的,即常說的開機LOGO)

一、圖片的定義

1.1update指令碼

Path./c300/android/vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/update

類似於如下圖的這種定義,注意圖片必須是

.bmp格式

1.2rules.mk指令碼

Note:一般logo目錄下會有很多格式的圖片,例如hdplushvgahd720,具體使用哪種格式的圖片,取決於專案中的配置檔案ProjectConfig.mk。例如在c300 orange訂單中使用的是Boot_LOGO=hdplus格式,如下圖所示:

1.3、圖片的巨集定義cust_display.h(索引序列號)

Path:c300/android/vendor/mediatek/proprietary/bootable/bootloader/lk/target/c300/include/target/cust_display.h

如在c300

// Common LOGO index

#define BOOT_LOGO_INDEX   0

#define KERNEL_LOGO_INDEX   38

二、LOGO圖片顯示的邏輯程式碼實現

2.1platform.c

當正常開機的過程中

Pathc300/android/vendor/mediatek/proprietary/bootable/bootloader/lk/platform/mt6739/platform.c

.........else if (g_boot_mode != KERNEL_POWER_OFF_CHARGING_BOOT && g_boot_mode != LOW_POWER_OFF_CHARGING_BOOT) {

if (g_boot_mode != ALARM_BOOT && (g_boot_mode != FASTBOOT) && !bearly_backlight_on) {    //正常開機的過程中顯示的LOGO

#ifndef MACH_FPGA_NO_DISPLAY

PROFILING_START("show log");

mt_disp_show_boot_logo(); //platform.c中會呼叫這個方法去顯示logo

PROFILING_END();

#endif

}

2.2mtk_logo.h

方法的結構體定義mtk_logo.h(宣告mt_disp_show_boot_logo()方法)

Path:c300/android/vendor/mediatek/proprietary/bootable/bootloader/lk/platform/mt6739/include/platform/mt_logo.h

2.3mt_logo.c

方法的具體實現mt_logo.c

Pathc300/android/vendor/mediatek/proprietary/bootable/bootloader/lk/platform/mt6739

原始碼如下所示:

/*

 * Show first boot logo when phone boot up

 *

 */

void mt_disp_show_boot_logo(void)

{

dprintf(INFO, "[lk logo: %s %d]\n",__FUNCTION__,__LINE__);

mt_logo_get_custom_if();

if (logo_cust_if->show_boot_logo) {

logo_cust_if->show_boot_logo();

} else {

///show_logo(0);

init_fb_screen();

fill_animation_logo(BOOT_LOGO_INDEX, mt_get_fb_addr(), (void *)mt_get_tempfb_addr(), logo_addr, phical_screen);

mt_disp_update(0, 0, CFG_DISPLAY_WIDTH, CFG_DISPLAY_HEIGHT);

}

return;

}

總結:在修改LOGO圖片的時候,需要確認清楚解析度、命名必須與原來的保持一致、圖片格式一致等 。上述的檔案分析原理過程大致是顯示一張LOGO圖片原理過程中涉及到的檔案、方法、變數。(注:高通平臺的開機LOGO是一個splash.img檔案)

當修改了LOGO之後,單獨編譯對應的目錄會生成logo.bin,重新燒錄可以直接驗證效果。如果有修改對應的lk目錄下的檔案,還需要單獨編譯lk

相關推薦

MTK開機LOGO圖片顯示原理

 MTK開機LOGO圖片的顯示原理 總結:5 以下原始碼分析基於C300 Android 開機畫面由三部分組成,第一部分在bootloader 啟動時顯示(uboot);第二部分在啟動kernel 時顯示(kernel);第三部分在系統啟動時(boo

圖片播放器(三):圖片顯示原理

1.圖片顯示原理 (1)概念1:畫素 (2)概念2:點陣 (3)解析度(物理解析度、顯示解析度) (4)清晰度(解析度和畫素間距有關)畫素間距相同時,解析度越大越清晰;解析度相同時,畫素間距越小越清晰。 (4)bpp(RGB565、RGB888)畫素深度,每個畫素用多少bit資料表示 (5)顏色

修改u-boot的開機logo顯示過程

[ u-boot: git://git.denx.de/u-boot.git] [tag: v2011.09-rc1 ] 修改u-boot的開機logo其實很簡單。請見下面步驟。 1. 獲取一張BMP的圖片,修改之,讓其色深為8位,即256色,如果用24位,則顯示出問

製作Linux嵌入式系統開機LOGO(圖片)

核心:linux-2.6.22.6 ubuntu:Ubuntu 9.10 開發板: JZ2440(方法通用,不侷限於JZ2440) 目的: JZ2440開機logo預設是一隻可愛的小企鵝。我們把它替換成我們自己喜愛的圖片 準備工作: 準備好BMP或者

deepin因NVIDIA顯示卡造成開機啟動問題:卡在開機logo介面+進入桌面滑鼠一直轉圈

寫在前面:前兩天為了做人工智慧的作業,給自己和室友裝了一個deepin15.7的系統(我和室友電腦均是NVIDIA顯示卡),想著自己裝好之後不會出現什麼問題,結果錯誤還是如期而至,無奈,只能自己親自想辦

解決安裝Ubuntu16.04時因NVIDIA顯示卡造成的卡在開機logo介面的問題

安裝Ubuntu16.04LTS系統時,安裝一路順利但重啟時卡在開機logo介面,是NVIDIA顯示卡的問題 解決方法: 安裝成功之後,重啟,在引導頁按e進入grub編輯頁面 倒數第二段  quiet splash 後面,也是還有別的,反正這段的最後,加上nomodeset

UBoot開機圖片顯示

By Toradex胡珊逢 1). 簡介 在之前的文章中,我們已經介紹瞭如何在 Linux中新增開機圖片,實現定製化的開機 Logo 顯示。或許你也已經注意到了,在裝置剛上電啟動的時候,LCD顯示屏出現下面幾種現象,花屏、黑屏或者顯示內容不全等。這是因為,在基於 Li

python中圖片顯示中文的方法和原理

控制matplotlib畫圖中圖片字型的引數是在rcParmas中設定,預設的引數設定中使用的字型為sans-serif類,其中包括了常見的Arial和Helvetica等,但這些字型是不支援顯示中文的。通過更改該引數中的字型設定,將其轉為一種支援中文的字型,即

關於微信分享logo圖片顯示,帶有微信敏感文字

做微信分享的時候,發現自己分享的連結帶的logo自己能看到,但是好友是看不到的。 問題是因為描述語帶有微信敏感關鍵字,就我所知的微信敏感關鍵字如下: 1.紅包 2.現金 3.神聖 4.使命

Android中下載的圖片不能顯示開機後才能顯示(大全)

之所以要補充這次,是因為第一次寫的並沒有解決我的bug,真正的解決方法在分割線下 問題情景: 我自己做了個雲相簿,最重要的功能就是上傳下載功能,下載的時候我會把下載的照片放到一個新建的資料夾下,之前測試的時候,隱藏了一個bug,今天把新建檔案下的照片都刪除了

Linux logo圖片大小800x600的不顯示

我的螢幕是800*600,移植同等大小圖片後不顯示,且列印fbcon_init:disable boot-logo(boot-logo bigger than screen)。 不明白為什麼同樣大小的圖片不顯示?? 仔細閱讀原始碼,定位於fbcon_prepare_logo()函式,發現計算螢幕顯示所需行數是

Android系統之路(初識MTK) ------ 客製化開機LOGO開機動畫/系統預設桌布

很多訂單專案都需要我們去修改開機logo和開機動畫,今天說的也是關於這方面的修改,首先我們要知道MTK的工作原理,檢視開發板的文件可知,我們需要降編譯和打包 之後的檔案編譯到 system/media

Windows中,win10開機介面,顯示圖片存放地址

win 10開機後,在登入介面,會切換圖片,圖片的存放位置為:C:\Users\username\appdata\Local\Packages\Microsoft.Windows.ContentDeliveryManager_********\LocalState\Asse

C#上位機1 開機圖片顯示

一個實現小的上位機 一:執行上位機時顯示先實現一張圖片再顯示 開啟Visual Studio新建Windows窗體應用程式專案 右鍵點選WindowsFormsApplication1再新增一個Windows窗體應用程式 新增後可以看到有兩個from介面 這是雙擊右

MTK 修改開機logo和動畫

MTK 的開機圖片有三個階段: 1.Uboot的開機logo 2.kernel層的開機logo 3.開機動畫 1.在alps/mediatek/config/${project}/ProjectConfig.mk     中BOOT_LOGO=wvganl  可知開機

nginx+gridfs+mongodb 配置訪問png圖片顯示無法加載問題

nginx配置文件 做了 nginx配置 副本 server port 問題 模塊 bject 上傳文件後,瀏覽器中請求:http://&lt;nginx server ip>:<port>/gfs/<my file> 瀏覽器出現“無法

Swift開發教程--怎樣自己定義TabBarItem的圖片顯示

mod ren onf 自己 cli bar tarray ++ 教程 在做項目的時候,假設使用系統的UITabBarController的時候,底部的tab自己定義圖片顯示是藍色和灰色的。這不是我們所想要的效果。 假設想顯示自己定義的按下和彈起的圖片效果。這個時候就須

網上搜集的一些關於Android LOGO圖片

oid logs images ima android l roi bsp blog 技術分享 網上搜集的一些關於Android LOGO圖片

趙雅智_運用Bitmap和Canvas實現圖片顯示,縮小,旋轉,水印

bitmap raw 圖形 res efault ast bmp 運用 放置 上一篇已經介紹了Android種Bitmap和Canvas的使用,以下我們來寫一個詳細實例 http://blog.csdn.net/zhaoyazhi2129/article/details

net3:文件上傳與圖片顯示以及HiddenField隱藏字段值的使用

pos protect path 來源 file ipa gif sender uri 原文發布時間為:2008-07-29 —— 來源於本人的百度文章 [由搬家工具導入]using System;using System.Data;using System.Configu