扩展apk文件应用的方法及装置的制造方法

文档序号:9810528阅读:301来源:国知局
扩展apk文件应用的方法及装置的制造方法
【技术领域】
[0001]本发明涉及APK文件领域,尤其涉及一种扩展APK文件应用的方法及装置。
【背景技术】
[0002]随着社会的发展,企业移动应用得到快速的发展,但是由于企业移动应用发展之初没有统一标准的规划,使得很多企业移动应用功能不齐全,成为孤立遗留的移动应用。由于移动应用相关的开发人员已经很难找到,代码维护也很少,使得通过重新修改源码来增加某些功能,变得非常困难,同时会给企业带来高的开发成本。Android作为新兴平台,APK文件结构与可执行文件的不同,还未出现标准的加壳解壳工具。加壳的全称是可执行程序资源压缩,这个概念来源于PC端的可执行程序,是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。现在网上流传的APK加壳方式是采用合并dex文件的方式进行的,将解壳dex文件合并在原dex文件的头部或者尾部,然后修改dex文件头中相关的项。这样的加壳方式也只是针对本身dex文件的加密进行的,不能够增加原先APK本身的能力,而且需要修改dex的文件结构,加壳方式复杂。现有的技术难以让企业灵活方便的定制和改造原有的企业移动应用。
[0003]上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

【发明内容】

[0004]本发明的主要目的在于解决对现有的移动应用加壳困难的技术问题。
[0005]为实现上述目的,本发明提供的一种扩展APK文件应用的方法,所述扩展APK文件应用的方法包括以下步骤:
[0006]获取初始APK文件和壳文件;
[0007]对所述初始APK文件进行反编译处理;
[0008]从反编译处理后的文件中提取与所述壳文件的文件类型相同的目标文件;
[0009]将所述目标文件和所述壳文件进行合并处理;
[0010]将合并处理后的文件和所述初始APK文件存贮至预置文件夹,并打包构建所述预置文件夹为目标APK文件。
[0011]优选地,所述目标文件包括第一 xml文件和第一资源文件,所述壳文件包括第二xml文件和第二资源文件;
[0012]所述对所述目标文件和所述壳文件进行合并处理包括:
[0013]解析所述第一 xml文件和所述第二 xml文件;
[0014]将所述第一 xml文件和所述第二 xml文件中节点类型相同的内容进行合并,并将所述第一资源文件和所述第二资源文件中子文件的文件类型相同的文件进行合并;
[0015]将合并处理后的文件存贮至预置文件夹包括:
[0016]将所述第一 xml文件和所述第二 xml文件中节点类型相同的内容进行合并处理得到的文件与未进行合并处理的文件均存贮至所述预置文件夹中;
[0017]将所述第一资源文件和所述第二资源文件中子文件的文件类型相同的文件进行合并处理得到的文件与未进行合并处理的文件均存贮至所述预置文件夹中。
[0018]优选地,所述将合并处理后的文件和所述初始APK文件存贮至预置文件夹,并打包构建所述预置文件夹为目标APK文件的步骤之前还包括:
[0019]在所述预置文件夹的xml文件中添加预置的标记信息。
[0020]优选地,所述对初始APK文件进行反编译处理的步骤之后还包括:
[0021]获取所述初始APK文件的文件类型,判断所述APK文件的类型是否为APK类型;
[0022]若所述初始APK文件的类型为APK类型,获取所述初始APK文件的xml文件,判断所述xml文件内是否存在预置的标记信息;
[0023]当所述xml文件内不存在预置的标记信息时,执行所述从反编译处理后的文件中提取与所述壳文件的文件类型相同的目标文件。
[0024]优选地,所述将合并处理后的文件和所述初始APK文件存贮至预置文件夹,并打包构建所述预置文件夹为目标APK文件的步骤之前还包括:
[0025]将所述预置文件夹的文件名修改为与所述初始APK文件的文件名一致。
[0026]此外,为实现上述目的,本发明还提供一种扩展APK文件应用的装置,所述扩展APK文件应用的装置包括:
[0027]获取模块,用于获取初始APK文件和壳文件;
[0028]反编译模块,用于对所述初始APK文件进行反编译处理;
[0029]提取模块,用于从反编译处理后的文件中提取与所述壳文件的文件类型相同的目标文件;
[0030]合并模块,用于将所述目标文件和所述壳文件进行合并处理;
[0031]打包构建模块:用于将合并处理后的文件和所述初始APK文件存贮至预置文件夹,并打包构建所述预置文件夹为目标APK文件。
[0032]优选地,所述合并模块包括:
[0033]解析单元,用于解析所述第一 xml文件和所述第二 xml文件;
[0034]合并单元,用于将所述第一 xml文件和所述第二 xml文件中节点类型相同的内容进行合并,并将所述第一资源文件和所述第二资源文件中子文件的文件类型相同的文件进行合并;
[0035]所述打包构建模块具体用于将所述第一 xml文件和所述第二 xml文件中节点类型相同的内容进行合并处理得到的文件与未进行合并处理的文件均存贮至所述预置文件夹中;
[0036]将所述第一资源文件和所述第二资源文件中子文件的文件类型相同的文件进行合并处理得到的文件与未进行合并处理的文件均存贮至所述预置文件夹中。
[0037]优选地,所述扩展APK文件应用的装置还包括:
[0038]标记模块,用于在所述预置文件夹的xml文件中添加预置的标记信息。
[0039]优选地,所述扩展APK文件应用的装置还包括:
[0040]第一判断模块,用于获取所述初始APK文件的文件类型,判断所述APK文件的类型是否为APK类型;[0041 ] 第二判断模块,用于若所述初始APK文件的类型为APK类型,获取所述初始APK文件的xml文件,判断所述xml文件内是否存在预置的标记信息;
[0042]所述第二判断模块还用于,当所述xml文件内不存在预置的标记信息时,提取模块从反编译处理后的文件中提取与所述壳文件的文件类型相同的目标文件。
[0043]优选地,其特征在于,所述扩展APK文件应用的装置还包括:
[0044]替换模块,用于将所述预置文件夹的文件名修改为与所述初始APK文件的文件名—致。
[0045]本实施例通过先对初始APK文件进行反编译获取第一 xml文件和第一资源文件,然后对第一 xml文件和待加壳的第二 xml文件进行合并等处理、对第一资源文件和第二资源文件进行合并等处理并将处理后的文件存贮到预置文件夹,最后将预置文件夹打包构建成目标APK文件,以实现将待加壳的功能附加到初始APK文件上的目的,在此过程中不需要改变初始APK文件的源码、也不需要修改dex的文件结构,使得给现有的移动应用增加新的功能时灵活方便,简单易行,有利于企业更加简便快捷的定制和改造原有的企业移动应用。
【附图说明】
[0046]图1为本发明扩展APK文件应用的方法第一实施例的流程示意图;
[0047]图2为本发明扩展APK文件应用的方法第二实施例的流程示意图;
[0048]图3为本发明扩展APK文件应用的方法第三实施例的流程示意图;
[0049]图4为本发明扩展APK文件应用的方法第四实施例的流程示意图;
[0050]图5为本发明扩展APK文件应用的方法第五实施例的流程示意图;
[0051]图6为本发明扩展APK文件应用的装置第一实施例的功能模块示意图;
[0052]图7为本发明扩展APK文件应用的装置第二实施例的功能模块示意图;
[0053]图8为本发明扩展APK文件应用的装置第三实施例的功能模块示意图;
[0054]图9为本发明扩展APK文件应用的装置第四实施例的功能模块示意图;
[0055]图10为本发明扩展APK文件应用的装置第五实施例的功能模块示意图。
[0056]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
【具体实施方式】
[0057]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0058]本发明提供一种扩展APK文件应用的方法,参照图1和图2,图1为本发明扩展APK文件应用的方法第一实施例的流程示意图;图2为本发明扩展APK文件应用的方法第二实施例的流程示意图。
[0059]本发明是通过给现有的初始APK文件,加上预扩展功能的壳,来实现扩展初始APK文件的功能,方法的具体步骤如下,其中APK文件为Android系统下的可执行文件。
[0060]在一实施例中,扩展APK文件应用的方法包括以下步骤:
[0061]SlO:获取初始APK文件和壳文件;
[0062]接收用户准备加壳的初始APK文件,接收用户选择壳文件的指令,根据用户的选择指令,从壳文件库中提取所需的壳文件。
[0063]S20:对初始APK文件进行反编译;
[0064]S30:从反编译处理后的文件中提取与壳文件的文件类型相同的目标文件;
[0065]反编译也称计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作。本实施例中,反编译初始APK文件,只是得到可读的第一AndroidManifest.xml文件和第一资源文件,没有反编译java代码,初始APK文件中的dex文件也不进行反编译,在后续的步骤中可以知道,不需要对初始APK文件的代码进行编译就可以实现为初始APK文件增加功能。第一 AndroidManifest.xml文件和第一资源文件和壳文件中的第二 AndroidManifest.xml文件和第二资源文件相对应。在反编译的过程中利用了初始APKtool (APKTooI是GOOGLE提供的APK编译工具,能够反编译及回编译apk)提供的文件。通过反编译初始APK文件,为打包构建新的APK文件提供必要的基本文件。
[0066]本实施例中,壳文件以SSL VPN为例,SSL VPN是解决远程用户访问敏感公司数据最简单最安全的解决技术。其中,SSL(安全套接层)协议是一种在internet上保证发送信息安全
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1