android系统映像文件

android源码编译后得到system.img,ramdisk.img,userdata.img映像文件。其中,ramdisk.img是emulator(模拟器)的文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,emulator负责加载这3个映像文件。

下面我们来简要分析一下这三个镜像文件。

如下图所示是编译之后生成的相关文件。

  其中三个镜像对应的文件夹上图也很明了了。android系统启动后,会把system.img和userdata.img分别加载到 ramdisk文件系统中的system和 userdata目录下。

init.rc的部分内容截图

这里要着重强调一下,从名字上就可以看出来ramdisk文件系统是一个基于内存的文件系统,所以利用adb shell等修改其内容后,

一旦系统重启,修改的内容都会被还原的。

前面说了ramdisk.img就是root文件夹,和在Linux下利用busybox制作的文件系统一样,init.rc是要被首先解析的一个配置文件,

里面包含了文件夹的创建,权限,以及启动android重要服务的规则。要想修改init.rc里面的内容,那么在修改之后要重新打包镜像。

下面是编译这些镜像时的编译命令:

1.system.img

make systemimage

2.userdata.img

make userdataimage

3.ramdisk.img

make ramdisk

4.boot.img

make bootimage

5.system打包

make snod

这个不检查依赖关系,只是把 out\target\product\XXX\system 目录打包成system.img,用于简单替换文件时打包。

当然执行make命令会生成所有的系统镜像,另外说一下boot.img其实是将ramdisk.img和Kernel打成的一个镜像,在真实产品中会有这个镜像,模拟器中不需要这个镜像。

时间: 2024-10-16 14:52:47

android系统映像文件的相关文章

Android系统的镜像文件的打包过程

在前面一篇文章中,我们分析了Android模块的编译过程.当Android系统的所有模块都编译好之后,我们就可以对编译出来的模块文件进行打包了.打包结果是获得一系列的镜像文件,例如system.img.boot.img.ramdisk.img.userdata.img和recovery.img等.这些镜像文件最终可以烧录到手机上运行.在本文中,我们就详细分析Android系统的镜像文件的打包过程. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! <Andr

用adb pull命令从android系统中读取文件失败的原因及解决办法

问题:使用adb pull命令从android系统中读取文件失败.显示:Permission denied 原因:是由于文件权限原因引起. 使用ls -l命令查看android系统中的文件权限为: -rw-rw---- app_51   app_51 也就是说,该文件只有app_51用户以及app_51群组拥有读写权限,而adb shell的用户为shell,既不是app_51用户,也不在app_51群组中,所以没有权限读取这个文件.所以就出现了 Permission denied. 解决方法:

解决wubi安装ubuntu时要下载系统映像文件问题

1.问题描述及失败方案 问题描述就描述吧,还介绍什么失败方案,我这是为了让读者不重蹈覆辙!废话不多说了,直接进入主题--wubi安装ubuntu为我们提供很大的方便,虽然损失了一点性能,但这是可以接受的.但是用wubi安装ubuntu时,它会去ubuntu系统的iso文件!安装过程如下图所示: 图1.设置好wubi后安装图示   图2.过了一会后就到这个界面了,下载ISO文件 图3.下载ISO文件的过程,这还算比较好的才需要3个多小时, 我29号那天安装时提示要2000多个小时(可能现在资源比较

交换机的配置文件和系统映像文件备份与恢复

实验目的:将交换机的配置文件和系统映像文件备份到TFTP服务器上,然后将自身的配置和系统映像删除,从TFTP服务器上恢复配置和系统映像 拓扑图如下: 原文地址:https://www.cnblogs.com/guoshiyu/p/9149280.html

Android系统build.prop文件

# begin build properties (开始设置系统性能) # autogenerated by buildinfo.sh (通过设置形成系统信息) ro.build.id=GRI40 (版本ID) ro.build.display.id=GRJ22 (版本号) ro.build.version.incremental=eng.buildbot.20110619.060228 (版本增量) ro.build.version.sdk=10 (sdk版本) ro.build.versio

Android——4.2.2 文件系统文件夹分析

近期公司要整android内部培训,分配给我写个培训文档.这里记录例如以下: 撰写不易,转载请注明出处:http://blog.csdn.net/jscese/article/details/40897703 导读: 这里补充下android执行时的文件系统结构, 相同.资料网上有非常多,仅仅是简介我常涉及到的,个人观点.仅供參考- 各个厂商平台可能会有出入.这里单以我这边mstar的平台 以"/"代表文件系统的根文件夹. --jscese 2014/11/7 文件系统生成 眼下and

Android核心服务解析篇(一)——Android系统的启动

从大的方面来说,Android系统的启动可以分为两个部分:第一部分是Linux核心的启动,第二部分是Android系统的启动.第一部分主要包括系统引导,核心和驱动程序等,由于它们不属于本篇要讲的内容,这里就不再讨论.在本篇博客中,我们重点讲解Android系统的启动,这一过程主要经过两个阶段,分别是应用的初始化流程与system_service进程及核心服务的创建流程. 1.初始化流程 初始化流程,顾名思义,它完成Android的一些初始化工作,包括设置必要的环境变量,启动必要的服务进程,挂载必

理解Android系统(一)

理解Android系统 Android 是业界流行的开源移动平台,受到广泛关注并为多个手机制造商作为手机的操作系统平台.由于它的开放性,市面上又出现了它的很多改良定制版本.且广泛的应用在手机.汽车.电脑等领域.因此,研究其安全架构及权限控制机制具有非常的重要性. 本章从 Android 层次化安全架构入手,详细地介绍 Android 平台的安全架构及其权限控制机制,涵盖 Android 应用程序权限申请方法等,并从源代码实现层面来解析该机制. 1.1 系统的层级架构 Android架构,其实就是

Android核心服务解析篇(三)——Android系统的启动

从大的方面来说.Android系统的启动能够分为两个部分:第一部分是Linux核心的启动,第二部分是Android系统的启动. 第一部分主要包含系统引导,核心和驱动程序等,因为它们不属于本篇要讲的内容,这里就不再讨论. 在本篇博客中,我们重点解说Android系统的启动,这一过程主要经过两个阶段.各自是应用的初始化流程与system_service进程及核心服务的创建流程. 1.初始化流程 初始化流程.顾名思义,它完毕Android的一些初始化工作,包含设置必要的环境变量,启动必要的服务进程,挂