本文转载自:
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