如何在ota升级时将data分区也打入升级包一并升级data分区
来源:互联网 发布:激战2捏脸数据 编辑:程序博客网 时间:2024/04/26 19:30
make otapackage是从build/core/Makefile开始执行的:
$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS) @echo "Package OTA: $@" $(hide) PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH MKBOOTIMG=$(MKBOOTIMG) \ ./build/tools/releasetools/ota_from_target_files -v -w \ -p $(HOST_OUT) \ -k $(KEY_CERT_PAIR) $(TIMESTAMP_CHECK) \ $(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \ $(BUILT_TARGET_FILES_PACKAGE) $@.PHONY: otapackageotapackage: $(INTERNAL_OTA_PACKAGE_TARGET)
Makefile 的主要作用是:
建立升级包的目录结构,将需要的文件拷贝到对应的目录中,最终形成临时的zip文件作为制作升级包的原材料,生成路径为:out/target/product//obj/PACKAGING/XXXXXXXX.zip
然后执行 ./build/tools/releasetools/ota_from_target_files.py脚本,具体的参数配置在脚本文件开始处有注明,比如-w代表擦除data分区
将data打包进升级包需要修改三处:
一、差不多在Makefile的1747行添加:
$(hide) zipinfo -1 $@ | awk 'BEGIN { FS="DATA/" } /^DATA\// {print "data/" $$2}' | $(HOST_OUT_EXECUTABLES)/fs_config -C -D $(TARGET_OUT) -S $(SELINUX_FC) > $(zip_root)/META/data_filesystem_config.txt
生成配置文件的空文件,在执行脚本时会有相关信息写入,如果不配置将显示此文件找不到
二、在ota_from_target_files.py中添加宏定义,大约在981行
def HasDataPartition(target_files_zip): try: target_files_zip.getinfo("DATA/") return True except KeyError: return False
判断临时文件中是否包含data分区所需要的文件
三、在WriteFullOTAPackage中添加:
if HasDataPartition(input_zip): data_items = ItemSet("data", "META/data_filesystem_config.txt") script.ShowProgress(0.1, 0) if block_based: data_tgt = GetImage("data", OPTIONS.input_tmp, OPTIONS.info_dict) data_tgt.ResetFileMap() data_diff = common.BlockDifference("data", data_tgt) data_diff.WriteScript(script, output_zip) else: script.FormatPartition("/data") script.Mount("/data", recovery_mount_options) script.UnpackPackageDir("data", "/data") symlinks = CopyPartitionFiles(data_items, input_zip, output_zip) script.MakeSymlinks(symlinks) data_items.GetMetadata(input_zip) data_items.Get("data").SetPermissions(script)
作用是将data文件打包进升级包并生成相应的升级脚本,建议加在vendor后边
友情提醒: python对代码格式要求很严,请尤其注意,我已被坑惨
0 0
- 如何在ota升级时将data分区也打入升级包一并升级data分区
- OTA升级包制作
- android OTA 升级优化之一: recovery支持分区更新
- Android7.0 MTK方案 编译OTA升级包错误Could not append verity data!
- Android OTA 升级之一:编译升级包
- Android OTA 升级之一:编译升级包
- Android OTA 升级之一:编译升级包
- Android OTA 升级之一:编译升级包
- Android OTA 升级之一:编译升级包
- Android OTA 升级之一:编译升级包
- Android OTA 升级(一): 编译升级包
- Android OTA 升级(一): 编译升级包 .
- Android OTA 升级之一:编译升级包
- Android OTA 升级之一:编译升级包
- Android OTA 升级之一:编译升级包
- Android OTA 升级(一): 编译升级包
- Android OTA 升级(一): 编译升级包
- Android OTA 升级之一:编译升级包
- 开车的极限速度速速体验刺激瞬间!!!
- 自由与钱无关,限制你的只是自己的格局——北漂18年(77)
- swipeRefreshLayout和加载头布局viewpager的listviewUI卡顿问题
- iOS类别(Category)与扩展(Extension)
- springMVC、freemarker页面半自动静态化
- 如何在ota升级时将data分区也打入升级包一并升级data分区
- 电商抢购倒计时View
- CentOS下后台运行Python脚本及关闭脚本的一些操作
- 一,Log4j Example
- 第一章 PL/SQL介绍
- DNS 引起经典RAC故障
- 汉字转拼音
- XMLConfiguration用法
- Android中基于Socket的网络通信