CN108446127A - 更新包的处理方法及装置 - Google Patents
更新包的处理方法及装置 Download PDFInfo
- Publication number
- CN108446127A CN108446127A CN201710078594.1A CN201710078594A CN108446127A CN 108446127 A CN108446127 A CN 108446127A CN 201710078594 A CN201710078594 A CN 201710078594A CN 108446127 A CN108446127 A CN 108446127A
- Authority
- CN
- China
- Prior art keywords
- installation kit
- benchmark
- new
- user
- display interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Abstract
本发明的更新包的处理方法及装置。所述方法包括:接收用户通过显示界面选择的基准安装包的路径信息和新安装包的路径信息;根据用户通过显示界面选择的基准安装包的路径信息和新安装包的路径信息,分别获取基准安装包和新安装包;根据基准安装包和新安装包生成更新包;将更新包导出至用户通过显示界面选择的更新包的路径信息下。采用本发明的技术方案,用户不需要手动输入并获取基准安装包的路径、新安装包的路径、更新包的输出路径、配置文件的路径等等,而直接根据显示界面的提示选择对应的路径信息即可,其整个过程可以以显示界面的方式向用户展示生成更新包的操作过程,操作较为简单,且不用用户手动输入信息,生成更新包的效率较高。
Description
【技术领域】
本发明涉及软件技术领域,尤其涉及一种更新包的处理方法及装置。
【背景技术】
随着科技的发展,如终端之类的电子设备的使用普及,各种各样功能的软件产品越来越多,大大地方便了人们的生活。
现有技术中,要在终端之类的电子设备上使用软件产品,通常需要下载软件产品的安装包,然后在电子设备上安装该安装包,以在电子设备上使用该软件产品。但是随着软件产品的bug的修复或者新功能的增加,通常需要生成与现有安装包具有差异的patch包,也可以称为更新包,这样,在原有安装包的基础上,加载该更新包,便可以达到更新现有的安装包的功能。现有的更新包的生成较为繁琐,根据目前已开源热更新框架生成patch包方式,主要通过脚本生成(如微信tinker、阿里AndFix)。例如以以微信的tinker为例,将已经按照的安装包称为基准安装包,bug修复后的或者增加新功能后的安装包称为新安装包,提供基准安装包和新安装包的路径,启动生成更新包的终端,并在终端上执行如下命令:java-jar tinker-patch-cli.jar-old old.apk-new new.apk-config tinker_config.xml-out output_path执行打包操作,从而生成更新包。其中-jar后面输入打包程序tinker-patch-cli.jar的路径,以获取打包程序;-old后输入旧安装包old.apk的路径,以获取旧安装包;-new后输入新安装包new.apk的路径,以获取新安装包;-config后输入生成更新包需要输入的配置文件的tinker_config.xml路径,以获取配置文件;-out后输入的更新包的输出路径output_path,以存储生成的更新包。
但是,现有的更新包的生成过程中,需要用户手动输入并获取打包程序tinker-patch-cli.jar的路径、基准安装包的路径、新安装包的路径、更新包的输出路径、配置文件tinker_config.xml的路径等等,操作较为繁琐,且输错的概率较高,因此,现有的更新包的生成效率较低。
【发明内容】
本发明提供了一种更新包的处理方法及装置,用以提高更新包的生成效率。
本发明提供一种更新包的处理方法,所述方法包括:
接收用户通过显示界面选择的基准安装包的路径信息和新安装包的路径信息;
根据所述用户通过所述显示界面选择的所述基准安装包的路径信息和所述新安装包的路径信息,分别获取所述基准安装包和所述新安装包;
根据所述基准安装包和所述新安装包生成更新包;
将所述更新包导出至所述用户通过所述显示界面选择的更新包的路径信息下。
将所述更新包导出至所述用户通过所述显示界面选择的更新包的路径信息下。
进一步可选地,如上所述的方法中,所述将所述更新包导出至所述用户通过所述显示界面选择的更新包的路径信息下之前,还包括:
接收所述用户通过所述显示界面选择的更新包的路径信息。
进一步可选地,如上所述的方法中,根据所述基准安装包和所述新安装包生成更新包,具体包括:
分别对所述基准安装包和所述新安装包进行完整性校验和签名校验;
完整性校验和签名校验通过之后,分别将所述基准安装包和所述新安装包中的第一dex文件进行Dex2Jar转换,得到对应的第一jar文件;
当所述基准安装包和所述新安装包中包括至少两个第一dex文件时,分别将所述基准安装包和所述新安装包中的各所述第一dex文件对应的第一jar文件按照目录进行解压并合并,得到所述基准安装包的基准class目录文件夹和所述新安装包中的新class目录文件夹;
将所述基准class目录文件夹和所述新class目录文件夹中的文件进行差异比较;
根据差异比较结果,从所述新class目录文件夹中提取与所述基准class目录文件夹中的文件有差异的差异文件;
根据所述新class目录文件夹的目录结构和所述差异文件,生成所述差异目录文件夹;
根据所述差异目录文件夹,生成所述更新包。
进一步可选地,如上所述的方法中,分别对所述基准安装包和所述新安装包进行完整性校验和签名校验,具体包括:
分别对所述基准安装包和所述新安装包进行分析,获取所述基准安装包的checkSum参数和signature参数、所述新安装包的checkSum参数和signature参数;
分别根据所述基准安装包的checkSum参数和所述新安装包的checkSum参数,判断所述基准安装包和所述新安装包的完整性;
根据所述基准安装包的signature参数和所述新安装包的signature参数,判断所述基准安装包和所述新安装包的签名是否一致。
进一步可选地,如上所述的方法中,分别对所述基准安装包和所述新安装包进行分析,获取所述基准安装包的checkSum参数和signature参数、所述新安装包的checkSum参数和signature参数之前,还包括:
分别接收所述用户通过所述显示界面触发的对所述基准安装包和所述新安装包进行分析的操作指令;
进一步地,获取所述基准安装包的checkSum参数和signature参数、所述新安装包的checkSum参数和signature参数之后,所述方法还包括:
显示所述基准安装包的checkSum参数和signature参数;和显示所述新安装包的checkSum参数和signature参数;
进一步地,根据所述差异目录文件夹,生成所述更新包,具体包括:
将所述差异目录文件夹打包为第二jar文件;
将所述第二jar文件进行Jar2Dex转换,得到转换后的第二dex文件;
将转换后的所述第二dex文件重新打包为第三jar文件,得到所述更新包。
进一步可选地,如上所述的方法中,完整性校验和签名校验通过之后,分别将所述基准安装包和所述新安装包中的第一dex文件进行Dex2Jar转换,得到对应的第一jar文件之前,还包括:
接收所述用户通过所述显示界面触发的Dex2Jar转换指令;
将所述第二jar文件进行Jar2Dex转换,得到转换后的第二dex文件之前,所述方法还包括:
接收所述用户通过所述显示界面触发的Jar2Dex转换指令;
将所述差异目录文件夹打包为第二jar文件之前,所述方法还包括:
接收所述用户通过所述显示界面触发的jar文件生成指令;
进一步地,根据所述用户通过所述显示界面选择的所述基准安装包的路径信息和所述新安装包的路径信息,分别获取所述基准安装包和所述新安装包之后,所述方法还包括:
接收所述用户通过所述显示界面触发的反编译操作指令;
根据所述用户通过所述显示界面触发的所述反编译操作指令,对所述基准安装包或所述新安装包进行反编译处理。
本发明还提供一种更新包的处理装置,所述装置包括:
接收模块,用于接收用户通过所述显示界面选择的基准安装包的路径信息和新安装包的路径信息;
获取模块,用于根据所述用户通过所述显示界面选择的所述基准安装包的路径信息和所述新安装包的路径信息,分别获取所述基准安装包和所述新安装包;
生成模块,用于根据所述基准安装包和所述新安装包生成更新包;
导出模块,用于将所述更新包导出至所述用户通过所述显示界面选择的更新包的路径信息下。
进一步可选地,如上所述的装置中,所述接收模块,还用于接收所述用户通过所述显示界面选择的更新包的路径信息。
进一步可选地,如上所述的装置中,所述生成模块,具体包括:
校验单元,用于分别对所述基准安装包和所述新安装包进行完整性校验和签名校验;
转化单元,用于完整性校验和签名校验通过之后,分别将所述基准安装包和所述新安装包中的第一dex文件进行Dex2Jar转换,得到对应的第一jar文件;
解压与合并单元,用于当所述基准安装包和所述新安装包中包括至少两个第一dex文件时,分别将所述基准安装包和所述新安装包中的各所述第一dex文件对应的第一jar文件按照目录进行解压并合并,得到所述基准安装包的基准class目录文件夹和所述新安装包中的新class目录文件夹;
差异比较单元,用于将所述基准class目录文件夹和所述新class目录文件夹中的文件进行差异比较;
提取单元,用于根据差异比较结果,从所述新class目录文件夹中提取与所述基准class目录文件夹中的文件有差异的差异文件;
差异目录文件夹生成单元,用于根据所述新class目录文件夹的目录结构和所述差异文件,生成所述差异目录文件夹;
更新包生成单元,用于根据所述差异目录文件夹,生成所述更新包。
进一步可选地,如上所述的装置中,所述校验单元,具体用于:
分别对所述基准安装包和所述新安装包进行分析,获取所述基准安装包的checkSum参数和signature参数、所述新安装包的checkSum参数和signature参数;
分别根据所述基准安装包的checkSum参数和所述新安装包的checkSum参数,判断所述基准安装包和所述新安装包的完整性;
根据所述基准安装包的signature参数和所述新安装包的signature参数,判断所述基准安装包和所述新安装包的签名是否一致。
进一步可选地,如上所述的装置中,所述接收模块,还用于分别接收所述用户通过所述显示界面触发的对所述基准安装包和所述新安装包进行分析的操作指令;
进一步地,所述装置还包括:
显示模块,用于显示所述基准安装包的checkSum参数和signature参数;和显示所述新安装包的checkSum参数和signature参数;
进一步地,所述更新包生成单元,具体用于:
将所述差异目录文件夹打包为第二jar文件;
将所述第二jar文件进行Jar2Dex转换,得到转换后的第二dex文件;
将转换后的所述第二dex文件重新打包为第三jar文件,得到所述更新包。
进一步可选地,如上所述的装置中,所述接收模块,还用于接收所述用户通过所述显示界面触发的Dex2Jar转换指令;
所述接收模块,还用于接收所述用户通过所述显示界面触发的Jar2Dex转换指令;
所述接收模块,还用于接收所述用户通过所述显示界面触发的jar文件生成指令;
进一步地,所述装置还包括反编译处理模块;
所述接收模块,还用于接收所述用户通过所述显示界面触发的反编译操作指令;
所述反编译处理模块,用于根据所述用户通过所述显示界面触发的所述反编译操作指令,对所述基准安装包或所述新安装包进行反编译处理。
本发明的更新包的处理方法及装置,通过接收用户通过显示界面选择的基准安装包的路径信息和新安装包的路径信息;根据用户通过显示界面选择的基准安装包的路径信息和新安装包的路径信息,分别获取基准安装包和新安装包;根据基准安装包和新安装包生成更新包;将更新包导出至用户通过显示界面选择的更新包的路径信息下。采用本发明的技术方案,用户不需要手动输入并获取基准安装包的路径、新安装包的路径、更新包的输出路径、配置文件的路径等等,而直接根据显示界面的提示选择对应的路径信息即可,然后由更新包的处理装置根据用户选择的基准安装包的路径信息和新安装包的路径信息获取对应的基准安装包和新安装包,并生成更新包;并将更新包导出在用户通过显示界面选择的更新包的路径信息下。采用本发明的技术方案,可以以显示界面的方式向用户展示生成更新包的操作过程,操作较为简单,且不用用户手动输入信息,生成更新包的效率较高。
【附图说明】
图1为本发明的更新包的处理方法实施例的流程图。
图2为本发明的更新包的处理方法实施例的一显示界面图。
图3为本发明的更新包的处理方法实施例的另一显示界面图。
图4为本发明的更新包的处理方法实施例的再一显示界面图。
图5本发明的更新包的处理方法实施例的又一显示界面图。
图6为本发明的更新包的处理装置实施例一的结构图。
图7为本发明的更新包的处理装置实施例二的结构图。
图8为本发明提供的一种电子设备实施例的结构图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
图1为本发明的更新包的处理方法实施例的流程图。如图1所示,本实施例的更新包的处理方法,具体可以包括如下步骤:
100、接收用户通过显示界面选择的基准安装包的路径信息和新安装包的路径信息;
101、根据用户通过显示界面选择的基准安装包的路径信息和新安装包的路径信息,分别获取基准安装包和新安装包;
102、根据基准安装包和新安装包生成更新包;
103、将更新包导出至用户通过显示界面选择的更新包的路径信息下。
本实施例的更新包的处理方法的执行主体为更新包的处理装置,该更新包的处理装置可以采用软件来集成,例如,该更新包的处理装置中可以设置有显示界面,通过该显示界面,用户可以选择基准安装包的路径信息和新安装包的路径信息。例如图2为本发明的更新包的处理方法实施例的一显示界面图。如图2所示,本实施例中以生成一个安卓(Andriod)系统的修复BUG后的更新包为例,由于Andriod系统的安装包为apk格式的安装包,因此在Android系统中,该更新包的处理装置也可以称为APKTool。如图2所示,本实施例中的APK文件(BUG)指的是新的安装包,APK文件(FIXED)指的是基准安装包。用户通过显示界面对应的选择按钮,可以选择每一种安装包的路径信息,例如,通过选择基准安装包的路径为“/Users/xuyi/Downloads/main-fixed.apk”,从而获取基准安装包;通过显示界面选择新的安装包的路径为“/Users/xuyi/Downloads/main-bug.apk”,从而获取对应的新安装包。
用户通过显示界面选择两种安装包的路径信息之后,更新包的处理装置接收用户通过显示界面选择的基准安装包的路径信息和新安装包的路径信息;然后根据用户通过显示界面选择的基准安装包的路径信息和新安装包的路径信息,分别获取基准安装包和新安装包;然后用户点击图2中的“生成patch文件”的按钮,触发更新包的处理装置开始根据基准安装包和新安装包生成更新包;即相当于本实施例将打包程序直接设置在该更新包的处理装置中,当用户点击图2中的“生成patch文件”的按钮时,可以启动该打包程序开始执行打包操作;且打包中若需要配置文件,也可以直接预先设置在更新包的处理装置中,也不需要用户去手动输入。需要说明的是,本实施例生成的更新包可以存储在用户指定的路径,即更新包的路径信息,例如图3为本发明的更新包的处理方法实施例的另一显示界面图。用户可以根据图3所示的界面提示,选择导出更新包的目录,即导出更新包的路径信息,然后更新包的处理装置将更新包导出至用户通过显示界面选择的更新包的路径信息下。
基于上述Android系统生成更新包的原理,将打包过程透明化,以图形显示界面的方式提供给使用者,同时借助于java的跨平台特性,本实施例的技术方案可同时支持mac、windows系统平台,降低更新包的打包成本。
本实施例的更新包的处理方法,通过接收用户通过显示界面选择的基准安装包的路径信息和新安装包的路径信息;根据用户通过显示界面选择的基准安装包的路径信息和新安装包的路径信息,分别获取基准安装包和新安装包;根据基准安装包和新安装包生成更新包;将更新包导出至用户通过显示界面选择的更新包的路径信息下。采用本实施例的技术方案,用户不需要手动输入并获取基准安装包的路径、新安装包的路径、更新包的输出路径、配置文件的路径等等,而直接根据显示界面的提示选择对应的路径信息即可,然后由更新包的处理装置根据用户选择的基准安装包的路径信息和新安装包的路径信息获取对应的基准安装包和新安装包,并生成更新包;并将更新包导出在用户通过显示界面选择的更新包的路径信息下。采用本实施例的技术方案,可以以显示界面的方式向用户展示生成更新包的操作过程,操作较为简单,且不用用户手动输入信息,生成更新包的效率较高。
进一步可选地,在上述图1所示实施例的技术方案的基础上,步骤103“将更新包导出至用户通过显示界面选择的更新包的路径信息下”之前,还可以包括:接收用户通过显示界面选择的更新包的路径信息。
进一步可选地,在上述图1所示实施例的技术方案的基础上,步骤102“根据基准安装包和新安装包生成更新包”,具体可以包括如下步骤:
(a1)分别对基准安装包和新安装包进行完整性校验和签名校验;
本实施例中,根据基准安装包和新安装包生成更新包时,该基准安装包和新安装包必须是完整的安装包,且基准安装包和新安装包的签名必须是一致的,才能够基于基准安装包和新安装包,生成更新包。具体地,在实际应用中,基准安装包和新安装包中的checkSum参数可以用于表征安装包的完整性。基准安装包和新安装包中的signature参数来表示安装包的签名信息。因此,该步骤(a1)具体可以包括如下步骤:
(b1)分别对基准安装包和新安装包进行分析,获取基准安装包的checkSum参数和signature参数、新安装包的checkSum参数和signature参数;
(b2)分别根据基准安装包的checkSum参数和新安装包的checkSum参数,判断基准安装包和新安装包的完整性;
(b3)根据基准安装包的signature参数和新安装包的signature参数,判断基准安装包和新安装包的签名是否一致。
实际应用中,基准安装包和新安装包需要分别来进行分析,分别获取对应的checkSum参数和signature参数。该分析的结果可以不向用户展示。获取两个安装包的checkSum参数和signature参数之后,可以根据基准安装包的checkSum参数和新安装包的checkSum参数,分别判断基准安装包和新安装包是否是完整的。当基准安装包和新安装包都是完整的,才通过完整性校验;否则基准安装包和新安装包只要有一个不完整,则不能通过完整性校验。还可以根据基准安装包的signature参数和新安装包的signature参数,判断基准安装包和新安装包的签名是否一致。当基准安装包的signature参数和新安装包的signature参数是一致的,则认为基准安装包和新安装包通过签名校验,否则基准安装包和新安装包不能通过签名校验。
进一步可选地,上述实施例中在生成更新包的过程中,用户在选择基准安装包的路径信息和新安装包的路径信息之后,便可以直接得到生成的更新包。如果用户在生成更新包的过程中,想要更多的参与生成更新包的过程中,可以减缓生成步骤,全程参与,并且,还可以获取并向用户显示生成更新包的过程中一些中间参数。例如,图4为本发明的更新包的处理方法实施例的再一显示界面图。该显示界面表示,在生成更新包过程中,用户可以参与对基准安装包和新安装包的分析过程。例如,在该步骤(b1)之前,还可以包括如下步骤:分别接收用户显示界面触发的对基准安装包和新安装包进行分析的操作指令。例如,如图4所示,用户可以先选择待分析的安装包如基准装包或者新安装包,例如图4中以选择如下路径下“F:\hotfix\main-release_bug.apk”的一个新安装包为例,来分析该安装包。然后用户可以点击图4中的“开始分析”按钮,便相当于触发对安装包进行分析的操作指令,更新包的处理装置便开始分析用户选择的待分析的更新包。进一步可选地,在该步骤(b1)之后,还可以包括如下步骤:显示基准安装包的checkSum参数和signature参数;和显示新安装包的checkSum参数和signature参数。如图4所示,本实施例中,分析的结果除了包括checkSum参数和signature参数之外,还可以包括文件大小、头部大小、字符串数、类型数以及协议数等等参数。分析的结果都可以显示在该显示界面上,供用户查看,了解分析的每一个结果。基准安装包和新安装包都按照上述方式分析之后,更新包的处理装置可以对基准安装包和新安装包进行完整性校验和签名校验。
(a2)完整性校验和签名校验通过之后,分别将基准安装包和新安装包中的第一dex文件进行Dex2Jar转换,得到对应的第一jar文件;
在对基准安装包和新安装包进行完整性校验和签名校验通过之后,可以分别对基准安装包和新安装包进行解析处理,分别获取基准安装包和新安装包中的第一dex文件。其中一个安装包中可以包括一个第一dex文件,也可以包括多个dex文件。将每一个第一dex文件进行Dex2Jar转换,可以得到对应的第一jar文件。
同理,在生成更新包过程中,步骤(a2)可以在后台执行,用户不感知。也可以由用户参与整个中间过程,将中间过程中生成的每一文件存储在用户指定的路径下,然后用户再根据中间过程中生成的每一个文件再进一步执行下一步骤。例如,图5本发明的更新包的处理方法实施例的又一显示界面图。根据图5中,可以知道,在完整性校验和签名校验通过之后,用户可以参与Dex2Jar转换的过程。此时,对应地,在更新包的处理装置的显示界面上,用户可以选择第一dex文件的路径,以获取进行Dex2Jar转换的第一dex文件。然后用户点击“Dex2Jar转换”按钮,触发Dex2Jar转换操作指令的发出。例如在步骤(a2)之前,还可以包括如下步骤:接收用户通过显示界面触发的Dex2Jar转换指令。然后生成的对应的第一jar文件,可以图3所示的方式,由用户选择存储的路径,也可以不用用户去选择,按照用户预先设置的路径来存储。
(a3)当基准安装包和新安装包中包括至少两个第一dex文件时,分别将基准安装包和新安装包中的各第一dex文件对应的第一jar文件按照目录进行解压并合并,得到基准安装包的基准class目录文件夹和新安装包中的新class目录文件夹;
当基准安装包包括至少两个第一dex文件时,将各第一dex文件对应的第一jar文件按照各文件的目录关系进行解压并合并,这样得到基准安装包对应的基准class目录文件夹,该基准class目录文件夹中包括至少两个class文件,每个class文件对应一个第一dex文件,一个jar文件。且该基准class目录文件夹中的各个class文件按照基准安装包中的各个第一dex文件之间的目录关系存储,这样才能保持目录关系不变。也就是说,该基准class目录文件夹中不仅包括基准安装包对应的多个class文件,还包括多个class文件之间的目录关系,所以称为目录文件夹。因此该文件夹称为基准class目录文件夹。同理按照相同的方式,可以生成新安装包中的新class目录文件夹。
(a4)将基准class目录文件夹和新class目录文件夹中的文件进行差异比较;
将基准class目录文件夹中的各个class文件与新class目录文件夹中的各个class文件进行差异比较。例如按照目录关系,基准class目录文件夹中包括有class1、class2、class3……;对应地,在新class目录文件夹中也包括有class1、class2、class3……。按照目录关系,基准class目录文件夹中的class1与新class目录文件夹中class1对应,基准class目录文件夹中的class2与新class目录文件夹中class2对应,基准class目录文件夹中的class3与新class目录文件夹中class3对应;在差异比较时,需要分别将两个目录文件夹中对应目录下的两个文件进行差异比较,即将基准class目录文件夹中的class1与新class目录文件夹中class1进行差异比较;基准class目录文件夹中的class2与新class目录文件夹中class2进行差异比较;基准class目录文件夹中的class3与新class目录文件夹中class3进行差异比较。如果差异比较结果不同,新class目录文件夹中该不同的文件即为差异文件。由于新安装包为在基准安装包的基础上,增加了新功能或者修复了bug的安装包,所以在新的class目录文件夹中可能存在部分新增的class文件,根据这部分class文件的目录在基准class目录文件中对应的目录下不存在class文件。此时,这部分class也均为差异文件。
(a5)根据差异比较结果,从新class目录文件夹中提取与基准class目录文件夹中的文件有差异的差异文件;
(a6)根据新class目录文件夹的目录结构和差异文件,生成差异目录文件夹;
本实施例中提取的差异文件可以包括一个,也可以包括多个。当提取出多个差异文件之后,需要按照新class目录文件夹的目录结构,生成差异目录文件夹。
(a7)根据差异目录文件夹,生成更新包。
进一步可选地,步骤(a7)“根据差异目录文件夹,生成更新包”,具体可以包括如下步骤:
(c1)将差异目录文件夹打包为第二jar文件;
同理,该步骤可以在后台用户无感知的情况下执行,也可以由用户参与执行。仍以图5为例,按照用户预设的路径或者用户选择的路径存储差异目录文件夹之后,用户可以根据显示界面的提示选择差异目录文件夹的路径信息,如图5所示,选择“C:\Users\widebluesky\Desktop\bugfix\app-debug\classes”路径下的差异目录文件夹,然后点击“生成JAR文件”按钮,相当于发出jar文件生成指令。对应的更新包的处理装置在步骤(c1)之前,还可以包括:接收用户通过显示界面触发的jar文件生成指令。然后更新包的处理装置根据该jar文件生成指令开始将差异目录文件夹打包为第二jar文件。
(c2)将第二jar文件进行Jar2Dex转换,得到转换后的第二dex文件;
同理,对应地,该步骤的Jar2Dex转换可以在后台用户无感知的情况下执行,也可以由用户参与执行。仍以图5为例,按照用户预设的路径或者用户选择的路径存储第二jar文件之后,用户可以根据显示界面的提示选择第二jar文件的路径信息,如图5所示,选择“C:\Users\widebluesky\Desktop\bugfix\classes.jar”路径下的第二jar文件,然后点击“Jar2Dex转换”按钮,相当于发出Jar2Dex转换指令。对应的更新包的处理装置在步骤(c1)之后,步骤(c2)之前,还可以包括:接收用户通过显示界面触发的Jar2Dex转换指令。然后更新包的处理装置将第二jar文件进行Jar2Dex转换,得到转换后的第二dex文件。
(c3)将转换后的第二dex文件重新打包为第三jar文件,得到更新包。
该步骤的实施可以参考相关现有相关技术,在此不再赘述。
进一步可选地,上述实施例中的步骤101“根据用户通过显示界面选择的基准安装包的路径信息和新安装包的路径信息,分别获取基准安装包和新安装包”之后,还可以包括如下步骤:
(d1)接收用户通过显示界面触发的反编译操作指令;
(d2)根据用户通过显示界面触发的反编译操作指令,对基准安装包或新安装包进行反编译处理。
如果用户还可以使用本实施例的更新包的处理装置进行反编译操作,如图4所示,本实施例的更新包的处理装置还可以设置有“开始反编译(class)”按钮和“开始反编译(smali)”按钮,当需要反编译时,用户先通过显示界面触发的反编译(class)或者(smali)的操作指令。对应地,在更新包的处理装置侧,接收用户通过显示界面触发的反编译操作指令;并根据用户通过显示界面触发的反编译操作指令,对基准安装包或新安装包进行反编译处理。
上述实施例的更新包的处理方法,通过采用上述技术方案,可以以显示界面的方式向用户展示生成更新包的操作过程,同时还能够让用户参与中间过程的操作,操作较为简单,且不用用户手动输入信息,生成更新包的效率较高。
图6为本发明的更新包的处理装置实施例一的结构图。如图6所示,本实施例的更新包的处理装置,具体可以包括:接收模块10、获取模块11、生成模块12和导出模块13。
其中接收模块10用于接收用户通过显示界面选择的基准安装包的路径信息和新安装包的路径信息;获取模块11用于根据接收模块10接收的用户通过显示界面选择的基准安装包的路径信息和新安装包的路径信息,分别获取基准安装包和新安装包;生成模块12用于根据获取模块11获取的基准安装包和新安装包生成更新包;导出模块13用于将生成模块12生成的更新包导出至用户通过显示界面选择的更新包的路径信息下。
本实施例的更新包的处理装置,通过采用上述模块实现更新包的处理与上述相关方法实施例的实现原理以及技术效果相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图7为本发明的更新包的处理装置实施例二的结构图。如图7所示,本实施例的更新包的处理装置在上述图6所示实施例的技术方案的基础上,进一步更加详细地介绍本发明的技术方案。
本实施例的更新包的处理装置中,接收模块10还用于接收用户通过显示界面选择的更新包的路径信息。
进一步可选地,如图7所示,本实施例的更新包的处理装置中,生成模块12具体包括:校验单元121、转化单元122、解压与合并单元123、差异比较单元124、提取单元125、差异目录文件夹生成单元126和更新包生成单元127。
校验单元121用于分别对获取模块11获取的基准安装包和新安装包进行完整性校验和签名校验;
转化单元122用于在校验单元121进行完整性校验和签名校验通过之后,分别将基准安装包和新安装包中的第一dex文件进行Dex2Jar转换,得到对应的第一jar文件;
解压与合并单元123用于当基准安装包和新安装包中包括至少两个第一dex文件时,分别将转化单元122转化后的基准安装包和新安装包中的各第一dex文件对应的第一jar文件按照目录进行解压并合并,得到基准安装包的基准class目录文件夹和新安装包中的新class目录文件夹;
差异比较单元124用于将解压与合并单元123得到的基准class目录文件夹和新class目录文件夹中的文件进行差异比较;
提取单元125用于根据差异比较单元124处理的差异比较结果,从新class目录文件夹中提取与基准class目录文件夹中的文件有差异的差异文件;
差异目录文件夹生成单元126用于根据新class目录文件夹的目录结构和提取单元125提取的差异文件,生成差异目录文件夹;
更新包生成单元127用于根据差异目录文件夹生成单元126生成的差异目录文件夹,生成更新包。
此时对应的导出模块13用于将更新包生成单元127生成的更新包导出至用户通过显示界面选择的更新包的路径信息下。
进一步可选地,本实施例的更新包的处理装置中,校验单元121具体用于:
分别对基准安装包和新安装包进行分析,获取基准安装包的checkSum参数和signature参数、新安装包的checkSum参数和signature参数;
分别根据基准安装包的checkSum参数和新安装包的checkSum参数,判断基准安装包和新安装包的完整性;
根据基准安装包的signature参数和新安装包的signature参数,判断基准安装包和新安装包的签名是否一致。
进一步可选地,本实施例的更新包的处理装置中,接收模块10还用于分别接收用户通过显示界面触发的对基准安装包和新安装包进行分析的操作指令;
进一步可选地,本实施例的更新包的处理装置中,还包括显示模块14。显示模块14用于显示校验单元121获取的基准安装包的checkSum参数和signature参数;和显示新安装包的checkSum参数和signature参数;
进一步可选地,本实施例的更新包的处理装置中,更新包生成单元127具体用于:
将差异目录文件夹打包为第二jar文件;
将第二jar文件进行Jar2Dex转换,得到转换后的第二dex文件;
将转换后的第二dex文件重新打包为第三jar文件,得到更新包。
进一步可选地,本实施例的更新包的处理装置中,接收模块10还用于接收用户通过显示界面触发的Dex2Jar转换指令;
接收模块10还用于接收用户通过显示界面触发的Jar2Dex转换指令;
接收模块10还用于接收用户通过显示界面触发的jar文件生成指令;
进一步可选地,本实施例的更新包的处理装置中,还包括反编译处理模块15。
接收模块10还用于接收用户通过显示界面触发的反编译操作指令;
反编译处理模块15用于根据接收模块10接收的用户通过显示界面触发的反编译操作指令,对基准安装包或新安装包进行反编译处理。
本实施例的更新包的处理装置,通过采用上述模块实现更新包的处理与上述相关方法实施例的实现原理以及技术效果相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
本发明实施例提供的上述方法还可以以设置并运行于电子设备中的计算机程序体现。如图8中所示,该电子设备可以包括一个或多个处理器800,还包括存储器801和一个或多个程序,图8所示实施例一包括一个处理器800为例来描述本发明的技术方案。其中该一个或多个程序存储于存储器801中,被上述一个或多个处理器800执行以实现本发明上述实施例中所示的方法流程和/或装置操作。例如,被上述一个或多个处理器800执行的方法流程,可以包括:
接收用户通过显示界面选择的基准安装包的路径信息和新安装包的路径信息;
根据所述用户通过所述显示界面选择的所述基准安装包的路径信息和所述新安装包的路径信息,分别获取所述基准安装包和所述新安装包;
根据所述基准安装包和所述新安装包生成更新包;
将所述更新包导出至所述用户通过所述显示界面选择的更新包的路径信息下。
将所述更新包导出至所述用户通过所述显示界面选择的更新包的路径信息下。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (12)
1.一种更新包的处理方法,其特征在于,所述方法包括:
接收用户通过显示界面选择的基准安装包的路径信息和新安装包的路径信息;
根据所述用户通过所述显示界面选择的所述基准安装包的路径信息和所述新安装包的路径信息,分别获取所述基准安装包和所述新安装包;
根据所述基准安装包和所述新安装包生成更新包;
将所述更新包导出至所述用户通过所述显示界面选择的更新包的路径信息下。
将所述更新包导出至所述用户通过所述显示界面选择的更新包的路径信息下。
2.根据权利要求1所述的方法,其特征在于,所述将所述更新包导出至所述用户通过所述显示界面选择的更新包的路径信息下之前,所述方法还包括:
接收所述用户通过所述显示界面选择的更新包的路径信息。
3.根据权利要求1所述的方法,其特征在于,根据所述基准安装包和所述新安装包生成更新包,具体包括:
分别对所述基准安装包和所述新安装包进行完整性校验和签名校验;
完整性校验和签名校验通过之后,分别将所述基准安装包和所述新安装包中的第一dex文件进行Dex2Jar转换,得到对应的第一jar文件;
当所述基准安装包和所述新安装包中包括至少两个第一dex文件时,分别将所述基准安装包和所述新安装包中的各所述第一dex文件对应的第一jar文件按照目录进行解压并合并,得到所述基准安装包的基准class目录文件夹和所述新安装包中的新class目录文件夹;
将所述基准class目录文件夹和所述新class目录文件夹中的文件进行差异比较;
根据差异比较结果,从所述新class目录文件夹中提取与所述基准class目录文件夹中的文件有差异的差异文件;
根据所述新class目录文件夹的目录结构和所述差异文件,生成所述差异目录文件夹;
根据所述差异目录文件夹,生成所述更新包。
4.根据权利要求3所述的方法,其特征在于,分别对所述基准安装包和所述新安装包进行完整性校验和签名校验,具体包括:
分别对所述基准安装包和所述新安装包进行分析,获取所述基准安装包的checkSum参数和signature参数、所述新安装包的checkSum参数和signature参数;
分别根据所述基准安装包的checkSum参数和所述新安装包的checkSum参数,判断所述基准安装包和所述新安装包的完整性;
根据所述基准安装包的signature参数和所述新安装包的signature参数,判断所述基准安装包和所述新安装包的签名是否一致。
5.根据权利要求4所述的方法,其特征在于,分别对所述基准安装包和所述新安装包进行分析,获取所述基准安装包的checkSum参数和signature参数、所述新安装包的checkSum参数和signature参数之前,所述方法还包括:
分别接收所述用户通过所述显示界面触发的对所述基准安装包和所述新安装包进行分析的操作指令;
进一步地,获取所述基准安装包的checkSum参数和signature参数、所述新安装包的checkSum参数和signature参数之后,所述方法还包括:
显示所述基准安装包的checkSum参数和signature参数;和显示所述新安装包的checkSum参数和signature参数;
进一步地,根据所述差异目录文件夹,生成所述更新包,具体包括:
将所述差异目录文件夹打包为第二jar文件;
将所述第二jar文件进行Jar2Dex转换,得到转换后的第二dex文件;
将转换后的所述第二dex文件重新打包为第三jar文件,得到所述更新包。
6.根据权利要求5所述的方法,其特征在于,完整性校验和签名校验通过之后,分别将所述基准安装包和所述新安装包中的第一dex文件进行Dex2Jar转换,得到对应的第一jar文件之前,所述方法还包括:
接收所述用户通过所述显示界面触发的Dex2Jar转换指令;
将所述第二jar文件进行Jar2Dex转换,得到转换后的第二dex文件之前,所述方法还包括:
接收所述用户通过所述显示界面触发的Jar2Dex转换指令;
将所述差异目录文件夹打包为第二jar文件之前,所述方法还包括:
接收所述用户通过所述显示界面触发的jar文件生成指令;
进一步地,根据所述用户通过所述显示界面选择的所述基准安装包的路径信息和所述新安装包的路径信息,分别获取所述基准安装包和所述新安装包之后,所述方法还包括:
接收所述用户通过所述显示界面触发的反编译操作指令;
根据所述用户通过所述显示界面触发的所述反编译操作指令,对所述基准安装包或所述新安装包进行反编译处理。
7.一种更新包的处理装置,其特征在于,所述装置包括:
接收模块,用于接收用户通过所述显示界面选择的基准安装包的路径信息和新安装包的路径信息;
获取模块,用于根据所述用户通过所述显示界面选择的所述基准安装包的路径信息和所述新安装包的路径信息,分别获取所述基准安装包和所述新安装包;
生成模块,用于根据所述基准安装包和所述新安装包生成更新包;
导出模块,用于将所述更新包导出至所述用户通过所述显示界面选择的更新包的路径信息下。
8.根据权利要求7所述的装置,其特征在于:
所述接收模块,还用于接收所述用户通过所述显示界面选择的更新包的路径信息。
9.根据权利要求7所述的装置,其特征在于,所述生成模块,具体包括:
校验单元,用于分别对所述基准安装包和所述新安装包进行完整性校验和签名校验;
转化单元,用于完整性校验和签名校验通过之后,分别将所述基准安装包和所述新安装包中的第一dex文件进行Dex2Jar转换,得到对应的第一jar文件;
解压与合并单元,用于当所述基准安装包和所述新安装包中包括至少两个第一dex文件时,分别将所述基准安装包和所述新安装包中的各所述第一dex文件对应的第一jar文件按照目录进行解压并合并,得到所述基准安装包的基准class目录文件夹和所述新安装包中的新class目录文件夹;
差异比较单元,用于将所述基准class目录文件夹和所述新class目录文件夹中的文件进行差异比较;
提取单元,用于根据差异比较结果,从所述新class目录文件夹中提取与所述基准class目录文件夹中的文件有差异的差异文件;
差异目录文件夹生成单元,用于根据所述新class目录文件夹的目录结构和所述差异文件,生成所述差异目录文件夹;
更新包生成单元,用于根据所述差异目录文件夹,生成所述更新包。
10.根据权利要求9所述的装置,其特征在于,所述校验单元,具体用于:
分别对所述基准安装包和所述新安装包进行分析,获取所述基准安装包的checkSum参数和signature参数、所述新安装包的checkSum参数和signature参数;
分别根据所述基准安装包的checkSum参数和所述新安装包的checkSum参数,判断所述基准安装包和所述新安装包的完整性;
根据所述基准安装包的signature参数和所述新安装包的signature参数,判断所述基准安装包和所述新安装包的签名是否一致。
11.根据权利要求10所述的装置,其特征在于:
所述接收模块,还用于分别接收所述用户通过所述显示界面触发的对所述基准安装包和所述新安装包进行分析的操作指令;
进一步地,所述装置还包括:
显示模块,用于显示所述基准安装包的checkSum参数和signature参数;和显示所述新安装包的checkSum参数和signature参数;
进一步地,所述更新包生成单元,具体用于:
将所述差异目录文件夹打包为第二jar文件;
将所述第二jar文件进行Jar2Dex转换,得到转换后的第二dex文件;
将转换后的所述第二dex文件重新打包为第三jar文件,得到所述更新包。
12.根据权利要求11所述的装置,其特征在于:
所述接收模块,还用于接收所述用户通过所述显示界面触发的Dex2Jar转换指令;
所述接收模块,还用于接收所述用户通过所述显示界面触发的Jar2Dex转换指令;
所述接收模块,还用于接收所述用户通过所述显示界面触发的jar文件生成指令;
进一步地,所述装置还包括反编译处理模块;
所述接收模块,还用于接收所述用户通过所述显示界面触发的反编译操作指令;
所述反编译处理模块,用于根据所述用户通过所述显示界面触发的所述反编译操作指令,对所述基准安装包或所述新安装包进行反编译处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710078594.1A CN108446127B (zh) | 2017-02-14 | 2017-02-14 | 更新包的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710078594.1A CN108446127B (zh) | 2017-02-14 | 2017-02-14 | 更新包的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108446127A true CN108446127A (zh) | 2018-08-24 |
CN108446127B CN108446127B (zh) | 2021-12-24 |
Family
ID=63190487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710078594.1A Active CN108446127B (zh) | 2017-02-14 | 2017-02-14 | 更新包的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108446127B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446083A (zh) * | 2018-10-23 | 2019-03-08 | 航天信息股份有限公司 | 一种持续集成方法和系统 |
CN117407031A (zh) * | 2023-11-27 | 2024-01-16 | 深圳麦风科技有限公司 | 补丁包升级文件生成方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090276770A1 (en) * | 2008-04-30 | 2009-11-05 | International Business Machines Corporation | Systems, methods and computer program products for automating packaging and provisioning of j2ee web modules to eclipse-based rich clients |
CN104539676A (zh) * | 2014-12-18 | 2015-04-22 | 深圳市腾讯计算机系统有限公司 | 提供、获取应用安装包的方法、装置和系统 |
CN104615470A (zh) * | 2015-03-04 | 2015-05-13 | 成都维远艾珏信息技术有限公司 | 一种嵌入式设备程序更新方法 |
CN105468396A (zh) * | 2014-09-11 | 2016-04-06 | 深圳Tcl数字技术有限公司 | 差分包生成方法、升级方法、生成装置及Linux终端 |
CN106201607A (zh) * | 2016-07-04 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种软件版本的升级方法及设备 |
-
2017
- 2017-02-14 CN CN201710078594.1A patent/CN108446127B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090276770A1 (en) * | 2008-04-30 | 2009-11-05 | International Business Machines Corporation | Systems, methods and computer program products for automating packaging and provisioning of j2ee web modules to eclipse-based rich clients |
CN105468396A (zh) * | 2014-09-11 | 2016-04-06 | 深圳Tcl数字技术有限公司 | 差分包生成方法、升级方法、生成装置及Linux终端 |
CN104539676A (zh) * | 2014-12-18 | 2015-04-22 | 深圳市腾讯计算机系统有限公司 | 提供、获取应用安装包的方法、装置和系统 |
CN104615470A (zh) * | 2015-03-04 | 2015-05-13 | 成都维远艾珏信息技术有限公司 | 一种嵌入式设备程序更新方法 |
CN106201607A (zh) * | 2016-07-04 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种软件版本的升级方法及设备 |
Non-Patent Citations (2)
Title |
---|
原始人工作室: "《煮酒论Android》", 31 August 2014, 北京工业大学出版社 * |
高飞等: "《计算机网络和网络安全基础》", 30 June 2002, 北京理工大学出版社 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446083A (zh) * | 2018-10-23 | 2019-03-08 | 航天信息股份有限公司 | 一种持续集成方法和系统 |
CN109446083B (zh) * | 2018-10-23 | 2023-08-22 | 航天信息股份有限公司 | 一种持续集成方法和系统 |
CN117407031A (zh) * | 2023-11-27 | 2024-01-16 | 深圳麦风科技有限公司 | 补丁包升级文件生成方法、装置、设备及存储介质 |
CN117407031B (zh) * | 2023-11-27 | 2024-04-26 | 深圳麦风科技有限公司 | 补丁包升级文件生成方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108446127B (zh) | 2021-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104077146B (zh) | 一种移动终端应用程序个性化定制方法及其系统 | |
CN106484453B (zh) | 一种实现系统升级的方法及装置 | |
CN109460279A (zh) | 基于小程序的表单页面开发方法、装置、设备及存储介质 | |
CN104615466B (zh) | 一种云平台部署方法和系统 | |
CN108469957A (zh) | 应用打包上传方法、装置、计算机设备及存储介质 | |
CN107273122A (zh) | 基于解耦机制的可迭代组建业务系统的方法及其终端 | |
US10467066B2 (en) | System and method for establishing common request processing | |
JP6301256B2 (ja) | 処理方法、コンピュータプログラム及びメタデータサポートサーバ | |
US9565148B2 (en) | Method and apparatus for processing micro web log messages | |
CN103312551A (zh) | 通用网关接口的测试方法及测试装置 | |
CN105227545B (zh) | 智能操作平台中实现用户和开发者划分控制的系统及方法 | |
CN108399080A (zh) | 一种Android App热更新方法 | |
CN105450461A (zh) | 一种分流方法及网络设备 | |
CN108021415A (zh) | 自动打包方法、装置、计算机设备及存储介质 | |
CN105763626A (zh) | 适用于应用客户端支付的sdk初始化方法 | |
CN111200523B (zh) | 中台系统配置方法、装置、设备及存储介质 | |
CN108446127A (zh) | 更新包的处理方法及装置 | |
CN108241576A (zh) | 一种接口测试方法及系统 | |
CN106941501A (zh) | 一种数据通信方法及装置 | |
CN105391763A (zh) | 对多个apk文件进行加固的方法和服务器 | |
CN107368333A (zh) | 基于图形编程的可穿戴设备配置方法和系统及配置系统 | |
CN109002390A (zh) | 一种测试例参数动态配置方法及装置 | |
CN108614978A (zh) | 压缩包的校验方法、装置、存储介质以及终端 | |
Cetina et al. | Strategies for variability transformation at run-time. | |
CN106371994A (zh) | 基于自然语言处理的动态移动app测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |