OTA 几率升级失败

shadowsland 2018-06-19 06:20:26
最近做了一个相差时间较久的ota升级包,在升级时出现比较奇怪的现象:
升级包A,下载差分包,升级提示错误
再升级包A,下载差分包,升级成功
再升级包A,下载差分包,升级提示错误
再升级包A,下载差分包,升级成功
目前正在分析中,先记录问题,错误log如下:
loading /cache/recovery/1336c19e9105f5969aabce42a536a875bda7ac75/6f53d98c8004def05b458d7fecdfe9d70a406547
failed to verify blocks (expected 11e05f674731b55707078f22ee4ba83e0be19c93, read a5b5daaae4f7a440737c1cc7335625e66bb699f0)
stat "/cache/recovery/1336c19e9105f5969aabce42a536a875bda7ac75/11e05f674731b55707078f22ee4ba83e0be19c93" failed: No such file or directory
partition has unexpected contents
failed to read blocks for diff
failed to execute command [bsdiff 46245002 1524 xxxxxxxxxxxx]
...全文
2789 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
luojia20032004 2019-01-31
  • 打赏
  • 举报
回复
怎么解决的啊?各位大佬
soliciter 2018-10-09
  • 打赏
  • 举报
回复
新手,正在做升级,如何实现OTA的
hongcheng_88 2018-09-06
  • 打赏
  • 举报
回复
引用 9 楼 u014161869 的回复:
[quote=引用 4 楼 u011888840 的回复:]
[quote=引用 3 楼 u014161869 的回复:]
[quote=引用 2 楼 u014161869 的回复:]
刚好昨天也遇到这个问题,我的这边是必现升级失败,报的错误一模一样,怀疑是打包的target_file有点问题,还在验证。楼主解决了麻烦给个分析过程,感谢

确认是因为target_file的问题导致,使用原生的命令生成的target_file来制作ota包,可以升级成功了。。[/quote]

使用原生的命令生成的target_file来成,是指什么,你之前用什么命令生成的?[/quote]

之前是odm厂商的编译打包脚本中加的make otapackage,后来屏蔽了这部分,在main.mk中使用BUILT_TARGET_FILES_PACKAGE生成,制作升级包就好了。[/quote]
根本原因也不是这个,是因为生成target_file包的过程中system分区中会增加install-recovery.sh相关文件用于ota升级时更新recovery,这个动作在out目录生成system.img之后进行,导致target_file包中的system.img与out目录下的system.img不一致,即刷机的img和做ota包的img不一致导致升级失败。
解决办法是在Makefile中增加$(hide) ./build/tools/releasetools/replace_img_from_target_files.py $@ $(PRODUCT_OUT),这个处理动作和脚本在mtk的源码中有,大家可以看下。
hongcheng_88 2018-09-04
  • 打赏
  • 举报
回复
引用 4 楼 u011888840 的回复:
[quote=引用 3 楼 u014161869 的回复:]
[quote=引用 2 楼 u014161869 的回复:]
刚好昨天也遇到这个问题,我的这边是必现升级失败,报的错误一模一样,怀疑是打包的target_file有点问题,还在验证。楼主解决了麻烦给个分析过程,感谢

确认是因为target_file的问题导致,使用原生的命令生成的target_file来制作ota包,可以升级成功了。。[/quote]

使用原生的命令生成的target_file来成,是指什么,你之前用什么命令生成的?[/quote]

之前是odm厂商的编译打包脚本中加的make otapackage,后来屏蔽了这部分,在main.mk中使用BUILT_TARGET_FILES_PACKAGE生成,制作升级包就好了。
weixin_40740500 2018-08-04
  • 打赏
  • 举报
回复
引用 3 楼 u014161869 的回复:
[quote=引用 2 楼 u014161869 的回复:]
刚好昨天也遇到这个问题,我的这边是必现升级失败,报的错误一模一样,怀疑是打包的target_file有点问题,还在验证。楼主解决了麻烦给个分析过程,感谢

确认是因为target_file的问题导致,使用原生的命令生成的target_file来制作ota包,可以升级成功了。。[/quote]

这位大神请问是什么原生命令,我也碰到同样的问题OTA差分包升级不成功
weixin_40740500 2018-08-04
  • 打赏
  • 举报
回复
请问原生的命令生成target_file是什么,谢谢
hongcheng_88 2018-06-20
  • 打赏
  • 举报
回复
刚好昨天也遇到这个问题,我的这边是必现升级失败,报的错误一模一样,怀疑是打包的target_file有点问题,还在验证。楼主解决了麻烦给个分析过程,感谢
shadowsland 2018-06-20
  • 打赏
  • 举报
回复
引用 3 楼 u014161869 的回复:
[quote=引用 2 楼 u014161869 的回复:]
刚好昨天也遇到这个问题,我的这边是必现升级失败,报的错误一模一样,怀疑是打包的target_file有点问题,还在验证。楼主解决了麻烦给个分析过程,感谢

确认是因为target_file的问题导致,使用原生的命令生成的target_file来制作ota包,可以升级成功了。。[/quote]

使用原生的命令生成的target_file来成,是指什么,你之前用什么命令生成的?
hongcheng_88 2018-06-20
  • 打赏
  • 举报
回复
引用 2 楼 u014161869 的回复:
刚好昨天也遇到这个问题,我的这边是必现升级失败,报的错误一模一样,怀疑是打包的target_file有点问题,还在验证。楼主解决了麻烦给个分析过程,感谢
确认是因为target_file的问题导致,使用原生的命令生成的target_file来制作ota包,可以升级成功了。。
shadowsland 2018-06-19
  • 打赏
  • 举报
回复
错误log和升级成功对比

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧