一、问题引入
1.1 背景
预置条件:已编译出2个版本的target包;
问题引入:项目需要本地验证当前项目是否可以编译出OTA差分包和全量包,并通过差分包和全量包成功完成测试机系统版本升级(这里重点讨论编译差分包过程中遇到的问题)
1.2 编译命令
编译OTA的命令:
./build/tools/releasetools/ota_from_target_files -p out/host/linux-x86 -k device/qcom/common/security/releasekey -s device/qcom/common/releasetools.py -v --block -i ota/qssi-target_files-eng1126.zip ota/qssi-target_files-eng1201.zip ota/ota1126_to_1201.zip
参数描述:
第一个为制作OTA的脚本工具;
-s后面为mtk的插入脚本工具;
-k后面为项目签名(如果项目有专门签名,那么就是device/mediatek/common/security/<project>/releasekey,如果项目没有定制签名就用平台签名build/target/product/security/ releasekey)
-v 显示正在执行的命令
--block 基于block更新,代码生成基于块的升级包,其实已经没有意义了。android P的代码,不再支持基于文件的升级包
-p 指定在做包过程中用于搜索相应的bin程序和jar包的路径
-i 制作差分包
-k 表示用后面紧跟的密钥重新签名升级包。
二、问题处理过程
2.1 no module protobuf
问题描述:使用ota脚本编译OTA报错:ImportError: No mod