Android OTA 问题分析
分享下 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 问题分析相关推荐
- Android OTA升级原理和流程分析(五)---update.zip包从上层进入Recovery服务
转载自:http://blog.chinaunix.net/uid-22028566-id-3533854.html 文章开头我们就提到update.zip包来源有两种: 一个是OTA在线下载(一般下 ...
- Android OTA在线升级一(架构分析)
http://blog.csdn.net/huryjiang/article/details/7589625 1.前言 OTA(Over-the-Air Technology)空中下载技术.是通过移动 ...
- android ota 版本校验,OTA升级签名校验简析
1. 概要 如果进行过OTA升级的开发者,都或多或少有这样的疑问,如何确定该OTA升级包是可以信任的呢?这其中其实涉及到一个签名验证的流程. 2. 签名生成 在生成正规的固件时,一般会运行生成新key ...
- 【转】Android OTA 升级之一:编译升级包
Android OTA 升级之一:编译升级包 作者: 宋立新 Email : zjujoe@yahoo.com 前言 OTA 升级是 Android 系统提供的标准软件升级方式. 它功能强大,提供了完 ...
- Android OTA升级(1):编译升级全包
Android原生系统中就已经支持OTA升级.所谓OTA升级就是通过空中接口获取升级包,然后更新系统固件.一般地,升级包无论如何获取,哪怕是直接TCard本地升级,也被称为OTA升级. ...
- Android OTA 升级之五:updater
2011-03-15 20:14 4164人阅读 评论(7) 收藏 举报 Android OTA 升级之五:updater 作者: 宋立新 Email:zjujoe@yahoo.com 前言 可以说, ...
- Android OTA升级包制作和验证
几个概念 **整包升级:**即整个Rom的数据都升级,所以升级包较大,但对要升级的目标系统的版本没有限制 **增量升级:**即只升级有变化的部分,所以升级包较小,但只能针对做比对的俩个系统版本之间来升 ...
- Android OTA 升级之一:编译升级包
Android OTA 升级之一:编译升级包 作者: 宋立新 Email:zjujoe@yahoo.com 前言 OTA 升级是 Android 系统提供的标准软件升级方式. 它功能强大,提供了完全升 ...
- Android OTA 相关工具(四) 查看 payload 文件信息
文章目录 1. payload_info.py 的使用 1. 环境 2. 帮助信息 2. 查看 payload 文件信息 1. 不带选项查看 2. 使用 stats 选项查看 3. 使用 signag ...
最新文章
- JavaScript中使用console调试程序的坑
- mysql工具使用意义_MySQL性能分析、及调优工具使用详解
- Set Up the Dispatcher Console
- 国产化达梦数据库数据迁移文档:oracle11g数据库转达梦8数据库实例演示
- 打包后放在服务器上二级目录找不到解决办法
- nginx 配置文件参数说明
- uC/OS II--与ECB操作相关的四个函数
- c语言程序设计课程设计心得体会,C语言程序课程设计心得体会
- 各种排序算法比较--2015年7月23日22:33:43v1.0版
- rfid技术及应用答案王佳斌_详解工业数据采集中RFID技术的应用
- android小米通知不显示电量,Android开发笔记——小米通知‘坑’ app的通知一直显示在不重要通知里 ......
- Python_日记 序列化和反序列化
- 税控系统链接服务器失败,税控系统连接服务器安全地址
- 如何在WORD中给数字加上圈,教程在这里,怎么在WORD中给数字加圈
- java多级部门数据权限设计_数据权限设计(转载)
- 找到小菇凉 (BFS)
- mysql 授权root帐号可以远程访问,导入sql文件,登录mysql用root帐号,设置密码
- lego_loam 代码阅读与总结
- usb gadget g_webcam uvc gadget调试
- Visual Studio中使用Macros插件给代码添加注释、时间和以及自动脚本