一种生成apk文件的方法及终端的制作方法

文档序号:9217043阅读:371来源:国知局
一种生成apk文件的方法及终端的制作方法
【技术领域】
[0001]本发明涉及通讯领域,具体涉及一种生成APK文件的方法及终端。
【背景技术】
[0002]随着智能移动终端的出现,涌现出了一批移动终端系统,如android(安卓)系统是一种目前广泛应用的智能移动终端系统,其中APK(Android applicat1n package)应用安装文件是一种标准android应用安装程序。
[0003]安卓平台的软件使用的编程语言是Java,并通过一些列的编译打包过程将编写的Java代码最终形成APK文件,用于可以从网络上下载这些APK文件进行安装。
[0004]然而,由于安卓移动平台发展和壮大,基于安卓平台的软件大量涌现,这些软件的分发方式变得比较混乱,再加上由于安卓平台的软件使用的编程语言是Java,生成的APK文件容易被反编译工具反编译为Java代码,极易出现对APK文件盗版、篡改代码并重打包分发的问题,如对反编译得到的java代码进行分析、篡改或抄袭,如加入恶意代码,添加病毒等,这种反向工程对安卓平台的软件安全构成了很大的威胁,从而如何保护APK文件成为一个亟待解决的问题。

【发明内容】

[0005]本发明实施例提供了一种生成APK文件的方法及终端,能够解决由于生成的APK文件容易被反编译工具反编译,极易出现对APK文件盗版、篡改代码并重打包分发的问题,并能够提高APK文件的安全性。
[0006]有鉴于此,本发明实施例第一方面提供一种生成APK文件的方法,可包括:
[0007]接收安卓虚拟机支持的可执行文件;
[0008]根据预设校验规则计算可执行文件的校验值;
[0009]对可执行文件的校验值和预设校验规则进行编译生成供可执行文件调用的第一文件;
[0010]将可执行文件和第一文件进行打包生成APK文件。
[0011 ] 结合第一方面,在第一方面的第一种可能的实现方式中,对可执行文件的校验值和预设校验规则进行编译生成供可执行文件调用的第一文件具体为:
[0012]利用NDK对可执行文件的校验值和预设校验规则进行编译生成供可执行文件调用的so文件。
[0013]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,创建指纹白名单,指纹白名单包括APK文件的至少一个签名信息对应的指纹;
[0014]按照第一加密规则对指纹白名单进行加密生成第一加密数据;
[0015]对可执行文件的校验值和预设校验规则进行编译生成供可执行文件调用的第一文件具体包括:
[0016]对可执行文件的校验值、预设校验规则、第一加密数据和第一加密规则进行编译生成供可执行文件调用的第一文件。
[0017]结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,方法还包括:
[0018]按照第二加密规则对私钥信息加密生成第二加密数据,私钥信息用于加密Http请求;
[0019]对可执行文件的校验值、预设校验规则、第一加密数据和第一加密规则进行编译生成供可执行文件调用的第一文件具体为:
[0020]对可执行文件的校验值、预设校验规则、第一加密数据、第一加密规则、第二加密数据和第二加密规则进行编译生成供可执行文件调用的第一文件。
[0021]结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,第一加密规则包括:
[0022]XXTEA加密算法、RSA加密算法、DES加密算法或AES加密算法;
[0023]预设校验规则包括:CRC校验法、Adler32校验法、MD5校验法或SHAl校验法。
[0024]本发明实施例第二方面还提供一种终端,该终端可包括:
[0025]接收模块,用于接收安卓虚拟机生成的可执行文件;
[0026]计算模块,用于根据预设校验规则计算可执行文件的校验值;
[0027]编译模块,对可执行文件的校验值和预设校验规则进行编译生成供可执行文件调用的第一文件;
[0028]打包模块,将可执行文件和第一文件进行打包生成APK文件。
[0029]结合第二方面,在第二方面的第一种可能的实现方式中,编译模块具体用于:
[0030]利用NDK对可执行文件的校验值和预设校验规则进行编译生成供可执行文件调用的库文件。
[0031]结合第二方面,在第二方面的第二种可能的实现方式中,终端还包括:
[0032]创建模块,用于创建指纹白名单,指纹白名单包括APK文件的至少一个签名信息对应的指纹;
[0033]第一加密模块,用于按照第一加密规则对指纹白名单进行加密生成第一加密数据;
[0034]编译模块具体用于:
[0035]对可执行文件的校验值、预设校验规则、第一加密数据和第一加密规则进行编译生成供可执行文件调用的第一文件。
[0036]结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,终端还包括:
[0037]第二加密模块,用于按照第二加密规则对私钥信息加密生成第二加密数据,私钥信息用于加密Http请求;
[0038]编译模块具体用于:
[0039]对可执行文件的校验值、预设校验规则、第一加密数据、第一加密规则、第二加密数据和第二加密规则进行编译生成供可执行文件调用的第一文件。
[0040]结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,计算模块具体用于:
[0041]根据CRC校验法、Adler32校验法、MD5校验法或SHAl校验法计算可执行文件的校验值。
[0042]第一加密模块具体用于:
[0043]按照XXTEA加密算法、RSA加密算法、DES加密算法或AES加密算法对指纹白名单进行加密生成第一加密数据。
[0044]从以上技术方案可以看出,本发明实施例具有以下优点:在现有的APK打包流程的基础上,通过对可执行文件计算校验值,并将该校验值和预设校验规则进行编译生成被可执行文件调用的第一文件,由于可执行文件和第一文件形成相互依赖的关系,最终打包出来的APK文件中的第一文件只能被当次APK文件打包过程中生成的可执行文件使用,而反编译产生java代码后,任何对java代码的修改行为都会破坏可执行文件和第一文件之间的依赖关系,使得再次编译输出的可执行文件无法复用第一文件,从而无法运行APK文件,从而提高APK文件的安全性以及提高生成APK文件的java代码的自我保护能力,有效防止反编译篡改java代码的问题。
【附图说明】
[0045]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0046]图1是本发明实施例中方法的一个实施例图;
[0047]图2是本发明实施例中方法的另一个实施例图;
[0048]图3是本发明实施例中方法的另一个实施例图;
[0049]图4是本发明实施例中终端的一个实施例图;
[0050]图5是本发明实施例中终端的另一个实施例图。
【具体实施方式】
[0051 ] 本发明实施例提供了一种生成APK文件的方法及终端,用于解决由于生成的AP
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1