Android各镜像⽂件img详解
Android编译后⽣成⽂件,在out/target/product/xxx下:
cache.img、cust.img、metadata.img、misc.img(本地⽆)、recovery.img、super.img、userdata.img、vbmeta.img、学编程可以什么工作
vbmeta_system.img
abl.elf、boot.img、dtbo.img、dtb.img、ramdisk.img、vendor.img(产出的都是AP的img)
cache.img(缓存镜像):⽤于存储系统或⽤户应⽤产⽣的临时数据。
vendor.img:包含所有不可分发给 Android 开源项⽬ (AOSP) 的⼆进制⽂件。如果没有专有信息,则可以省略此分区。
misc.img:misc 分区供恢复映像使⽤,存储空间不能⼩于 4KB。
linux操作系统镜像
userdata.img:userdata 分区包含⽤户安装的应⽤和数据,包括⾃定义数据。
按钮cssvbmeta.img:⽤于安全验证,bootloader验证vbmeta的签名,再⽤vbmeta的key以及hash值验证dtbo/bo
ot/system/vendor。
system.img(系统镜像):系统镜像是地址ROM最常使⽤的⼀个镜像,⽤于存储Android系统的核⼼⽂件,System.img就是设备中system ⽬录的镜像,⾥⾯包含了Android系统主要的⽬录和⽂件。⼀般这些⽂件是不允许修改的。
userdata.img(⽤户数据镜像):将会被挂接到 /data 下,包含了所有应⽤相关的配置⽂件,以及⽤户相关的数据 。
system.img、userdata.img、vendor.img、persist.img都是sparse压缩⽂件系统镜像,⽬的是⽅便传输/刷机/存储等。
recovery.img: recovery分区的镜像,⼀般⽤作系统恢复(刷机)。
boot.img(Linux内核镜像): Android系统中,通常会把zImage ( 内核镜像uImage⽂件) 和ramdisk.img打包到⼀起,⽣成⼀个boot.img镜像⽂件,放到boot分区,由bootloader来引导启动,其启动过程本质也是和分开的uImage&ramdisk.img类似,只不过把两个镜像按照⼀定的格式合并为⼀个镜像⽽已。
amdisk.img(内存磁盘镜像)是根⽂件系统:android启动时 ⾸先加载ramdisk.img镜像,并挂载到/⽬
正则匹配指定文字
录下,并进⾏了⼀系列的初始化动作,包括创建各种需要的⽬录,初始化console,开启服务等,尽管ramdisk.img需要放在Linux内核镜像(boot.img)中,但却属于Android源代码的⼀部分。
ramdisk、boot.img、recovery.img之间的关系:
1. ramdisk.img会被打包到boot.img和recovery.img中 (不是同⼀个ramdisk.img).在不同分区中的作⽤不同。
2. ramdisk.img中⽐较重要的⽂件是"init",“”,其中init是system/core/init/init.c编译⽽来,boot.img中ramdisk⾥的
位于system/core/,⽽recovery.img中ramdisk⾥的位于bootable/recovery/。
程序员代码怎么写的3. kernel加载结束以后第⼀个进程是执⾏init,init会解析⽂件,并起相应的服务。由此可以知道正常开机和进⼊recovery模式起
的进程是不同的。
从本质上说,recovery.img和boot.img⾼达90%是⼀样的。这就意味着,recovery.img也是Linux内核(zImage)和内存磁盘镜像(ramdisk.img)组成的。这两个镜像中的Linux内核是完全⼀样的,区别
只是ramdisk.img中的少部分⽂件存在差异。其中最主要的差异是recovery.img和ramdisk.img中的sbin⽬录中多了⼀个recovery命令进⼊Recovery主界⾯,⽽不会正常启动Android系统。实现的原理是Recovery.img和boot.img在⾃⼰的分区各⾃有⼀个Linux内核(zImage),尽管Linux内核都⼀样,但Linux内核调⽤的init命令解析的及其相关⽂件的内容有⼀定的差异。⽽Bootloader根据⽤户的选择决定使⽤boot.img中Linux内核,还是使⽤Recovery.img中的Linux内核启动系统。如果使⽤前者,Android系统就会正常启动,如果使⽤后者,就会进⼊Recovery选择菜单,所以recovery.img和boot.img的第⼆个差异就是其中的及其相关配置⽂件的内容略有不同。
ascii编码采用几位二进制参考连接:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。