# ota-update-tools **Repository Path**: e190/ota-update-tools ## Basic Information - **Project Name**: ota-update-tools - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-22 - **Last Updated**: 2021-02-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README * 制作差分包 ./update_gen.sh -a fota1.zip fota2.zip fota1.zip : 原始版本 fota2.zip : 目标版本 操作成功后会在当前目录下生成差分包:update.zip target_exclude.txt 是过滤文件设置,可以在升级的时候忽略文件 * 工具开发者使用 == release工具目录树 == - Android提供了release版本的工具,在build/tools/releasetools目录下: |-- ota_from_target_files:为一个python脚本,做包入口从这里开始,生成包的主要工作也是在这里完成。 |-- bsddiff:此可执行文件主要用户计算非压缩的文件的差异,比如我们计算rootfs文件的差异,就使用的此脚本。 |-- imgdiff:此可执行文件主要用户计算压缩文件的差异,支持的格式有*.gz,*.zip,*.apk,*.jar,*.img。 |-- common.py:主要定义了一些公用的函数,如:获取分区类型、计算文件差分、生成patch文件等。 |-- edify_generator.py:主要是生成updater-script文件的内容,还包括将文件添加到升级包中。 `-- === ota包生成工具 === # 参数说明: # -k (--package_key) # 签名使用的私钥(default is "build/target/product/security/testkey"). # # -i (--incremental_from) # 生成增量OTA包时用于定义对比包 # # -w (--wipe_user_data) # 是否清除userdata分区 # -v # 冗余模式,让脚本打印出执行的命令 -k :指定sign package使用的key -i : 制作差分包,后面跟差分包基础包 -v:verify功能 -e:指定额外的升级脚本 -b:指定一个update-binary存放到ota包中 -t:指定线程数 * OTA应用: 本文所讲的流程代码路径为:bootable/recovery/ 首先从文件层面说下升级功能的调用流程,说明如下: recovery.cpp 升级的主入口 开始recovery升级的处理流程 install.cpp 执行升级的处理流程(调用updater) ** updater应用 updater/updater.c 完成升级的核心流程