Android 系统 映像文件

通过Android 拉取ASOP 项目源码,配好各种环境后,编译出来的文件,有如下几个: 通过Android 拉取ASOP 项目源码,配好各种环境后,编译出来的文件,有如下几个:

  • boot.img 包含内核启动参数、内核等多个元素
  • ramdisk.img 小型的文件系统,是Android系统启动的关键
  • system.img Android 系统的主要运行包(fwk就包含在此),会被挂在到设备的/system
  • userdata.img 数据存储,会被挂载到 /data
  • recovery.img 进入恢复模式相关的 文件包
  • misc.img 是miscellaneous ,包含各种杂项
  • cache.img 缓存区,会被挂载在 /cache

boot、ramdisk、system三个的关系如下图

image

boot.img 结构

image

xref: /system/core/mkbootimg/mkbootimg

129 def parse_cmdline():
130 parser = ArgumentParser()
131 parser.add_argument('--kernel', help='path to the kernel', type=FileType('rb'),
132 required=True)
133 parser.add_argument('--ramdisk', help='path to the ramdisk', type=FileType('rb'))
134 parser.add_argument('--second', help='path to the 2nd bootloader', type=FileType('rb'))
135 parser.add_argument('--cmdline', help='extra arguments to be passed on the '
136 'kernel command line', default='', action=ValidateStrLenAction, maxlen=1536)
137 parser.add_argument('--base', help='base address', type=parse_int, default=0x10000000)
138 parser.add_argument('--kernel_offset', help='kernel offset', type=parse_int, default=0x00008000)
139 parser.add_argument('--ramdisk_offset', help='ramdisk offset', type=parse_int, default=0x01000000)
140 parser.add_argument('--second_offset', help='2nd bootloader offset', type=parse_int,
141 default=0x00f00000)
142 parser.add_argument('--os_version', help='operating system version', type=parse_os_version,
143 default=0)
144 parser.add_argument('--os_patch_level', help='operating system patch level',
145 type=parse_os_patch_level, default=0)
146 parser.add_argument('--tags_offset', help='tags offset', type=parse_int, default=0x00000100)
147 parser.add_argument('--board', help='board name', default='', action=ValidateStrLenAction,
148 maxlen=16)
149 parser.add_argument('--pagesize', help='page size', type=parse_int,
150 choices=[2**i for i in range(11,15)], default=2048)
151 parser.add_argument('--id', help='print the image ID on standard output',
152 action='store_true')
153 parser.add_argument('-o', '--output', help='output file name', type=FileType('wb'),
154 required=True)
155 return parser.parse_args()

ramdisk.img

文件解压出来如下图所示,包含/system,/data,还有init 程序
image

system.img

文件解压后如下
image

posted @   阿丟啊  阅读(97)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示