本文轉載自:
EMMC的分區及其保存的文件
Partition label |
filename |
說明 |
PrimaryGPT |
gpt_main0.bin |
|
modem |
NON-HLOS.bin |
|
sbl1 |
sbl1.mbn |
|
sbl1bak |
sbl1.mbn |
|
aboot |
emmc_appsboot.mbn |
|
abootbak |
emmc_appsboot.mbn |
|
rpm |
rpm.mbn |
|
rpmbak |
rpm.mbn |
|
tz |
tz.mbn |
|
tzbak |
tz.mbn |
|
Pad |
無 |
|
modemst1 |
無 |
Copy of Modem File System (Encrypted) |
Modemst2 |
無 |
Copy of Modem File System (Encrypted) |
misc |
Misc.img |
|
fsc |
無 |
|
ssd |
無 |
Partition for ssd diag module. stores the encrypted RSA keys |
splash |
splash.img |
|
DDR |
無 |
Partition for DDR |
fsg |
無 |
Golden copy or backup of Modem File System (Encrypted). Also used to pre-populate the file system. |
sec |
sec.dat |
Sec.dat contains fuse settings, mainly for secure boot and oem setting |
boot |
boot.img |
|
system |
system.img |
|
persist |
persist.img |
|
cache |
cache.img |
|
recovery |
recovery.img |
|
devinfo |
無 |
Device information including:iis_unlocked, is_tampered, is_verified, charger_screen_enabled |
keystore |
無 |
Partition for keystore service |
oem |
無 |
It is meant for storing OEM specific info,我們可用來保存自定義信息 |
config |
無 |
Partition needed during display panel initialization. More info at Display_panel_configuration_in_Device_Tree |
userdata |
userdata.img |
|
用戶可用空間 |
用戶可用空間 |
|
BackupGPT |
gpt_backup0.bin |
|
下面依次介紹這些文件
Gpt_main0.bin
主GPT頭和分區表
NON-HLOS.bin
modem image,是負責處理通訊協議相關的基帶鏡像
sbl1.mbn:
second bootloader1的縮寫,是是在little kernel(lk)前啟動,起到引導lk的作用,如果將該分區擦除,則設備表現為進入緊急下載模式,即,擦除該分區后,插入USB顯示QDload端口。
emmc_appsboot.mbn:
(L)ittle (K)ernel bootloader鏡像 在\device\qcom\common\generate_extra_images.mk指定如何編譯,對應bootable文件夾
rpm.mbn:資源電源管理器,是高通MSM平台另外加的一塊芯片,雖然與AP芯片打包在一起,但其是一個獨立的ARM Core。之所以加這個東西,就是要控制整個電源相關的sharedresources,比如ldo,clock。負責與SMP,MPM交互進入睡眠或者喚醒整個系統。
tz.mbn:
是ARM TrustZone® 技術是系統范圍的安全方法,基於安全需求和引導模式配置XPU,NAND MPU
Misc.img
Miscellaneous的簡稱,cpu加電之后,啟動bootloader,(即是RK29xxLoader(L)_V2.08.bin),就會讀取MISC分區獲得來自Main system和Recovery的消息,並以此決定做何種操作。
\bootable\bootloader\lk\app\aboot\recovery.c的get_ffbm()讀取misc.img,根據和核心板廠家的確認此文件他們用於生產,我們沒用到,怪不得用Notepad++打開,全是NUL,如果不需要misc.img,rawprogram0.xml文件需要去掉misc相關的。
另一位朋友他們的Misc.img內容為ffbm-02NUL。
splash.img
存放開機的第一幀畫面,splash.img的生成,參考:http://www.voidcn.com/blog/LoongEmbedded/article/p-6147215.html
Sec.dat
Sec.dat contains fuse settings, mainly forsecure boot and oem setting,是secboot(安全模式)用到的文件,目前我們雖然rawprogram0.xml用到sec.dat,但實際沒有用到。
boot.img:由文件頭(2k/4k)+kernel+ramdisk.img(根文件統)+dt.img(devicetree)組成,其中kernel對應於out\target\product\msm8909\obj\KERNEL_OBJ\arch\arm\boot下的zImage文件,和out\target\product\msm8909\kernel是同一個文件,只是被重新命名了,通過file zImage,可知zImage:Linux kernel ARM bootexecutable zImage(little-endian)
zimage由vmlinux加上解壓代碼經gzip壓縮而成
ramdisk.img對應out\target\product\msm8909\root
system.img:
android系統鏡像文件,對應out\target\product\msm8909\system文件夾。
Persist.img
Partition entry for persist image. whichcontains data which shouldn’t be changed after the device shipped, for example:calibration data of chips(WIFI, bt, camera, etc.),
certificates and other securityrelated files.
cache.img:對應cache分區
cache分區是安卓系統緩存區,保存系統最常訪問的數據和應用程序。擦除這個分區,不會影響個人數據,只是刪除了這個分區中已經保存的緩存內容,緩存內容會在后續手機使用過程中重新自動生成。
對應out\target\product\msm8909\cache文件夾,此文件夾沒有內容,查看設備cache有backup和lost+found,backup雖然還有子文件夾目錄,但都是空的。
recovery.img
This is specially designed for backup. Therecovery partition can be considered as an alternative boot partition
恢復模式的映像文件,由件頭(2k/4k)+kernel+ramdisk_recovery.img(根文件統)+dt.img(device tree)組成,其中ramdisk_recovery.img對應out\target\product\msm8909\recovery\root
userdata.img
掛載到 /data 下的鏡像,它包含了應用及用戶相關的數據。對應out\target\product\msm8909\data目錄。
Gpt_backup0.bin:備份的GPT頭和分區表
相關知識:http://blog.csdn.net/loongembedded/article/details/51763187
除了上面的文件,在燒錄時還需要下面一些文件
patch0.xml:和分區表有關,主要是關於GPTT分區表頭和分區表項內容相關
可參考http://www.voidcn.com/blog/LoongEmbedded/article/p-6072230.html了解相關知識。
rawprogram0.xml
關於如何把鏡像文件燒錄到EMMC中,rawprogram0.xml是根據partition.xml生成,也就是分區表,高通會給論證的emmc根據經驗值提供一個partition.xml 至於生成unspare格式,是方便QPST下載,但每次編譯的時候都會根據鏡像大小修訂,在out\target\product\msm8909目錄下生成新rawprogram.xml
相關鏈接:http://www.voidcn.com/blog/LoongEmbedded/article/p-6152203.html
prog_emmc_firehose_8909_ddr.mbn
QFIL軟件燒錄系統的時候,需要用到此文件,應該是關於EMMC、DDR的配置參數相關的
QCN為高通系統配置項文件,保存在efs分區中,被modem文件讀取用的。
參考:
手機模式及分區
http://www.voidcn.com/blog/LoongEmbedded/article/p-6147214.html
高通智能機分區表詳細解析
http://blog.sina.com.cn/s/blog_4597830b0102x3pt.html