Android 系统 映像文件

发布时间 2023-08-07 18:40:31作者: 柒月下寻

通过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