一、修改化定製
android4.0系統
android
系統啟動時,先載入
linux
核心,在
linux
的framebuffer
驅動裡可以定製開機介面,
linux
核心啟動成功後,掛載根檔案系統,啟動
android
系統,這個時候裝置螢幕上開始出現滾動的
android
動畫,等全部的
android
服務啟動完畢之後,開始啟動
android
的home
介面,也就是桌面。
而在這個過程中,我們可以將開機介面和
android
動畫全部定製為自己需要的效果。
在整個開機過程中,螢幕上會出現三次內容:
ø linux
啟動時畫面,通常是個黃嘴的小企鵝
ø android
系統本地啟動階段畫面,是
「android
」文字字樣
ø android
系統顯示系統啟動階段動畫,是滾動的
android動畫
我們下面將三個過程中的螢幕內容都進行個性化設定。
1. 定製手機開機介面
根據前面文章介紹,我們要在
linux
的framebuffer
驅動裡修改一些**,讓螢幕上出現我們自己的乙個開機,如下圖所示效果。
在linux
系統中,
lcd顯示裝置的驅動都是基於
framebuffer
的,framebuffer
我們可以看成是
android
的視訊記憶體,只要我們向該視訊記憶體裡寫入資料,這些資料就可以顯示在
lcd上。
根據不同的
lcd所支援的顏色可以分為:
16位色,
24位色,
32位色。
學過初中物理都知道,色彩由三元色:紅(
r),綠(
g),藍(
b)組成。
ø 16位色:乙個畫素點由
16bit
表示,佔兩個位元組,
rgb組成分為:
565或
555二種
ø 24位色:乙個畫素點由
24bit
表示,佔三個位元組,
rgb每個顏色由
8位組成。
ø 32位色:乙個畫素點由
32bit
表示,佔四個位元組,除了
rgb每個顏色
8位外,還有8位的
alpha
的透明度,共組成
32位。
很明顯,位數越高,可顯示的色彩越豐富,相同畫素的
lcd占用的視訊記憶體越大,現在手機和平板基本上都使用
32位色的
lcd。
android
模擬器裡使用16位
565格式顯示驅動。
既然如此,那麼出現在
framebuffer
裡的應該是
16位的具體顏色值,我們從怎麼知道乙個的
rgb的值呢?
還好,我們使用一款叫
image2lcd
的軟體,可以將乙個指定的
bmp點陣圖格式轉換成指定的
rgb格式資料的陣列中。
如下圖所示:
選擇好,設定好寬度和高度及顏色位數,儲存成乙個標頭檔案
mylogo.h
,開啟裡面內容如下:
const unsigned char gimage_log[261120] = ;
那麼我們可以直接將這個標頭檔案拷貝到核心目錄中,包含到驅動裡,然後直接通過gimage_log陣列名訪問內容。
ø 修改fb驅動檔案:
drivers/video/samsung/s3cfb.c
在裡面新增乙個繪製logo函式draw_logo,如下所示:
#include "mylogo.h"
static int draw_logo(struct fb_info *fb)
ø 在
s3cfb_probe
函式裡呼叫我們剛才新增的
draw_logo
函式:
static int s3cfb_probe(struct platform_device *pdev)
2.定製
android
啟動字樣
當linux
啟動完畢之後,開始掛載根檔案系統
ramdisk.img
,通過命令列指定
linux
執行linux
系統裡的第乙個使用者程序
init:
init程式由
system/core/init/
目錄下的原始碼編譯而成,其入口檔案為:
init.c
,console_init_action
函式就是用來開啟
console
終端,然後在螢幕上列印
「a n dr o i d」
字樣的,如果想修改這個值,則直接將其內容修改了,重新編譯
init
程式,然後重新生成
system.img
即可,不過,一般是將其內容注釋掉。
static int console_init_action(int nargs, char **args)
} return 0;
}
3. 定製android動畫
android系統過程中會滾動android字樣的乙個動畫,我們可以根據自己的需要,定製這個開機動畫,如下圖所示:
如何定製自己的華為ROM
解析的工具 網上有幾個現成可用的程式 指令碼,如 huaweiupdateextractor 以及 split updata.pl,但是 huaweiupdateextractor 為exe,不方便研究的童鞋,split updata.pl 需要 安裝64位的 perl,不然會報 記憶體不夠 的錯,...
Android定製ROM,內嵌su和xposed
本文同步自wing的地方酒館 從windows 98時代起,我就熱衷於裝系統。平均三天對著家裡的台式電腦重灌,重灌,再重灌。樂此不疲,後來到xp時代,有了ghost,裝的更瘋狂了。現在到android,仍然是刷刷刷,一直有個想法就是自己搞個rom玩,於是這幾天鼓搗了一下把su和xposed內嵌進去了...
手機,RAM和ROM區別
儲存器分為隨機儲存器 ram 和唯讀儲存器 rom 兩種。其中 通常用來固化儲存一些生產廠家寫入的程式或資料,用於啟動電腦和控制電腦的工作方式。而 則用來訪問各種動態的輸入輸出資料 中間計算結果以及與外部儲存器交換的資料和暫存資料。裝置斷電後,中儲存的資料就會丟失。執行遊戲 程式速度快慢看的是 也就...