Android 各镜像文件img详解

这篇具有很好参考价值的文章主要介绍了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

Android 10(Q版本)出现了动态分区(https://source.android.com/devices/tech/ota/dynamic_partitions/implement#implement-dynamic-partitions-new-devices)

cache.img(缓存镜像):用于存储系统或用户应用产生的临时数据。

vendor.img:包含所有不可分发给 Android 开源项目 (AOSP) 的二进制文件。如果没有专有信息,则可以省略此分区。

misc.img:misc 分区供恢复映像使用,存储空间不能小于 4KB。

userdata.img:userdata 分区包含用户安装的应用和数据,包括自定义数据。

vbmeta.img:用于安全验证,bootloader验证vbmeta的签名,再用vbmeta的key以及hash值验证dtbo/boot/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类似,只不过把两个镜像按照一定的格式合并为一个镜像而已。

ramdisk.img(内存磁盘镜像)是根文件系统:android启动时 首先加载ramdisk.img镜像,并挂载到/目录下,并进行了一系列的初始化动作,包括创建各种需要的目录,初始化console,开启服务等,尽管ramdisk.img需要放在Linux内核镜像(boot.img)中,但却属于Android源代码的一部分。

ramdisk、boot.img、recovery.img之间的关系:

ramdisk.img会被打包到boot.img和recovery.img中 (不是同一个ramdisk.img).在不同分区中的作用不同。
ramdisk.img中比较重要的文件是"init",“init.rc”,其中init是system/core/init/init.c编译而来,boot.img中ramdisk里的init.rc位于system/core/init/init.rc,而recovery.img中ramdisk里的init.rc位于bootable/recovery/etc/init.rc。
kernel加载结束以后第一个进程是执行init,init会解析init.rc文件,并起相应的服务。由此可以知道正常开机和进入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命令解析的init.rc及其相关文件的内容有一定的差异。而Bootloader根据用户的选择决定使用boot.img中Linux内核,还是使用Recovery.img中的Linux内核启动系统。如果使用前者,Android系统就会正常启动,如果使用后者,就会进入Recovery选择菜单,所以recovery.img和boot.img的第二个差异就是其中的init.rc及其相关配置文件的内容略有不同。

vendor_boot.img和boot.img的区别,Android,android

参考连接:

https://blog.csdn.net/lijunjun1120/article/details/108720372

https://blog.csdn.net/dongyi1988/article/details/103994321

https://source.android.google.cn/devices/bootloader/partitions-images?hl=zh-cn

https://cczheng.blog.csdn.net/article/details/105075851 (推荐)文章来源地址https://www.toymoban.com/news/detail-781198.html

到了这里,关于Android 各镜像文件img详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 聊聊Spring Boot配置文件:优先级顺序、加载顺序、bootstrap.yml与application.yml区别详解

    在 Spring Boot 中,配置文件的优先级顺序是: application-{profile}.yml ( application-{profile}.properties ) application.yml ( application.properties ) bootstrap.yml ( bootstrap.properties )。其中, {profile} 表示不同的环境配置,如 dev 、 test 、 prod 等。 优先级从高到低,高优先级的配置覆盖低优先级

    2024年01月25日
    浏览(59)
  • 小米手机无需刷入Recovery获取Root权限,卡刷包payload.bin提取boot.img文件

    注意一下操作都需要解bl锁,退出手机账号,备份数据,打开use调试才可以 (1)https://xiaomirom.com/ 下载线刷包 .tgz 解压 (2)https://xiaomirom.com/download-xiaomi-flash-tool-miflash/ 下载线刷工具 (1)下载卡刷包,解压获得payload.bin文件 (2)下载payload_dumper-win64,将payload.bin文件放到payload_input目录下

    2024年02月11日
    浏览(227)
  • I.MX RT1170加密启动详解(1):加密Boot镜像组成

    使用RT1170芯片构建的所有平台一般都是高端场合,我们需要考虑软件的安全需求。该芯片集成了一系列安全功能。这些特性中的大多数提供针对特定类型攻击的保护,并且可以根据所需的保护程度配置为不同的级别。这些特性可以协同工作,也可以独立工作。它们还可以与适

    2024年02月07日
    浏览(31)
  • ISO文件boot、dvd、minimal的区别

    在centos的下载中,有分为boot、dvd、minimal的iso文件,那么他们之间有什么区别呢? 这个版本大小不会超过1G ,只有最基本的启动引导等内容,各类包均需从线上下载,需要快速安装且有可靠网络的前提下,可以选择安装,但较为麻烦。 这个版本大小基本好几G,如centos7.6为4.7

    2024年02月13日
    浏览(38)
  • Android 系统镜像文件介绍

    Android 常见image文件 Image Description Boot.img 内核启动参数,内核等多个元素 ramdisk.img 一个小型文件系统,是安卓启动的关键 system.img 安卓系统的运行程序包(framework),被挂载在/system节点下 userdata.img 各程序的数据存储,被挂载在/data 下 recovery.img 设备进入“恢复模式”是所需

    2024年02月03日
    浏览(35)
  • Quest固件下载链接,最全版本升级包,降级,Quest2,Firmware,rom,system.img,boot.img, 附录下载地址大全

    adb sideload C:path-to-update-fileupdate-file.zip 除了 v20 之外的所有这些链接都是完整的固件版本(因此大约有 800 MB 的下载量),因此您无需担心您当前使用的是哪个版本来使用这些。为防止 Quest 在降级后自行更新,请在 Oculus 应用的“高级设置”中禁用“自动更新软件”(防止升

    2024年02月05日
    浏览(91)
  • java.lang.classnotfoundexception: com.android.tools.lint.client.api.vendor

    java.lang.classnotfoundexception: com.android.tools.lint.client.api.vendor 在 launcherTemplate 目录下找到 Android/lintOptions 选项 加上 checkReleaseBuilds false lintOptions { abortOnError false checkReleaseBuilds false }

    2024年02月10日
    浏览(41)
  • 【Python】conda镜像配置,.condarc文件详解,channel镜像

    安装miniconda即可,Miniconda 安装包可以到 http://mirrors.aliyun.com/anaconda/miniconda/ 下载。 .condarc 是conda 应用程序的配置文件,在用户家目录(windows:C:usersusername),用于管理镜像源。如果不存在,则打开conda的,执行一下: anaconda安装的位置/pkgs 该目录是用户指定update或install时

    2024年02月03日
    浏览(33)
  • Android.mk和Android.bp的区别和转换详解

    简单的说: Android.mk和Android.bp都是用来编译出类库.jar,应用文件.apk,动态库.so,静态库.a等等作用。 Android.mk就是一个GNU make语法的脚本文件。 Android.bp文件是Android 7.0及更高版本中引入的一种构建脚本文件,是使用Starlark语法编写的,它是一种基于Python的轻量级脚本语言。 他们

    2024年04月28日
    浏览(49)
  • android单独编译各个img命令

    $ make kernel -j12 #第二次编译可使用ninja kernel -j12 $ make bootimage -j12 #第二次编译可使用ninja bootimage -j12 $ make dtboimage -j12 #第二次编译可使用ninja dtboimage -j12 注:新电脑编译过程会提示缺一些模块/库,需根据错误提示安装相关模块/库 # 编译成功生成如下镜像 out/target/product/vangogh/

    2023年04月27日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包