Android 系統開機logo的修改【轉】

來源:互聯網
上載者:User

標籤:anim   drive   get   host   port   net   idt   init.rc   1.5   

本文轉載自:http://blog.csdn.net/yandongqiangZHRJ/article/details/8585273

看到了好幾個修改logo的博文,但是說的不是很清楚,在這裡親手送上通過自己的動手修改過驗證後的方法。

 

 Android 開機其實總共會出現3個畫面:

1、第一個就是 Linux 系統啟動,出現linux小企鵝畫面(reboot);

2、當android系統從Linux核心啟動後,將會執行anddroid平台的初始化過程,螢幕上將會出現”A N D R I O D”文字字樣畫面(但是在我的系統裡這個介面並不沒有出現;或者說是肉眼沒有看到這個畫面的出現,這裡依然送上這個畫面的修改方法);

3、開機動畫:這個階段就是大家能看到的系統啟動過程中,顯示完"A N D R O I D"字樣後顯示的圖片,類似進度條一樣,圖片內容也是“A N D R O I D”字樣。

 

第一個(小企鵝)畫面的修改:

Linux Kernel引導啟動後,載入該圖片,涉及到的代碼在如下的目錄中:
/kernel/trunk/drivers/video/fbmem.c
/kernel/trunk/drivers/video/fbmem.h
/kernel/trunk/drivers/video/logo/logo.c
/kernel/trunk/drivers/video/logo/logo.h
/kernel/trunk/drivers/video/logo/Kconfig
/kernel/trunk/include/linux/linux_logo.h

 

讓核心中添加此開機logo的步驟如下:

1、讓核心支援啟動LOGO


        在核心目錄中 make menuconfig

        Device Drivers ---->   Graphics support ---->

        選中 Bootup logo ----> Standard 224-color Linux logo

2、製作開機logo的圖片       

         將要當作開機LOGO的圖片按照你螢幕的大小進行裁減,並將其儲存為bmp格式 或 png格式; 例如linuxlogo.bmp 或 linuxlogo.png

         在linux下輸入以下命令(for bmp):

          #bmptoppm linuxlogo.bmp > linuxlogo.ppm                             //產生ppm
          #ppmquant 224 linuxlogo.ppm > linuxlogo224.ppm                   //轉換成224顏色
          #pnmnoraw linuxlogo224.ppm > linuxlogo224.ppm                   //轉換成ascii格式

        在Linux下輸入以下命令(for png):

         # pngtopnm linuxlogo.png > linuxlogo.pnm
         # pnmquant 224 linuxlogo.pnm > linuxlogo224.pnm 
         # pnmtoplainpnm linuxlogo224.pnm > linuxlogo224.ppm

        註:上述命令需要安裝netpbm的工具包 sudo apt-get install netpbm

 3、將LOGO檔案放入核心中


           拷貝到製作好的LOGO檔案到  /drivers/video/logo 檔案夾

           替換 logo_linux_clut224.ppm 檔案,還要刪除該檔案夾下的logo_linux_clut224.o和logo_linux_clut224.c

4、重新編譯核心就OK了!這裡就不詳說。

 

 

第二個(”A N D R I O D”文字字樣畫面)畫面的修改:

相關代碼:

/system/core/init/init.c
/system/core/init/init.h
/system/core/init/init.rc
/system/core/init/logo.c

*.rle檔案的製作步驟:

1). 製作當前螢幕像素的圖片

 使用PS製作一張適合螢幕大小的圖片,儲存時選“儲存為 Web 所用格式”,然後在彈開的視窗上,“預設”項選擇“PNG-24”,儲存為android_logo.png(

註:好像只支援png-24,其他格式產生的rle檔案顯示不正常,有興趣大家可以再驗證一下。

2). 將圖片轉換為raw格式
 使用linux下的ImageMagick內建的convert命令,進行raw格式轉換,命令為:
  convert -depth 8 android_logo.png rgb:android_logo.raw

 註:ubuntu 10.04 預設已經安裝ImgageMagick工具,如果當前系統沒有安裝,可以執行下面的命令安裝:
  sudo apt-get install imagemagick

3). 將raw格式轉化為rle檔案
 需要用到android編譯後的rgb2565工具,在android/out/host/linux-x86/bin目錄下(android為當前源碼所在目錄),轉換命令如下:
 rgb2565 -rle < android_logo.raw > initlogo.rle

到目前為止,啟動需要顯示的映像已經做好了,就是initlogo.rle,注意檔案名稱必須是這個,如果想改檔案名稱,需要修改

android/system/core/init/init.h中的宏:
 #define INIT_IMAGE_FILE "/initlogo.rle"

4).將製作好的initlogo.rle檔案拷貝到android系統的root目錄下,也就是out/target/product/..../root下

最後編譯成檔案系統鏡像   xxx.img重新燒寫。OK。

 

第三個(開機動畫)畫面

其實這個部分的動畫是使用兩個圖片顯示出來的,具體的圖片檔案所在路徑為:frameworks/base/core/res/assets/images,大家看一下就知道了,也就知道怎麼修改了。

和這部分相關的源碼檔案主要是如下幾個:frameworks/base/cmds/bootanimation下面的幾個檔案就是的了,可以看看BootAnimation.cpp檔案的內容,有如下程式碼片段:

bool BootAnimation::android() 

    initTexture(&mAndroid[0], mAssets, "images/android-logo-mask.png"); 
    initTexture(&mAndroid[1], mAssets, "images/android-logo-shine.png"); 
bool BootAnimation::android()
{
    initTexture(&mAndroid[0], mAssets, "images/android-logo-mask.png");
    initTexture(&mAndroid[1], mAssets, "images/android-logo-shine.png");           這就是設定顯示的前景圖片和背景圖片。

 

   接著看還有如下代碼:

[cpp] #define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip" 
#define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip"  
#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip" 
#define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip"
#define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip"
#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip"          看宏名相信大家就知道了,這就是設定動畫檔案的名稱了。為什麼會又顯示圖片又設定動畫顯示呢,這個Android版本有關。顯示兩個圖片:前景和背景圖片 是在1.5版本用,後來就改為了設定動畫檔案,就是:bootanimation.zip,是zip格式的,這個檔案包含三個內容:兩個目錄:part0 和part1,一個檔案desc.txt。
兩個目錄用來包含要顯示的圖片,分為第一階段和第二階段。剩下的檔案就是設定關於如何顯示的資訊:
樣本如下:
480 800 15
    p 1 0 part0
    p 0 0 part1

具體的含義如下:
 480--width of the image, 800--height of the image, 15--frames of second
  p 1, display one time
  p 0, display recycling till handset power on finished,相信大家懂了!呵呵。

         你可以製作自己的bootanimation.zip檔案放置在合適的目錄下,這樣可以代替預設的開機介面:這裡說的合適的目錄就是上面的宏定義,大家都懂^_^!
        怎麼製作bootanimation.zip檔案呢?和上面一樣建立兩個目錄和一個檔案,然後使用軟體或者是命令列大包即可
         zip -r -0 bootanimation.zip part0 part1 desc.txt

Android 系統開機logo的修改【轉】

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.