1. 程式人生 > >修改Android開機畫面

修改Android開機畫面

Android系統開機動畫包括兩部分:
開機顯示的 ANDROID 文字;
ANDROID發光動畫。
這篇文章說的開機動畫是第一種,下面開始正文!

1. 製作當前螢幕畫素的圖片(模擬器預設為320*480)
使用PS製作一張320*480的圖片,儲存時選“儲存為 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"
============================================================================================

下面需要將initlogo.rle加入的android檔案系統中
4. 找到ramdisk.img檔案(android/out/target/product/generic/ramdisk.img),將檔名改為ramdisk.img.gz,然後使用下面的命令解壓:
gunzip ramdisk.img.gz
解壓後得到ramdisk.img,可能有人要問,怎麼檔名又改回去了?其實不然,使用file ramdisk.img檢視一下就知道了:
解壓前:ramdisk.img: gzip compressed data, from Unix
解壓後:ramdisk.img: ASCII cpio archive (SVR4 with no CRC)
跑題了,還是說正事兒。

5. 使用cpio提取檔案:
新建一個temp目錄:
mkdir temp
cd temp
cpio -i -F ../ramdisk.img

6. 匯出檔案列表:
cpio -i -t -F ../ramdisk.img > list      
注:list是一個文字檔案,裡面儲存了ramdisk.img的檔案結構,我們需要在這個檔案中加入initlogo.rle這一行,修改後的檔案如下:
data
default.prop
dev
init
init.goldfish.rc
init.rc
initlogo.rle
proc
sbin
sbin/adbd
sys
system

7. 生成ramdisk.img
cpio -o -H newc -O ramdisk.img < list
注:根據list檔案的描述,生成ramdisk.img檔案

8. 用ramdisk.img覆蓋sdk目錄下的ramdisk.img(android-sdk-windows/platforms/android-2.1/images/ramdisk.img),最好先備份一下。

9. 啟動模擬器,就可以看到我們自己做的的開機介面了。

/////////////////////////

開機圖片設定 的下載地址為:http://docs.google.com/leaf?id=0 ... TIzOGQ5OWQ3&amp;hl=en

init 檔案下載地址
http://docs.google.com/leaf?id=0 ... 2RiYjZjNjM2&amp;hl=en

split_bootimg.pl 下載地址:
http://android-dls.com/files/linux/split_bootimg.zip

開機圖片設定 軟體原理:
     根據android 系統 開機LOGO和開機動畫的存放路徑:/initlogo.rle 和 /data/local/bootanimation.zip 在init.rc 中 建立兩個連結:

/initlogo.rle ->/data/data/com.android.e139.gallery/initlogo.rle 和 /data/local/bootanimation.zip ->/data/data/com.android.e139.gallery/bootanimation.zip  
來完成開機LOGO和開機動畫的動態設定

安裝要求:

1.本apk檔案只能安裝在android 2.1 或 2.0的作業系統 中
2.必須修改android 根目錄下面的兩個檔案:init.rc 和 init 功能才能實現設定開機LOGO和開機動畫的功能


修改init.rc 和 init 的方法:

1.修改 init.rc 和init檔案需要修改手機中的 boot.img

匯出方法:
cat /dev/mtd/mtd2 > /sdcard/root.img

然後

adb pull /sdcard/root.img ./

這樣就把root.img拷貝到本地目錄下了。

boot.img的組成結構是

+—————–+
| boot header | 1 page
+—————–+
| kernel | n pages
+—————–+
| ramdisk | m pages
+—————–+
| second stage | o pages
+—————–+


那我們要做的就是把這幾個部分分別分離出來

我們現在先進行映象分離。用命令

./split_bootimg.pl boot.img


成功執行後,可以得到兩個檔案,一個是boot.img-kernel,另一個是boot.img-ramdisk.gz。我們這裡以修改ramdisk為例,所以將其解包

mkdir ramdisk

cd ramdisk

gzip -dc ../boot.img-ramdisk.gz | cpio -i

cd ..

2.進入ramdisk 修改init.rc 在init.rc 中增加:

on logo-init

    mkdir /data 0775 system system

# We chown/chmod /data again so because mount is run as root + defaults
    mount yaffs2 [email protected] /data nosuid nodev
    chown system system /data
    #for other user can read this dir
    chmod 0775 /data

    symlink /data/data/com.android.e139.gallery/initlogo.rle /initlogo.rle

on early-boot
# copy file   
    symlink /data/data/com.android.e139.gallery/bootanimation.zip /data/local/bootanimation.zip
    chmod 0666 /data/local/bootanimation.zip

再將已經下載的init檔案覆蓋到目錄下面的init檔案
3.生成新img 回到ramdisk 的上一級目錄後執行:
mkbootfs ./ramdisk | gzip > ramdisk-new.gz mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel boot.img-kernel --ramdisk ramdisk-new.gz -o boot-new.img
就會重新生成 boot-new.img
3.刷入新img

生成了新的img後,我們如何在系統上應用我們的新boot.img呢?首先,把img檔案放到sdcard上去

adb push ./boot_new.img /sdcard

然後執行這兩個操作

cat /dev/zero > /dev/mtd/mtd2
flash_image boot /sdcard/mynewimage.img

執行第一個操作時,可能會提示你

write: No space left on device

這個資訊沒關係,不用管它。兩個命令都執行後,最後adb shell reboot即可。如果重啟順利,那麼恭喜你,你刷成功了.


安裝步驟:
1.按上面的步驟修改手機中的init.rc 和init檔案
2.把下載的T卡檔案放到T卡中
3.安裝 開機圖片設定.apk檔案

修改boot.img的方法參考:http://www.kunli.info/2009/09/14/how-to-modify-ramdisk-android/

相關推薦

修改Android開機畫面

Android系統開機動畫包括兩部分:開機顯示的 ANDROID 文字;ANDROID發光動畫。這篇文章說的開機動畫是第一種,下面開始正文!1. 製作當前螢幕畫素的圖片(模擬器預設為320*480)使用PS製作一張320*480的圖片,儲存時選“儲存為 Web 所用格式”,然

Android 開機畫面

Android 開機會出現3個畫面: a.  Bootloader啟動,出現Android機器人影象; b.  Android平臺啟動初始化,出現"A N D R I O D"文字字樣畫面; c.  Android平臺圖形系統啟動,出現含閃動的ANDROID字樣的動畫圖片(

修改Android開機圖片、動畫、聲音

二、修改第二張圖片  方法一:  在window下的操作:  1 在 Widows 環境中建立資料夾:bootanimation  2 在bootanimation資料夾中建立子資料夾:   part0   part1   然後將一批.png檔案拷貝到資料夾part0裡面,part1中暫時不放圖片檔案  3

Android開機畫面製作(Bootloader階段)

    Android開機畫面由四部分組成,第一部分在bootloader啟動時顯示;第二部分在Linux系統啟動時(就是那小企鵝);第三部分是在Android平臺啟動初始化時,出現“A N D R I O D”文字字樣畫面;第四部分是在平臺圖形系統啟動後,出現含閃爍的A

原始碼中修改Android開機畫面和動畫

Android系統開機顯示畫面分成兩個過程,第一個過程從按電源鍵到Frameworks啟動為止。第二個過程從Frameworks啟動完成到Launcher程式啟動完成。 第一個過程顯示的畫面是一張圖,第二個過程顯示的是一個動畫。分別簡要記錄一下怎麼樣在原始碼中修改這兩個地方

android開機logo和動畫修改

Android系統開機顯示畫面分成兩個過程,第一個過程從按電源鍵到Frameworks啟動為止。第二個過程從Frameworks啟動完成到Launcher程式啟動完成。 第一個過程顯示的畫面是一張圖,第二個過程顯示的是一個動畫。分別簡要記錄一下怎麼樣在原始碼中修改這兩個地方

BIOS全屏開機畫面LOGO的修改

     2、AMI BIOS全屏開機畫面的修改      與AWARD的BIOS單調的全屏開機畫面不同,AMI BIOS支援全綵的全屏開機畫面,因此可製作出更漂亮的全屏開機畫面。但是,AMI的全屏開機畫面的加入有許多條件制約。從表2中可以看出,有兩個模組和全屏開機畫面有關:一個是Graphic Logo

Android開機logo修改方法

一體機平臺開機logo修改方法 1:修改Kernel中的Logo: 若是要替換Kernel中的開機Logo,只需要把核心目錄drivers/video/logo下的logo_android_1024_clut224.ppm檔案替換掉即可(注意要保持名字一樣,在IMT的S

如何去掉、修改品牌機的開機畫面

使用品牌機的朋友們應該都會了解一個情況,在開機的時候會有一個開機畫面,小煙我買的是聯想6610的電腦,用了很多年了,終於忍受不了那“聯想電腦”幾個字決心將其除掉!別嫌小煙我囉嗦,我也不是什麼高手,只知道開機出現的畫面應該是寫在BIOS裡的,具體什麼地方都沒有什麼概念,上網查

修改Android系統原始碼,優化開機速度。

下面部分寫的比較零散,整合了一下,可以移步到最新一篇: 通常情況下,Android系統開機保持在20s~25s應該算是合格比較好的狀態。 最近幾天在看關於Android系統開機啟動過程的相關內容。做個筆記。 關於有話Android系統開機時間有話,採取三個措施有話,修

Android開機logo的修改

1 讓核心支援顯示logo 1.1 在命令列輸入make menuconfig,開啟選單 1.2 Device Driver --->  Graphics support --->  B

解決:Android模擬器一直停留在開機畫面

   之前一直都用不了Android4.1.2的模擬器,總是停留在開機畫面,一直進不去 後來經過一番研究,發現網上所謂的改什麼Scale display to real size, 勾選snapshot等等都不管用。之前我是想,我在用的是Nexus one的模擬器機型,如

修改和製作Android開機Logo(最終版)

以下在Telechips tcc8900上,用Android 2.3的原始碼編譯通過 1.bootloader圖片修改      bootable\bootloader\lk\platform\tcc_shared\include\lcd\logo.h替換就行了     

Centos在開機畫面卡死

centos無法開機使用esc查看具體錯誤信息經過查詢原因是/etc/rc.local裏面加的一段執行命令的問題本文出自 “小V運維之路” 博客,請務必保留此出處http://victor2016.blog.51cto.com/6768693/1946547Centos在開機畫面卡死

改動Android啟動畫面

動畫 post local suffix med 根目錄 虛擬 framework thread 一.Android的啟動步驟 1.啟動Linux 2.載入Android 3.顯示Android桌面 二.分析 Android載入

android 開機自啟動

end pla extend class ive rec completed 廣播 manifest 原理:Android系統在開機的時候會發出一個廣播。這樣我們就能夠接收這個廣播,然後 啟動我們的應用。廣播接收器必須在xml裏面配置,由於x

Android開機啟動

sys ttext system 權限 cast cas n) gif complete 使用Android Studio幫我們創建廣播,點擊包名-->New-->BroadcastReceiver 在清單文件中會自動生成 我們加上開機廣播的action

修改android手機文件權限

用戶 文件的 方式 應用 blog style 進入 刪除 文件夾 修改android手機文件權限 默認情況下,一個應用肯定是讀取不了另外一個應用的數據的,因為權限不夠。但是我們一定要讀,怎麽辦? 修改我們要讀取文件的權限。 Android是基於Linux的,所以修改權限的

eclipse修改android項目的apk包名類名

manifest activity ive lips 項目 nbsp provide undle .class 在Google提供的Eclipse集成開發環境adt-bundle下修改名稱的總結: 1. 修改工程名(apk名稱) 在彈出的對話框中輸入新名稱 該