1. 程式人生 > >RKAndroidTool工具的各項image詳解(RK2918版本)

RKAndroidTool工具的各項image詳解(RK2918版本)

/********************************************************************************************
 * author:[email protected]大鐘                                                                                                                          
 * E-mail:[email protected]                                                                                                             
 * 

http://blog.csdn.net/conowen                                                                                                              
 * 注:本文為原創,僅作為學習交流使用,轉載請標明作者及出處。      

 ********************************************************************************************/


..\rockdev\表示RKAndroidTool所在目錄的上一層目錄下的rockdev資料夾。

工具預設目錄為..\rockdev\,若掃描有Paremeter ,則載入,讀出分割槽表資訊,關於Paremeter ,參看第2點。

工具的“偏移”(offset)表示分割槽的起始地址,也參看第2點。

1、Loader.bin (100K左右)

系統啟動必須的引導檔案

RK29xxLoader(L)_V2.08.bin

2、Paremeter 分割槽資訊表(50K左右

開啟rockdev目錄下的Paremeter 檔案,內容如下

FIRMWARE_VER:0.2.3
MACHINE_MODEL:rk29sdk
MACHINE_ID:007
MANUFACTURER:RK29SDK
MAGIC: 0x5041524B
ATAG: 0x60000800
MACHINE: 2929
CHECK_MASK: 0x80
KERNEL_IMG: 0x60408000
#COMBINATION_KEY: 0,6,A,1,0
CMDLINE: console=ttyS1,115200n8n androidboot.console=ttyS1 init=/init initrd=0x62000000,0x800000 
mtdparts=rk29xxnand:
[email protected]
(misc),[email protected](kernel),[email protected](boot), [email protected](recovery),[email protected](backup),[email protected](cache), [email protected](userdata),[email protected](kpanic),[email protected](system),[email protected](user)

misc

kernel——核心映象

boot——系統引導

recovery

backup

cache——快取區

userdata——使用者rom區

kpanic

system——系統程式

user———使用者儲存區

前面是關於機器韌體版本,機器型號,機器製造廠商的資訊,當然也可以改成自己所喜歡的。

下面的

mtdparts=rk29xxnand

則表示機器nand flash的分割槽資訊。

[email protected](misc)
右邊的0x00002000表示起始地址,左邊的0x00002000表示misc分割槽的容量大小。至於為什麼要從0x00002000開始,因為分割槽表Paremeter 也要佔有flash的容量,Paremeter 是從0x00000000開始的。左右兩邊數值相加,就等於下一個分割槽的起始地址,如此類推。如到了recovery分割槽。
[email protected](recovery)

起始地址為0x00010000,recovery分割槽大小為0x00008000,所以下一個backu分割槽的起始地址為0x00018000。

另外,關於使用者區userdata,也就是rom區。常說的擴容就是擴充套件此分割槽。

[email protected](userdata),
先來算算此分割槽的大小。

0x00100000為十六進位制,折算成十進位制為1048576,因為瑞芯微rockchip採用的是0.5K為單位。折算結果為

1048576*0.5K=524288K

524288K/1024=512M

也就是說rom區容量為512M。

假若要擴充套件此分割槽,則往後的各個偏移量都要相加推移。

到了最後一個user分割槽,

[email protected](user)

左邊的“-”表示user分割槽佔有剩餘的nand flash所有容量。也就是常常存放一些使用者的資料如電影、音樂之類的。不同於rom區的存放安裝軟體。

3、Misc.img(1K左右

cpu加電之後,啟動bootloader,(即是RK29xxLoader(L)_V2.08.bin),就會讀取MISC分割槽第一塊的內容, 決定進入recovery模式還是升級基帶Baseband Processor(BP)或做其它事情。而更改Misc內容的操作為按下某個按鍵或者使用者設定系統。

4、kernel.img(6M左右

核心映象,經過編譯得出zImage,即為Kernel.img。或者SDK包直接附帶。

5、boot.img(8M左右

系統bootload啟動之後,進入正常啟動模式,就會讀取boot.img進去系統正常模式。

boot.img包括了kernel.img映象和一個根檔案系統(rootfs)

6、recovery.img(12M左右

系統bootload啟動之後,通過讀取Misc分割槽的內容,確認如果是進入Recovery模式的話,進去讀取Recovery.img。

recovery.img包括了一個kernel.img與一個根檔案系統(rootfs),kernel映象與boot,img的完全一樣。

7、system.img(100+M左右

包括了系統必要的app,詳細參考

http://blog.csdn.net/conowen/article/details/7251057

8、擦除IDB

表示清空分割槽表,就是低階格式化nand flash。這樣的話,要重新刷入parameter分割槽。

附:Recovery 根檔案系統目錄結構

$ tree

.

├── advanced_meta_init.rc

├── data

├── default.prop

├── dev

├── etc

├── init

├── init.factory.rc

├── init.goldfish.rc

├── init.quacomm.rc

├── init.rc

├── meta_init.rc

├── proc

├── res

│   ├── images

│   │   ├── icon_error.png

│   │   ├── icon_installing.png

│   │   ├── indeterminate1.png

│   │   ├── indeterminate2.png

│   │   ├── indeterminate3.png

│   │   ├── indeterminate4.png

│   │   ├── indeterminate5.png

│   │   ├── indeterminate6.png

│   │   ├── progress_empty.png

│   │   └── progress_fill.png

│   └── keys

├── sbin

│   ├── adbd

│   ├── advanced_meta_init

│   ├── meta_init

│   ├── meta_tst

│   └── recovery

├── sys

├── system

└── tmp