一种代码添加混淆的安卓安装包OTA升级方法技术

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

【技术实现步骤摘要】
一种代码添加混淆的安卓安装包OTA升级方法
本专利技术涉及移动通信
,具体地说,是涉及一种代码添加混淆的安卓安装包OTA升级方法。
技术介绍
空中下载技术(OvertheAirTechnology,OTA)是一种通过无线网络进行数据下载的技术,现已被广泛应用于手机、平板电脑等设备的网络升级中。目前均是通过下载服务器端提供的针对客户端当前软件版本的差分文件并将差分文件通过打补丁的方式更新到当前软件版本中,从而实现OTA的升级。现有技术中为了信息安全以及安卓安装包(APK)压缩,会使用混淆技术,使用混淆后,反编译出来的代码类名和方法将使用一些毫无意义的abc等字符代替,防止其他人读取代码内容,起到保护代码的作用;同时会删除一些没有意义的代码,减小APK的大小。编译APK的同时,同时会生成一个字典,供调试使用。添加混淆的同时,也改变了编译出的APK的内容,在做差分升级的时候,差分出来的包就很大,原因就是混淆后两者混淆规则不一定相同,代码差别比较大,所以差分包也很大。
技术实现思路
本专利技术为了解决现有代码添加混淆的安卓安装包升级时由于字典不同导致升级差分包比较大,传输时间长,升级效率低的技术问题,提出了一种代码添加混淆的安卓安装包OTA升级方法,可以解决上述问题。为了解决上述技术问题,本专利技术采用以下技术方案予以实现:一种代码添加混淆的安卓安装包OTA升级方法,包括以下步骤:服务器目录架构搭建步骤,将同一应用各版本的安卓安装包及其对应的字典存储在服务器中;OTA升级步骤,包括:(11)、客户端将当前版本信息发送至服务器,其中,所述当前版本信息至少包括客户端当前版本的版本号;(12)、服务器在本地查找到最新版本的安卓安装包和与客户端当前版本一致的安卓安装包,检查该最新版本的安卓安装包和与客户端当前版本一致的安卓安装包的代码是否进行了混淆,若均进行了混淆,则对最新版本的安卓安装包进行反编译,得到反编译文件;(13)、从所述反编译文件中找到Smali文件;(14)、将所述Smali文件按照客户端当前版本所对应的字典的规则进行重新混淆;(15)、服务器将重新混淆后的最新版本的安卓安装包和所述与客户端当前版本所一致的安卓安装包进行差分,得到差分包,并将所述差分包发送至客户端;(16)、客户端接收服务器发送的差分包进行升级,直接从当前版本升级至最新版本。进一步的,步骤(14)中,包括以下子步骤:(14a)、服务器在本地查找到客户端当前版本所对应的字典,为当前版本字典,服务器同时在本地查找到最新版本所对应的字典,为最新版本字典;(14b)、建立当前版本字典-原始代码-最新版本字典之间的映射;(14c)、根据当前版本字典-原始代码-最新版本字典之间的映射,将Smali文件中的类名以及变量名替换成为当前版本字典的规则所命名的字符,完成Smali文件的重新混淆步骤。进一步的,步骤(14c)中,还包括至少将所述反编译文件的目录下的包名、类名、函数名以及变量名均按照当前版本字典的规则进行替换的步骤。进一步的,步骤(14)与步骤(15)之间,还包括将重新混淆后的最新版本按照安卓安装包原来的签名进行签名并打包的步骤。进一步的,服务器目录架构搭建步骤中,各版本的安卓安装包的字典存储在与该字典位于同一路径下的数据库表中。进一步的,步骤(12)中服务器采用APKTool对最新版本的安卓安装包进行反编译。进一步的,步骤(11)中,所述当前版本信息还包括待升级安卓安装包的名称、包名、大小和校验值,所述服务器将本地与待升级安卓安装包的名称、版本号一致的安卓安装包的信息分别与客户端当前版本信息进行比对,如果比对结果一致,则继续步骤(12),否则,不继续步骤(12),并返回错误信息。进一步的,所述校验信息包括待升级安卓安装包的大小和/或MD5值。进一步的,步骤(11)之前还包括检测当前版本所对应的字典与最新版本所对应的字典是否一致的步骤,若两者一致,则直接将最新版本的安卓安装包与客户端当前版本一致的安卓安装包进行差分,并将差分包发送至客户端,若两者不一致,则执行步骤(11)-(16)。进一步的,步骤(12)中,若最新版本的安卓安装包和与客户端当前版本一致的安卓安装包的代码均进行了混淆,还包括判断两者混淆文件相似度的步骤,若两者混淆文件的相似度大于预设阈值A1,则对最新版本的安卓安装包进行反编译,得到反编译文件,否则,直接将最新版本的安卓安装包和与客户端当前版本一致的安卓安装包进行差分得到差分包,其中,50%≤A1<100%。与现有技术相比,本专利技术的优点和积极效果是:本专利技术的代码添加混淆的安卓安装包OTA升级方法,通过在服务器端,将各版本的安卓安装包及其对应的字典存储,方便字典交换,两个版本进行差分的时候,将最新版本的Smali文件按照客户端当前版本所对应的字典的规则进行重新混淆,重新混淆完成后,重新打包,进行差分,由于两个版本均采用同一字典进行混淆,大大减少了差分包的数据大小,节约了下载时间和升级时间。结合附图阅读本专利技术实施方式的详细描述后,本专利技术的其他特点和优点将变得更加清楚。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术所提出的代码添加混淆的安卓安装包OTA升级方法的一种实施例流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一,本实施例提出了一种代码添加混淆的安卓安装包OTA升级方法,包括以下步骤:服务器目录架构搭建步骤,将同一应用各版本的安卓安装包及其对应的字典存储在服务器中;各版本的安卓安装包均经过相应的字典进行混淆过,其中,各版本的安卓安装包的字典可以是相同的,也可以是不同的。OTA升级步骤,包括:S11、客户端将当前版本信息发送至服务器,其中,当前版本信息也即当前待升级安卓安装包的版本信息,当前版本信息至少包括客户端当前版本的版本号;S12、服务器在本地查找到最新版本的安卓安装包和与客户端当前版本一致的安卓安装包,检查该最新版本的安卓安装包和与客户端当前版本一致的安卓安装包的代码是否进行了混淆,若均进行了混淆,则对最新版本的安卓安装包进行反编译,得到反编译文件;步骤S12中,若最新版本的安卓安装包和与客户端当前版本一致的安卓安装包的代码均未进行混淆,则将两者直接差分,得到差分包,并将所述差分包发送至客户端。本方法针对代码进行混淆的安卓安装包OTA升级尤其方便,所以对于未进行混淆的安卓安装包采用直接差分的方式升级即可。其中,最新版本的安卓安装包和与客户端当前版本一致的安卓安装包的代码其中一个进行了混淆的情况有两种:第一种是最新版本的安卓安装包混淆,与客户端当前版本一致的安卓安装包未混淆,第二种是最新版本的安卓安装包未混淆,与客户端当前版本一致的安卓安装包混淆,对应第一种情况本文档来自技高网...
一种代码添加混淆的安卓安装包OTA升级方法

【技术保护点】
一种代码添加混淆的安卓安装包OTA升级方法,其特征在于,包括以下步骤:服务器目录架构搭建步骤,将同一应用各版本的安卓安装包及其对应的字典存储在服务器中;OTA升级步骤,包括:(11)、客户端将当前版本信息发送至服务器,其中,所述当前版本信息至少包括客户端当前版本的版本号;(12)、服务器在本地查找到最新版本的安卓安装包和与客户端当前版本一致的安卓安装包,检查该最新版本的安卓安装包和与客户端当前版本一致的安卓安装包的代码是否进行了混淆,若均进行了混淆,则对最新版本的安卓安装包进行反编译,得到反编译文件;(13)、从所述反编译文件中找到Smali文件;(14)、将所述Smali文件按照客户端当前版本所对应的字典的规则进行重新混淆;(15)、服务器将重新混淆后的最新版本的安卓安装包和所述与客户端当前版本一致的安卓安装包进行差分,得到差分包,并将所述差分包发送至客户端;(16)、客户端接收服务器发送的差分包进行升级,直接从当前版本升级至最新版本。

【技术特征摘要】
1.一种代码添加混淆的安卓安装包OTA升级方法,其特征在于,包括以下步骤:服务器目录架构搭建步骤,将同一应用各版本的安卓安装包及其对应的字典存储在服务器中;OTA升级步骤,包括:(11)、客户端将当前版本信息发送至服务器,其中,所述当前版本信息至少包括客户端当前版本的版本号;(12)、服务器在本地查找到最新版本的安卓安装包和与客户端当前版本一致的安卓安装包,检查该最新版本的安卓安装包和与客户端当前版本一致的安卓安装包的代码是否进行了混淆,若均进行了混淆,则对最新版本的安卓安装包进行反编译,得到反编译文件;(13)、从所述反编译文件中找到Smali文件;(14)、将所述Smali文件按照客户端当前版本所对应的字典的规则进行重新混淆;(15)、服务器将重新混淆后的最新版本的安卓安装包和所述与客户端当前版本一致的安卓安装包进行差分,得到差分包,并将所述差分包发送至客户端;(16)、客户端接收服务器发送的差分包进行升级,直接从当前版本升级至最新版本。2.根据权利要求1所述的代码添加混淆的安卓安装包OTA升级方法,其特征在于,步骤(14)中,包括以下子步骤:(14a)、服务器在本地查找到客户端当前版本所对应的字典,为当前版本字典,服务器同时在本地查找到最新版本所对应的字典,为最新版本字典;(14b)、建立当前版本字典-原始代码-最新版本字典之间的映射;(14c)、根据当前版本字典-原始代码-最新版本字典之间的映射,将Smali文件中的类名以及变量名替换成为当前版本字典的规则所命名的字符,完成Smali文件的重新混淆步骤。3.根据权利要求2所述的代码添加混淆的安卓安装包OTA升级方法,其特征在于,步骤(14c)中,还包括至少将所述反编译文件的目录下的包名、类名、函数名以及变量名均按照当前版本字典的规则进行替换的步骤。4.根据权利要求2所述的代码添加混淆的安卓安装包OTA升级方法,其特征在于,步骤(14)与步骤(15)之间...

【专利技术属性】
技术研发人员:尹左水桑圣杰
申请(专利权)人:歌尔科技有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1