嵌入式爱好者

Android烧写所需镜像说明

2022-10-8 13:21| 发布者: Q_Y_X| 查看: 160| 评论: 0

类目: i.MX8MP系列产品  >  Android     文档编号: 784

boot.img

Android系统中,通常会把zImage ( 内核镜像uImage⽂件) 和ramdisk.img打包到⼀起,⽣成⼀个

boot.img镜像⽂件,放到boot分区,由bootloader来引导启动,其启动过程本质也是和分开的uImage&ramdisk.img类似,只不过把两个

镜像按照⼀定的格式合并为⼀个镜像⽽已。

ramdisk.img会被打包到boot.imgrecovery.img中 (不是同⼀个ramdisk.img.在不同分区中的作⽤不同

ramdisk.img中⽐较重要的⽂件是"init",“init.rc”,其中initsystem/core/init/init.c编译⽽来,boot.imgramdisk⾥的init.rc

位于system/core/init/init.rc,recovery.imgramdisk⾥的init.rc位于bootable/recovery/etc/init.rc

ramdisk.img中⽐较重要的⽂件是"init",“init.rc”,其中initsystem/core/init/init.c编译⽽来,boot.imgramdisk⾥的init.rc

位于system/core/init/init.rc,recovery.imgramdisk⾥的init.rc位于bootable/recovery/etc/init.rc

 

dtbo-imx8mp.img

设备树镜像文件

 

logo.img

开机logo的镜像

 

Partition-table.img

Android系统的磁盘进行分区

 

Super.img

负责配置动态分区

分区数据是对磁盘上数据分布的描述,系统挂载磁盘时读取数据,在内存中建立相应数据结构,用于后续对磁盘进行管理。可见这里需要先提前生成分区数据,然后读取数据,一旦分区数据写入后就固定了。

动态分区,顾名思义就是分区是动态的,不是一成不变的,可以根据需要改变。动态分区管理的本质就是对分区数据的增删改查操作,操作的对象就是动态分区描述数据 metadata

 

编译阶段build_super_image.py内部调用 lpmake 工具生成 super.img 文件

安卓启动时系统通过 liblp 库函数解析 super.img 头部的metadata,在内存中建立 LpMetadata 数据结构。

fs_mgr 基于 LpMetadata 内的分区信息,得到映射表,然后通过 libdm 库调用 linux device mapper 驱动映射设备。

 

u-boot-imx8mp.imx

编译uboot生成的镜像

 

vbmeta.img

⽤于安全验证,bootloader验证vbmeta的签名,再⽤vbmetakey以及hash值验证dtbo/boot/system/vendor

 

vendor.img

包含所有不可分发给Android开源项目的二进制文件。

已解决

未解决

只是看看

最新评论

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-5-3 17:50

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部