1.制作ota
make otapackage
自动模式下,执行ota_from_target_files时,
制作升级包的函数会调用edify_generator.py脚本里的函数去自动编写updater-script。而edify_generator.py里的函数和updater-script的语法规则是一一对应的
步骤
- 1.make target-files-package
otapackage和target-files-package 都是.PHONY伪目标
生成 obj/PACKAGING/target_files_intermediates/XXX-target_files-XXX.zip
包含
BOOT DATA META RECOVERY OTA SYSTEM
META/misc_info.txt
- 2.make otapackage
–block基于块的升级包,还是基于文件的升级包。
-k 指定key 文件 -k build/target/product/security/releasekey
BUILT_TARGET_FILES_PACKAGE 第一步生成的文件
-i 表示后面紧跟的文件是旧版本的Target包,即 此命令是要生成增量升级包,而不是完整升级包
ota_from_target_files --block -i origin.zip target.zip inc.zip
$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
@echo "Package OTA: $@"
@echo "./build/tools/releasetools/ota_from_target_files -v --block -p $(HOST_OUT) -k $(KEY_CERT_PAIR) $(if $(OEM_OTA_$
$(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH MKBOOTIMG=$(MKBOOTIMG) \
./build/tools/releasetools/ota_from_target_files -v \
--block \
-p $(HOST_OUT) \
-k $(KEY_CERT_PAIR) \
$(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \
$(BUILT_TARGET_FILES_PACKAGE) $@
ota_from_target_files
- 解压输入的target文件
print "unzipping target target-files..."
OPTIONS.input_tmp, input_zip = common.UnzipTemp(args[0])
分析misc_info.txt ,SYSTEM/build.prop ,RECOVERY/RAMDISK/etc/recovery.fstab
文件内容以(k,v)键值对形式保存到OPTIONS.info_dict
OPTIONS.target_tmp = OPTIONS.input_tmp
OPTIONS.info_dict = common.LoadInfoDict(input_zip)
d["fstab"] = LoadRecoveryFSTab(zip, d["fsta