1、涉及文件
2、流程解析
3、问题探讨
1、涉及文件
./build/make/core/Makefile
ota脚本 ./build/toos/releasetools/
9.0FOTA包
9.0源码
2、流程解析
本次问题是一家方案公司的编译环境有问题,经常出现升级报错vendor不匹配的问题,大致看了下升级脚本 修改为整包升级或者不升级两种情况,
首先我们要明白,最开始只有system分区查分,后续出现了vnedor,oem等等,所以原生的脚本里其他分区全部 都是仿照system加进去的,
以下是差分的主入口,调用commpy的blockDifference处理,这里的vendor_diff是关键参数,后续所有的判断 都以该参数为准
所以第一种不升级vendor的情况就是直接修改venor_diff = None,这样所有vendor相关的操作都会去掉

第二种情况,整包升级vendor
第一步,对于这个问题,并没有直接想按流程研究代码的意思,而是想更为简单的直接照搬T卡包里的vendor升级的方法
vendor_tgt = GetImage("vendor", OPTIONS.input_tmp)
vendor_tgt.ResetFileMap()
vendor_diff = common.BlockDifference("vendor", vendor_tgt)&nb

本文详细解析了Android OTA升级中遇到的vendor分区不匹配问题。通过分析编译环境和升级脚本,探讨了差分升级和整包升级vendor分区的流程。最终通过调整编译参数和补充缺失的库文件解决了问题。
最低0.47元/天 解锁文章
5729

被折叠的 条评论
为什么被折叠?



