1.1 编译target files依赖的目标
首先列出编译target-files依赖的目标。如boot/system/vendor等image,imgdifff/bsdiff/releasetool等编译OTA包的工具。
1 | $(BUILT_TARGET_FILES_PACKAGE): \ |
1.2 创建target files目录
将上述依赖的目标列入target-files list,创建target-files目录,为后续打包作准备。
1 | @echo "Package target files: $@" |
1.3 recovery as boot处理
若有定义recovery as boot为true,则将recovery/root,2ndbootloader,kernel,dtbo,cmdline等内容拷贝至recovery目录,否则将其直接拷入boot目录。
1 | # 若BOARD_USES_RECOVERY_AS_BOOT为true,则处理recovery image相关目标 |
1.4 radio/system/vendor等img处理
在target-files创建RADIO/VENDOR/SYSTEM等目录,并将out目录对应内容拷贝至此。
1 | # 创建RADIO目录,并按radio image层次目录将radio image目标拷入 |
1.5 ota tool/apkcert/key/selinux处理处理
若为Non A/B项目,则将ota tool拷入OTA/bin目录。
将apkcerts/tool/otakeys/file_contexts.bin拷入META目录。
1 | # 若AB_OTA_UPDATER为false,则创建OTA/bin目录,并将updater拷入OTA/bin目录 |
1.6 生成misc_info.txt文件
1 | # 将recovery api版本信息赋给recovery_api_version并写入META目录misc_info.txt文件 |
1.7 将AVB信息到misc_info中
1 | # 若BOARD_AVB_ENABLE为true,则: |
1.8 将A/B Updater信息写入misc_info
1 | # AB_OTA_UPDATER为true |
1.9 处理recovery及预编译的vendor/boot/dtbo等imag
1 | # 若INSTALLED_RECOVERYIMAGE_TARGET非空,则调用make_recovery_patch脚本 |
1.10 处理radio/vendor/system等img的file config内容
1 | # 将radio image信息写入META目录pack_radioimages.txt文件 |
1.11 定义target-files-package模块编译
1 | # 用于make target-files-package |