Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1292030
  • 博文数量: 478
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4833
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-28 11:12
文章分类

全部博文(478)

文章存档

2019年(1)

2018年(27)

2017年(21)

2016年(171)

2015年(258)

我的朋友

分类: Android平台

2016-05-31 13:45:35

首先此类问题要回溯一下在此之前是否有类似的问题出现,或者查找具有参参考价值的资料,如果没有,就需要了解ota升级客户端与服务器交互的流程,以便于查找问题出现的根源。

    总的来说我遇到过3例类似的问题,一次ota服务器是客户的,两次是自研的ota服务器。但问题都是一样,SPM或这发布版本的同事手误,因为某个字符串的错误导致客户端与服务器交互的时候查找不到更新包。

我的分析流程大致如下,读者可以参考一下:

首先如果有源码的话首当其冲要先了解重点操作流程的方法调用原理并记录或者打印关键log以便于调试的时候查看log。在下搜索下面关键字如result、url,因为客户端向服务器请求的时候最终是一个uri地址,而这个uri中也一定封装了请求服务器的关键参数,如果由于请求方式的原因我们无法查看到请求的url那么也要找到关键的参数。下面是我解决其中一个问题的时候所看到的uri作为读者的参考,如下:

01-01 18:05:27.199: I/SysUpdate(3700): server url is:http://xxx.xxx.xxx.xxx/otatest/checkupdate?hw=TitaniumS360&hwv=H201&swv=SW_S93951B1_V004_M10_karbonn_S360_USR_MP&serialno=125898944895661&bdt=201501200856&cust=karbonn&kernel=4.4.2&maf=Karbonn&board=S360&lang=en&net=wifi&oprator=null&smsc=11111111111&aid=ed0d5dffc1130724&seri=A6F6SO9DT8RGAQVW&imsi=null

    从以上的log中我们可以很清楚的看到客户端与服务器交互的内容,一些简单的服务器,我们可以直接把上面的url地址复制到浏览器的地址栏上,回车就可以看到请求的结果,如果请求失败,如下:


COOLPAD_OTA CHECK_UPDATE_RESULT:1 
了解客户端服务器交互流程的朋友应该清楚,服务器接收到客户端请求时会获取到请求的参数,通过对参数的check来相应客户端。举例来说:服务器一般会对以下参数进行check:



1.hw//手机型号



2.hwv//硬件版本



3.swv//软件版本



4.如果当前手机的imei在测试列表中,那么会使用测试状态的版本,也就是说如果imei好在测试列表中的话,就会允许升级。



我们要保证这些请求参数的正确。
阅读(877) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~