分享下 Android OTA 问题分析思路,针对不同类型的问题进行分析。

一、 升级过程,校验失败;

升级校验失败是开发过程中常见的问题,校验失败实际是针对版本拿升级包进行打 patch,目前 Android 基本都是 block 升级,所以校验失败也就是某些 block 校验不过。

1. 首先排查,设备刷的版本和升级包对应的版本是否匹配;

这种情况一般比较少见,但是应当首先予以排除。查看设备的版本号,编译时间辍,和升级包里面的是否一致。

包括下面几种情况:

1)升级包正确,但是设备刷错了版本(比如升级包是 V001 -> V002 的,但是版本是 V003 的);

2)设备刷的版本正确,但是下载的升级包错误(比如设备是 V001版本,但是升级包是 V002-> V003 的差分包);

3)升级包或者版本编译异常导致校验失败。升级过程:源版本 -> 目标版本;

3.1:源版本里面的 imges,和 target 包里面的 imges 不同,导致升级过程分区校验失败;这种情况就需要排查源版本里面的 images,和 target 包里面的images 是否相同;

注意:正式版本编译时,升级包要和版本一起编译,而且再升级包编译完成后,target 包里面的部分 images 要覆盖到版本里面的 images。这部分修改,之前 MTK 平台默认是有的,但是高通平台没有,需要合入这部分补丁。

本地升级验证的情况下,同样应该注意排查升级包拷贝过程中,拷贝不完全导致的升级包损坏的情况。

2. 排查设备分区是否被篡改,比如是否被 remount等情况;

在线升级情况,在升级包下载后本身会对升级包完整性进行校验,如果完整性校验通过,则会进行升级包内容进行校验。如果分区被篡改,则会导致分区的 block 发生变化,从而校验失败。

这种情况,重新刷机应该就可以升级成功。

3. 其他导致升级失败的情况;

1)系统配置了升级分区,比如system 分区,但是升级包里面没有包含该分区。

2)缺少selnux 权限导致,比如没有权限读取分区,则也导致校验失败;没有权限写入分区,则会导致升级失败;

二、 升级完成,设备不开机;

针对设备升级完成,设备无法开机的情况,常规分析方法如下:

1. 通过工具回读设备的分区(data/cache 等非系统分区不用回读,回读的常规分区如 boot/lk/preloader/system/vendor/product等),和系统版本里面的image进行二进制对比,看是否一致。高通平台 QFILE 工具,MTK 平台 Flashtool 工具。

如果对比某个分区不一致,就要具体分析为什么分区和逾期的不一致。

2. 通过串口抓去 kernel 日志进行分析,这种情况相当于找具体的问题,需要在版本里面打开串口日志重新编译版本 + 升级包验证。

通过串口日志,可以找到具体的问题点,然后再具体分析。

Android OTA 问题分析相关推荐

  1. Android OTA升级原理和流程分析(五)---update.zip包从上层进入Recovery服务

    转载自:http://blog.chinaunix.net/uid-22028566-id-3533854.html 文章开头我们就提到update.zip包来源有两种: 一个是OTA在线下载(一般下 ...

  2. Android OTA在线升级一(架构分析)

    http://blog.csdn.net/huryjiang/article/details/7589625 1.前言 OTA(Over-the-Air Technology)空中下载技术.是通过移动 ...

  3. android ota 版本校验,OTA升级签名校验简析

    1. 概要 如果进行过OTA升级的开发者,都或多或少有这样的疑问,如何确定该OTA升级包是可以信任的呢?这其中其实涉及到一个签名验证的流程. 2. 签名生成 在生成正规的固件时,一般会运行生成新key ...

  4. 【转】Android OTA 升级之一:编译升级包

    Android OTA 升级之一:编译升级包 作者: 宋立新 Email : zjujoe@yahoo.com 前言 OTA 升级是 Android 系统提供的标准软件升级方式. 它功能强大,提供了完 ...

  5. Android OTA升级(1):编译升级全包

         Android原生系统中就已经支持OTA升级.所谓OTA升级就是通过空中接口获取升级包,然后更新系统固件.一般地,升级包无论如何获取,哪怕是直接TCard本地升级,也被称为OTA升级.    ...

  6. Android OTA 升级之五:updater

    2011-03-15 20:14 4164人阅读 评论(7) 收藏 举报 Android OTA 升级之五:updater 作者: 宋立新 Email:zjujoe@yahoo.com 前言 可以说, ...

  7. Android OTA升级包制作和验证

    几个概念 **整包升级:**即整个Rom的数据都升级,所以升级包较大,但对要升级的目标系统的版本没有限制 **增量升级:**即只升级有变化的部分,所以升级包较小,但只能针对做比对的俩个系统版本之间来升 ...

  8. Android OTA 升级之一:编译升级包

    Android OTA 升级之一:编译升级包 作者: 宋立新 Email:zjujoe@yahoo.com 前言 OTA 升级是 Android 系统提供的标准软件升级方式. 它功能强大,提供了完全升 ...

  9. Android OTA 相关工具(四) 查看 payload 文件信息

    文章目录 1. payload_info.py 的使用 1. 环境 2. 帮助信息 2. 查看 payload 文件信息 1. 不带选项查看 2. 使用 stats 选项查看 3. 使用 signag ...

最新文章

  1. JavaScript中使用console调试程序的坑
  2. mysql工具使用意义_MySQL性能分析、及调优工具使用详解
  3. Set Up the Dispatcher Console
  4. 国产化达梦数据库数据迁移文档:oracle11g数据库转达梦8数据库实例演示
  5. 打包后放在服务器上二级目录找不到解决办法
  6. nginx 配置文件参数说明
  7. uC/OS II--与ECB操作相关的四个函数
  8. c语言程序设计课程设计心得体会,C语言程序课程设计心得体会
  9. 各种排序算法比较--2015年7月23日22:33:43v1.0版
  10. rfid技术及应用答案王佳斌_详解工业数据采集中RFID技术的应用
  11. android小米通知不显示电量,Android开发笔记——小米通知‘坑’ app的通知一直显示在不重要通知里 ......
  12. Python_日记 序列化和反序列化
  13. 税控系统链接服务器失败,税控系统连接服务器安全地址
  14. 如何在WORD中给数字加上圈,教程在这里,怎么在WORD中给数字加圈
  15. java多级部门数据权限设计_数据权限设计(转载)
  16. 找到小菇凉 (BFS)
  17. mysql 授权root帐号可以远程访问,导入sql文件,登录mysql用root帐号,设置密码
  18. lego_loam 代码阅读与总结
  19. usb gadget g_webcam uvc gadget调试
  20. Visual Studio中使用Macros插件给代码添加注释、时间和以及自动脚本

热门文章

  1. 通过置换标签的方式给数据集加噪声
  2. Mysql---查询进阶(二)
  3. 吹捧“导师师娘”的论文获得国自然基金资助?中科院和作者都回应了!
  4. 100元 50元 20元 10元 5元 1元 标准尺寸
  5. php源码安装图文教程_织梦教程 整站源码通用安装教程内附图文说明
  6. DynamicDto链式实现动态数据传输对象
  7. 控制LED灯和蜂鸣器的按键实验
  8. AI时代,与其恐惧,不如拥抱。
  9. OTM1287A在MSM8909上的移植
  10. next在java中是什么意思_java中next是什么意思