几天前一位多亲手机的用户委托我帮忙解除多亲的程序安装限制问题,由于我的试验机在上一次刷机试验后刷机失败至今未送去返修,正好就将就此次机会抓取一下多亲ota的链接,最好是可以解决刷包后ota的问题。

获取ota地址

由于多亲的ota升级包下载以后是存储在/cache/google/ota目录下面的(没有记错的话),而多亲1SP目前暂时没有Root方案,所以通过直接拷贝的方式提取OTA升级包是一件非常麻烦的事情。正好前些日子简单的学习了一点网络监听的知识,于是就转换思路,从直接获取包到获取OTA地址。

首先下载fiddler,然后配置好监听代理,将证书放置到手机上。然后点击系统更新获取到OTA的下载地址。

幸运的事情

通过分析fiddler的session,发现ota服务的请求地址和实际的包下载地址是不同的。ota服务会先向服务器发出请求,然后再返回ota升级包的地址和更新内容说明。

通过访问ota的请求服务器,发现ota服务的网站没有关闭网站目录功能,通过浏览目录内容,发现该ota服务器将所有的用户请求日志全部保存在服务器上,而这里面就包含了从多亲手机提供更新服务以来的所有请求日志,也包含了截至到目前的所有ota包地址。

因此我们使用wget -c -r -np -k -L -p $url将整个ota网站下载下来,在log目录下,使用grep -E "\"dwnld\":.*\.zip" * > dwnld将所有的包括ota链接的行内容保存到dwnld,使用grep -E "http.*\.zip" -o dwnld > dwnld_filter,将所有的ota链接筛选出来,最后使用sort dwnld_filter | uniq > ota_src将所有的ota链接去重以后保存到ota_src文件中。

于是,多亲系列所有的产品ota包链接就保存到了ota_src链接中。

后话

由于多亲的ota服务器log日志在不停的更新,因此,只需要在下载ota网站的wget命令中加上-nc参数即可只下载最新得log日志到本地。

多亲的ota请求服务器以及ota文件列表请自行获取,暂不对非开发者提供。