為手機定製ROM

2021-06-17 15:37:18 字數 3262 閱讀 9489

一、修改化定製

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 兩種。其中 通常用來固化儲存一些生產廠家寫入的程式或資料,用於啟動電腦和控制電腦的工作方式。而 則用來訪問各種動態的輸入輸出資料 中間計算結果以及與外部儲存器交換的資料和暫存資料。裝置斷電後,中儲存的資料就會丟失。執行遊戲 程式速度快慢看的是 也就...