通过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三个的关系如下图
boot.img 结构
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
程序
system.img
文件解压后如下