怎样安装 android ota 升级 包

本发明公开了一种代码添加混淆嘚安卓安装包OTA升级方法包括以下步骤:服务器目录架构搭建步骤;OTA升级步骤,包括:(11)、客户端将当前版本信息发送至服务器;(12)、服务器在本地查找到最新版本的安卓安装包并对其进行反编译,得到反编译文件;(13)、从所述反编译文件中找到Smali文件;(14)、将所述Smali文件按照客户端当前版本所对应的字典的规则进行重新混淆;(15)、得到差分包并将所述差分包发送至客户端;(16)、客户端接收服務器发送的差分包进行升级。本发明的升级方法将两个版本的字典统一,大大减少了差分包的数据大小节约了下载时间和升级时间。

技术研发人员:尹左水;桑圣杰

OTA 升级是 Android 系统提供的标准软件升级方式 它功能强大,提供了完全升级、增量升级模式可以通过SD卡升级,也可以通过网络升级

那如何生成差分升级包呢?

Android源码的根目录丅有以下两个命令:

要生成差分升级包需要先制作出两个全升级包,然后根据这两个升级包做出差分升级包这里以高通的msm8974为例,讲诉Android差分包的制作过程

这个随意,在哪里建都行 主要要于保存升级文件如

(~代表为用户目录,一般为/home/用户名可通过cd ~,然后通过pwd查看路径)

4、在代码中做一些修改,产生一些差异

7、在src根目录下执行制作差分包的命令必须在src根目录下执行,因为ota_from_target_files.py这个脚本里面写定了相对路径的引用文件。

打开update.zip有一个升级脚本META-INF/com/google/android/updater-script。Android就是根据这个脚本进行升级的有兴趣的可以研究一下。当然升级失败了最好从这个脚本中找原因叻,因为这个文件会打印升级过程中的信息通过adb shell,进入/tmp目录,有个文件记录了升级过程的信息可通过这个文件查看升级失败的原因。

差汾包制作好后可以用Android的recovery应用该升级包。应用该升级包的时候遇到了两个问题,这里给大家分享一下

  时间戳失败即OTA包必须比recovery的编译时間要早,这个在编译的时候控制一下即可当然,你也可屏蔽OTA包的时间戳检测见

 9.2指纹校验失败。差分升级包就是比较现存基础包与原来嘚基础包的差异而生成的即该OTA包有特定的应用背景(用于两个差分包之间)。升级过程中升级脚本(打开该升级包,如下图所示)会检测fingerprint确保该升级包被正确应用。fingerprint这个属性存在于/build.prop可通过adb shell进入根路径,通过cat build.prop查看这个属性(或getprop)如果自己做版本控制的话,这个也可以屏蔽關于指纹校验该篇博客有较详细的介绍

9.3提示system分区不够大,升级失败。这里的system分区为500M剩余200M。这里感觉挺奇怪的200M的的空间还升级不了一个20多M嘚升级包。开始的时候认为是selinux引起的因为串口会打印一下selinux的错误,尝试改正这些错误后升级包并没有应用成功。这里单纯一点,它提示system分区容量不够那咱就给它大一点哦。尝试修改将system分区的容量改为1G后成功升级。

我要回帖

 

随机推荐