CN110780881A - 一种软件包制作方法、装置和电子设备 - Google Patents
一种软件包制作方法、装置和电子设备 Download PDFInfo
- Publication number
- CN110780881A CN110780881A CN201911073716.3A CN201911073716A CN110780881A CN 110780881 A CN110780881 A CN 110780881A CN 201911073716 A CN201911073716 A CN 201911073716A CN 110780881 A CN110780881 A CN 110780881A
- Authority
- CN
- China
- Prior art keywords
- software data
- sub
- code file
- package
- software
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Abstract
本发明提供了一种软件包制作方法、装置和电子设备,涉及数据处理的技术领域,包括:首先,获取原始软件数据包和与原始软件数据包对应的源码文件;然后,基于原始软件数据包确定原始软件数据包的安装参数;接下来,将安装参数写入安装参数库,得到更新后的源码文件;再将更新后的源码文件进行编译,得到字节码文件;最后,将原始软件数据包写入字节码文件,得到目标软件包。利用本发明方法制作的软件包,用户在软件包安装前,只需要赋予软件包执行权限即可,然后,软件包就能够利用其中存储的代码以及安装参数库中的安装参数实现软件包自动校验、自动解压缩和自动安装的功能,从而缓解了现有技术中的软件包安装过程智能程度差的技术问题。
Description
技术领域
本发明涉及数据处理的技术领域,尤其是涉及一种软件包制作方法、装置和电子设备。
背景技术
在现有技术中,软件提供方普遍以软件包的形式安装或升级自家的产品,但是软件包在传输过程中可能会存在被修改或者损坏的情况,所以用户在获得软件包后,首先需要手动校验来检查软件包的完整性,确定软件包完整后,再手动解压缩软件包,最后再手动控制执行内部的安装或升级文件,也就是说,软件包安装前需要用户手动操作的步骤过多,费时又费力。
综上所述,现有技术中的软件包安装过程存在智能程度差的技术问题。
发明内容
本发明的目的在于提供一种软件包制作方法、装置和电子设备,以缓解了现有技术中的软件包安装过程存在的智能程度差的技术问题。
第一方面,本发明实施例提供一种软件包制作方法,包括:获取原始软件数据包,以及与所述原始软件数据包对应的源码文件,其中,所述源码文件包括:安装参数库、自动校验代码、自动解压缩代码和自动安装代码;基于所述原始软件数据包确定所述原始软件数据包的安装参数,其中,所述安装参数包括:文件校验码和特征值;将所述安装参数写入所述安装参数库,得到更新后的源码文件;将所述更新后的源码文件进行编译,得到字节码文件;将所述原始软件数据包写入所述字节码文件,得到目标软件包。
在可选的实施方式中,基于所述原始软件数据包确定所述原始软件数据包的安装参数,包括:利用预设校验码生成算法计算所述原始软件数据包的文件校验码;计算所述原始软件数据包的特征值;将所述文件校验码和所述特征值作为所述原始软件数据包的安装参数。
在可选的实施方式中,将所述更新后的源码文件进行编译,得到字节码文件之前,所述方法还包括:利用预设加密算法将所述原始软件数据包进行加密,得到加密后的软件数据包和解密密钥;将所述解密密钥写入所述安装参数库,得到更新后的源码文件。
在可选的实施方式中,所述源码文件还包括:自动解密代码。
第二方面,本发明实施例提供一种软件包制作方法,包括:获取原始软件数据包,以及与所述原始软件数据包对应的源码文件,其中,所述源码文件包括:安装参数库、自动校验代码、自动解压缩代码和自动安装代码;将所述原始软件数据包进行分割,得到N个子软件数据包;基于每个子软件数据包确定所述每个子软件数据包的子安装参数,其中,所述子安装参数包括:子文件校验码和子特征值;按照预设排序方式将所述N个子软件数据包进行排序,得到排序信息;将所述排序信息和N个子安装参数写入所述安装参数库,得到更新后的源码文件;将所述更新后的源码文件进行编译,得到字节码文件;基于所述排序信息将所述N个子软件数据包写入所述字节码文件,得到目标软件包。
在可选的实施方式中,基于每个子软件数据包确定所述每个子软件数据包的子安装参数,包括:利用预设校验码生成算法计算所述每个子软件数据包的子文件校验码;计算所述每个子软件数据包的子特征值;将所述子文件校验码和所述子特征值作为所述每个子软件数据包的子安装参数。
第三方面,本发明实施例提供一种软件包制作装置,包括:第一获取模块,用于获取原始软件数据包,以及与所述原始软件数据包对应的源码文件,其中,所述源码文件包括:安装参数库、自动校验代码、自动解压缩代码和自动安装代码;第一确定模块,用于基于所述原始软件数据包确定所述原始软件数据包的安装参数,其中,所述安装参数包括:文件校验码和特征值;第一写入模块,用于将所述安装参数写入所述安装参数库,得到更新后的源码文件;第一编译模块,用于将所述更新后的源码文件进行编译,得到字节码文件;第二写入模块,用于将所述原始软件数据包写入所述字节码文件,得到目标软件包。
第四方面,本发明实施例提供一种软件包制作装置,包括:第二获取模块,用于获取原始软件数据包,以及与所述原始软件数据包对应的源码文件,其中,所述源码文件包括:安装参数库、自动校验代码、自动解压缩代码和自动安装代码;分割模块,用于将所述原始软件数据包进行分割,得到N个子软件数据包;第二确定模块,用于基于每个子软件数据包确定所述每个子软件数据包的子安装参数,其中,所述子安装参数包括:子文件校验码和子特征值;排序模块,用于按照预设排序方式将所述N个子软件数据包进行排序,得到排序信息;第三写入模块,用于将所述排序信息和N个子安装参数写入所述安装参数库,得到更新后的源码文件;第二编译模块,用于将所述更新后的源码文件进行编译,得到字节码文件;第四写入模块,用于基于所述排序信息将所述N个子软件数据包写入所述字节码文件,得到目标软件包。
第五方面,本发明实施例提供一种电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述前述实施方式中任一项所述的方法的步骤。
第六方面,本发明实施例提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行前述实施方式中任一项所述的方法。
现有技术中,软件包的安装需要用户手动校验、手动解压缩以及手动安装,过程繁琐,费时费力,与现有技术相比,本发明提供了一种软件包制作方法,首先,获取原始软件数据包和与原始软件数据包对应的源码文件,其中,源码文件包括:安装参数库、自动校验代码、自动解压缩代码和自动安装代码;然后,基于原始软件数据包确定原始软件数据包的安装参数,其中,所述安装参数包括:文件校验码和特征值;接下来,将安装参数写入安装参数库,得到更新后的源码文件;再将更新后的源码文件进行编译,得到字节码文件;最后,将原始软件数据包写入字节码文件,得到目标软件包。利用本发明方法制作的软件包,用户在软件包安装前,只需要赋予软件包执行权限即可,然后,软件包就能够利用其中存储的代码以及安装参数库中的安装参数实现软件包自动校验、自动解压缩和自动安装的功能,从而缓解了现有技术中的软件包安装过程智能程度差的技术问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种软件包制作方法的流程图;
图2为本发明实施例提供的另一种软件包制作方法的流程图;
图3为本发明实施例提供的一种软件包制作装置的功能模块图;
图4为本发明实施例提供的另一种软件包制作装置的功能模块图;
图5为本发明实施例提供的一种电子设备的示意图。
图标:110-第一获取模块;120-第一确定模块;130-第一写入模块;140-第一编译模块;150-第二写入模块;210-第二获取模块;220-分割模块;230-第二确定模块;240-排序模块;250-第三写入模块;260-第二编译模块;270-第四写入模块;60-处理器;61-存储器;62-总线;63-通信接口。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
在现有的技术中,公知的技术是服务器端的linux系统的广泛应用,软件提供方普遍以软件包的形式安装或升级自家的产品,但是软件包在传输过程中会存在软件包不完整或数据泄露的问题,现有的技术是提供一份哈希校验码给用户,让用户在安装前手动校验,来检查软件包的完整性,确定软件包完整后,再手动解压缩、手动安装,步骤繁琐,使用复杂,费时又费力,有鉴于此,本发明实施例提供了一种软件包的制作方法,用以缓解上述提出的问题。
实施例一
本发明实施例提供了一种软件包制作方法,如图1所示,该方法包括如下步骤:
步骤S11,获取原始软件数据包,以及与原始软件数据包对应的源码文件。
具体的,要制作一个具有自动校验功能、自动解压缩功能以及自动安装功能的软件包,首先需要获取原始软件数据包,以及与原始软件数据包对应的源码文件,源码文件可以理解为一种通用的工具,原始软件数据包就是这个工具服务的对象,若要让源码文件服务于原始软件数据包,源码文件中必须包括原始软件数据包对应的自动校验代码、自动解压缩代码(文件复原方法)和自动安装代码(原始软件数据包调用方法),另外,后续在软件包制作过程中计算得到的影响软件包安装的相关参数,需要存储在源码文件中的安装参数库中。
步骤S12,基于原始软件数据包确定原始软件数据包的安装参数。
步骤S13,将安装参数写入安装参数库,得到更新后的源码文件。
在获取了原始软件数据包后,首先要基于原始软件数据包确定原始软件数据包的安装参数,其中,安装参数包括:文件校验码和特征值,因为本发明实施例的目的是要提供一种具有自动校验功能的软件包,显然,在软件包制作过程中需要将文件校验码预存在源码文件的安装参数库中,特征值是一种携带原始软件数据包特征的参数,为了在软件包制作完成后还能成功将原始软件数据包提取出来,源码文件中必须存储原始软件数据包的特征值,在本发明实施例中,可以选择行数或者字节数作为原始软件数据包的特征值,用户还可以选择其他参数作为特征值,本发明实施例不对特征值代表的参数进行具体限制。将上述安装参数存入源码文件的安装参数库后,得到更新后的源码文件。
步骤S14,将更新后的源码文件进行编译,得到字节码文件。
得到更新后的源码文件之后,需要再将更新后的源码文件进行编译,得到字节码文件,字节码文件是不具备执行功能的,字节码文件的生成方式可以选择利用编译器编译更新后的源码文件,还可以使用脚本加密算法,本发明实施例不对字节码文件的生成方式进行具体限制,用户可以根据需求自由选择适合的方式。
步骤S15,将原始软件数据包写入字节码文件,得到目标软件包。
在得到字节码文件后,再将原始软件数据包写入字节码文件,从文件内容上理解相当于将原始软件数据包追加进字节码文件,最终得到目标软件包,该目标软件包是一个单文件,相比多文件软件安装包具有绝对的优势。目标软件包在安装前,只需要赋予软件包执行权限即可,然后软件包就能够利用其中存储的各种功能代码以及安装参数库中的安装参数实现软件包自动校验、自动解压缩和自动安装的功能。软件包制作完成后,用户还需要选择赋予软件包执行权限的节点,可以是在软件包制作完成时,也可以是在用户安装时,最终目的是为了保证用户在使用软件包时,软件包具备执行权限。
现有技术中,软件包的安装需要用户手动校验、手动解压缩以及手动安装,过程繁琐,费时费力,与现有技术相比,本发明提供了一种软件包制作方法,首先,获取原始软件数据包和与原始软件数据包对应的源码文件,其中,源码文件包括:安装参数库、自动校验代码、自动解压缩代码和自动安装代码;然后,基于原始软件数据包确定原始软件数据包的安装参数,其中,所述安装参数包括:文件校验码和特征值;接下来,将安装参数写入安装参数库,得到更新后的源码文件;再将更新后的源码文件进行编译,得到字节码文件;最后,将原始软件数据包写入字节码文件,得到目标软件包。利用本发明方法制作的软件包,用户在软件包安装前,只需要赋予软件包执行权限即可,然后,软件包就能够利用其中存储的代码以及安装参数库中的安装参数实现软件包自动校验、自动解压缩和自动安装的功能,从而缓解了现有技术中的软件包安装过程智能程度差的技术问题。
在一个可选的实施方式中,上述步骤S12具体包括如下步骤:
步骤S121,利用预设校验码生成算法计算原始软件数据包的文件校验码。
在本发明实施例中,安装参数包括:文件校验码与特征值,在得到原始软件数据包后,首先利用预设校验码生成算法计算原始软件数据包的文件校验码,其中,预设校验码生成算法可以选择哈希算法,还可以选择所有能够生成校验码的方法,哈希算法可以选择常用的MD5、SHA1或SH256。
步骤S122,计算原始软件数据包的特征值。
得到文件校验码之后,还需要计算原始软件数据包的特征值,上文中已经指出,特征值可以选择行数或者字节数。用户根据实际情况选择并进行计算即可。
步骤S123,将文件校验码和特征值作为原始软件数据包的安装参数。
在一个可选的实施方式中,在执行步骤S14之前,该方法还包括如下步骤:
步骤S21,利用预设加密算法将原始软件数据包进行加密,得到加密后的软件数据包和解密密钥。
步骤S22,将解密密钥写入安装参数库,得到更新后的源码文件。
为了增强软件包的安全性,在编译得到字节码文件之前,还可以利用预设加密算法将原始软件数据包进行加密,得到原始软件数据包的解密密钥,再将解密密钥存入安装参数库,这样相当于对原始软件数据包增加了一层保护,此时更新后的源码文件的安装参数库中存储了文件校验码、特征值和解密密钥,然后再对源码文件进行编译,得到字节码文件,最后再将加密后的原始软件数据包写入字节码文件,得到一种能够防止数据泄露和防篡改的目标软件包。
进一步的,如果在软件包的制作过程中使用了加密的功能,那么,源码文件还需要包括:自动解密代码(自解密方法),才能使得具有执行权限的软件包自动解密。
为了使得用户清楚了解软件包在安装过程中的信息以及优化软件包的性能,本发明实施例中的源码文件中还可以设置:自动清理代码和返回代码,其中,自动清理代码用于清理软件包安装过程中的过程文件,返回代码用于给用户提供安装过程中的各种反馈信息。
采用本发明实施例提供的软件包制作方法,用户在安装软件包前,无需手动校验来检查软件包的完整性,通过软件包的自动校验功能,不完整的软件包运行时将出现预定义的错误返回或系统错误提示,可运行的软件包即代表软件包是完整的,同时,软件包还是防篡改的,经过篡改的软件包运行时也将出现预定义的错误返回或系统错误提示。
实施例二
本发明实施例还提供了另一种软件包制作方法,如图2所示,该方法具体包括如下步骤:
步骤S31,获取原始软件数据包,以及与原始软件数据包对应的源码文件。
其中,源码文件包括:安装参数库、自动校验代码、自动解压缩代码和自动安装代码。
上述实施例一已经对该步骤中涉及的内容进行了详细的描述,此处不再赘述。
步骤S32,将原始软件数据包进行分割,得到N个子软件数据包。
在本发明实施例中,在获取到原始软件数据包后,首先将原始软件包分割为N份,得到N个子软件数据包,其中,文件分割的方式可以是随机分割,也可以是平均分割,还可以是按照用户需求遵循的某种特定分割方式,本发明实施例不对文件分割的方式进行具体限定,N的取值依赖原始软件数据包的大小,本发明实施例不对N的取值进行具体限制,优选可以取4至10,但是对于文件过小的数据包,则不建议进行分割。
步骤S33,基于每个子软件数据包确定每个子软件数据包的子安装参数。
步骤S34,按照预设排序方式将N个子软件数据包进行排序,得到排序信息。
步骤S35,将排序信息和N个子安装参数写入安装参数库,得到更新后的源码文件。
在得到N个子软件数据包后,还要分别计算每个子软件数据包的子安装参数,其中,子安装参数包括:子文件校验码和子特征值。也就是说,每个子软件数据包都对应一个子安装参数,上述实施例一中已经对文件校验码与特征值的重要性进行了阐述,此处不再赘述,为了制作具有自动校验功能的软件包,必须要将N个子软件数据包的N个子安装参数写入安装参数库。
为了增强软件包的防篡改系数,本发明实施例在软件包制作过程中,还要将N个子软件数据包按照预设排序方式进行排序,得到排序信息并将其存入安装参数库,该排序信息具体记载了上述N个子软件数据包的排列顺序,也就是说,最终,更新后的源码文件的安装参数库中存有N个子安装参数和N个子软件数据包的排序信息。上述预设排序方式可以是乱序的,也可以是顺序的,还可以是用户根据实际需求设置的其他排序方式,本发明实施例不对其进行具体限制。
步骤S36,将更新后的源码文件进行编译,得到字节码文件。
步骤S37,基于排序信息将N个子软件数据包写入字节码文件,得到目标软件包。
上述实施例一中已经对如何将更新后的源码文件进行编译的过程进行了详细的描述,此处不再赘述,在得到字节码文件之后,本发明实施例将N个子软件数据包以上述排序信息中记载的排列方式依次写入字节码文件中,最终得到目标软件包,该目标软件包也是一个单文件。同样的,目标软件包在安装前,只需要赋予软件包执行权限即可,然后软件包就可以实现自动校验、自动解压缩和自动安装的功能。
在一个可选的实施方式中,上述步骤S33具体包括如下步骤:
步骤S331,利用预设校验码生成算法计算每个子软件数据包的子文件校验码。
步骤S332,计算每个子软件数据包的子特征值。
步骤S333,将子文件校验码和子特征值作为每个子软件数据包的子安装参数。
本发明实施例在计算子文件校验码与子特征值时,可以参考上述实施例一中计算文件校验码与特征值的过程,此处不再赘述。
可选的,本发明实施例在执行步骤S36之前,也可以增加对原始软件数据包加密的过程,增大制作得到的软件包的防篡改系数。
实施例三
本发明实施例还提供了一种软件包制作装置,该软件包制作装置主要用于执行上述实施例一中所提供的软件包制作方法,以下对本发明实施例提供的软件包制作装置做具体介绍。
图3是根据本发明实施例的一种软件包制作装置的功能模块图,如图3所示,该装置主要包括:第一获取模块110,第一确定模块120,第一写入模块130,第一编译模块140,第二写入模块150,其中:
第一获取模块110,用于获取原始软件数据包,以及与原始软件数据包对应的源码文件,其中,源码文件包括:安装参数库、自动校验代码、自动解压缩代码和自动安装代码。
第一确定模块120,用于基于原始软件数据包确定原始软件数据包的安装参数,其中,安装参数包括:文件校验码和特征值。
第一写入模块130,用于将安装参数写入安装参数库,得到更新后的源码文件。
第一编译模块140,用于将更新后的源码文件进行编译,得到字节码文件。
第二写入模块150,用于将原始软件数据包写入字节码文件,得到目标软件包。
可选的,第一确定模块120,包括:
第一计算单元,用于利用预设校验码生成算法计算原始软件数据包的文件校验码。
第二计算单元,用于计算原始软件数据包的特征值。
第一确定单元,用于将文件校验码和特征值作为原始软件数据包的安装参数。
可选的,装置还包括:
加密模块,用于利用预设加密算法将原始软件数据包进行加密,得到加密后的软件数据包和解密密钥。
密钥写入模块,用于将解密密钥写入安装参数库,得到更新后的源码文件。
可选的,源码文件还包括:自动解密代码。
实施例四
本发明实施例还提供了另一种软件包制作装置,该软件包制作装置主要用于执行上述实施例二中所提供的软件包制作方法,以下对本发明实施例提供的软件包制作装置做具体介绍。
图4是根据本发明实施例的一种软件包制作装置的功能模块图,如图4所示,该装置主要包括:第二获取模块210,分割模块220,第二确定模块230,排序模块240,第三写入模块250,第二编译模块260,第四写入模块270,其中:
第二获取模块210,用于获取原始软件数据包,以及与原始软件数据包对应的源码文件,其中,源码文件包括:安装参数库、自动校验代码、自动解压缩代码和自动安装代码。
分割模块220,用于将原始软件数据包进行分割,得到N个子软件数据包。
第二确定模块230,用于基于每个子软件数据包确定每个子软件数据包的子安装参数,其中,子安装参数包括:子文件校验码和子特征值。
排序模块240,用于按照预设排序方式将N个子软件数据包进行排序,得到排序信息。
第三写入模块250,用于将排序信息和N个子安装参数写入安装参数库,得到更新后的源码文件。
第二编译模块260,用于将更新后的源码文件进行编译,得到字节码文件。
第四写入模块270,用于基于排序信息将N个子软件数据包写入字节码文件,得到目标软件包。
现有技术中,软件包的安装需要用户手动校验、手动解压缩以及手动安装,过程繁琐,费时费力,与现有技术相比,本发明提供了一种软件包制作装置,首先,获取原始软件数据包和与原始软件数据包对应的源码文件,其中,源码文件包括:安装参数库、自动校验代码、自动解压缩代码和自动安装代码;然后,基于原始软件数据包确定原始软件数据包的安装参数,其中,所述安装参数包括:文件校验码和特征值;接下来,将安装参数写入安装参数库,得到更新后的源码文件;再将更新后的源码文件进行编译,得到字节码文件;最后,将原始软件数据包写入字节码文件,得到目标软件包。利用本发明装置制作的软件包,用户在软件包安装前,只需要赋予软件包执行权限即可,然后,软件包就能够利用其中存储的代码以及安装参数库中的安装参数实现软件包自动校验、自动解压缩和自动安装的功能,从而缓解了现有技术中的软件包安装过程智能程度差的技术问题。
可选的,第二确定模块230,包括:
第三计算单元,用于利用预设校验码生成算法计算每个子软件数据包的子文件校验码。
第四计算单元,用于计算每个子软件数据包的子特征值。
第二确定单元,用于将子文件校验码和子特征值作为每个子软件数据包的子安装参数。
实施例五
参见图5,本发明实施例提供了一种电子设备,该电子设备包括:处理器60,存储器61,总线62和通信接口63,所述处理器60、通信接口63和存储器61通过总线62连接;处理器60用于执行存储器61中存储的可执行模块,例如计算机程序。
其中,存储器61可能包含高速随机存取存储器(RAM,RandomAccessMemory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口63(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线62可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器61用于存储程序,所述处理器60在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器60中,或者由处理器60实现。
处理器60可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器60中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器60可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器61,处理器60读取存储器61中的信息,结合其硬件完成上述方法的步骤。
本发明实施例所提供的一种软件包制作方法、装置和电子设备的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种软件包制作方法,其特征在于,包括:
获取原始软件数据包,以及与所述原始软件数据包对应的源码文件,其中,所述源码文件包括:安装参数库、自动校验代码、自动解压缩代码和自动安装代码;
基于所述原始软件数据包确定所述原始软件数据包的安装参数,其中,所述安装参数包括:文件校验码和特征值;
将所述安装参数写入所述安装参数库,得到更新后的源码文件;
将所述更新后的源码文件进行编译,得到字节码文件;
将所述原始软件数据包写入所述字节码文件,得到目标软件包。
2.根据权利要求1所述的方法,其特征在于,基于所述原始软件数据包确定所述原始软件数据包的安装参数,包括:
利用预设校验码生成算法计算所述原始软件数据包的文件校验码;
计算所述原始软件数据包的特征值;
将所述文件校验码和所述特征值作为所述原始软件数据包的安装参数。
3.根据权利要求1所述的方法,其特征在于,将所述更新后的源码文件进行编译,得到字节码文件之前,所述方法还包括:
利用预设加密算法将所述原始软件数据包进行加密,得到加密后的软件数据包和解密密钥;
将所述解密密钥写入所述安装参数库,得到更新后的源码文件。
4.根据权利要求3所述的方法,其特征在于,所述源码文件还包括:自动解密代码。
5.一种软件包制作方法,其特征在于,包括:
获取原始软件数据包,以及与所述原始软件数据包对应的源码文件,其中,所述源码文件包括:安装参数库、自动校验代码、自动解压缩代码和自动安装代码;
将所述原始软件数据包进行分割,得到N个子软件数据包;
基于每个子软件数据包确定所述每个子软件数据包的子安装参数,其中,所述子安装参数包括:子文件校验码和子特征值;
按照预设排序方式将所述N个子软件数据包进行排序,得到排序信息;
将所述排序信息和N个子安装参数写入所述安装参数库,得到更新后的源码文件;
将所述更新后的源码文件进行编译,得到字节码文件;
基于所述排序信息将所述N个子软件数据包写入所述字节码文件,得到目标软件包。
6.根据权利要求5所述的方法,其特征在于,基于每个子软件数据包确定所述每个子软件数据包的子安装参数,包括:
利用预设校验码生成算法计算所述每个子软件数据包的子文件校验码;
计算所述每个子软件数据包的子特征值;
将所述子文件校验码和所述子特征值作为所述每个子软件数据包的子安装参数。
7.一种软件包制作装置,其特征在于,包括:
第一获取模块,用于获取原始软件数据包,以及与所述原始软件数据包对应的源码文件,其中,所述源码文件包括:安装参数库、自动校验代码、自动解压缩代码和自动安装代码;
第一确定模块,用于基于所述原始软件数据包确定所述原始软件数据包的安装参数,其中,所述安装参数包括:文件校验码和特征值;
第一写入模块,用于将所述安装参数写入所述安装参数库,得到更新后的源码文件;
第一编译模块,用于将所述更新后的源码文件进行编译,得到字节码文件;
第二写入模块,用于将所述原始软件数据包写入所述字节码文件,得到目标软件包。
8.一种软件包制作装置,其特征在于,包括:
第二获取模块,用于获取原始软件数据包,以及与所述原始软件数据包对应的源码文件,其中,所述源码文件包括:安装参数库、自动校验代码、自动解压缩代码和自动安装代码;
分割模块,用于将所述原始软件数据包进行分割,得到N个子软件数据包;
第二确定模块,用于基于每个子软件数据包确定所述每个子软件数据包的子安装参数,其中,所述子安装参数包括:子文件校验码和子特征值;
排序模块,用于按照预设排序方式将所述N个子软件数据包进行排序,得到排序信息;
第三写入模块,用于将所述排序信息和N个子安装参数写入所述安装参数库,得到更新后的源码文件;
第二编译模块,用于将所述更新后的源码文件进行编译,得到字节码文件;
第四写入模块,用于基于所述排序信息将所述N个子软件数据包写入所述字节码文件,得到目标软件包。
9.一种电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至6中任一项所述的方法的步骤。
10.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911073716.3A CN110780881A (zh) | 2019-11-05 | 2019-11-05 | 一种软件包制作方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911073716.3A CN110780881A (zh) | 2019-11-05 | 2019-11-05 | 一种软件包制作方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110780881A true CN110780881A (zh) | 2020-02-11 |
Family
ID=69389257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911073716.3A Pending CN110780881A (zh) | 2019-11-05 | 2019-11-05 | 一种软件包制作方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110780881A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631622A (zh) * | 2020-12-29 | 2021-04-09 | Oppo广东移动通信有限公司 | 应用安装方法、装置、服务器及计算机可读介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105589725A (zh) * | 2016-01-11 | 2016-05-18 | 武汉虹信通信技术有限责任公司 | 一种电子设备的升级包制作方法和升级方法、升级包 |
CN106406856A (zh) * | 2016-08-30 | 2017-02-15 | 广西电网有限责任公司 | 一种Oracle单机一键自动部署方法 |
CN108304722A (zh) * | 2017-12-21 | 2018-07-20 | 广州小鹏汽车科技有限公司 | 一种软件安装包及其生成方法、升级方法和系统 |
CN109710262A (zh) * | 2018-12-12 | 2019-05-03 | 深圳市多元世纪信息技术股份有限公司 | 软件发布方法和装置、计算机可读存储介质 |
-
2019
- 2019-11-05 CN CN201911073716.3A patent/CN110780881A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105589725A (zh) * | 2016-01-11 | 2016-05-18 | 武汉虹信通信技术有限责任公司 | 一种电子设备的升级包制作方法和升级方法、升级包 |
CN106406856A (zh) * | 2016-08-30 | 2017-02-15 | 广西电网有限责任公司 | 一种Oracle单机一键自动部署方法 |
CN108304722A (zh) * | 2017-12-21 | 2018-07-20 | 广州小鹏汽车科技有限公司 | 一种软件安装包及其生成方法、升级方法和系统 |
CN109710262A (zh) * | 2018-12-12 | 2019-05-03 | 深圳市多元世纪信息技术股份有限公司 | 软件发布方法和装置、计算机可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631622A (zh) * | 2020-12-29 | 2021-04-09 | Oppo广东移动通信有限公司 | 应用安装方法、装置、服务器及计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8108536B1 (en) | Systems and methods for determining the trustworthiness of a server in a streaming environment | |
US10372914B2 (en) | Validating firmware on a computing device | |
CN108683502B (zh) | 一种数字签名验证方法、介质及设备 | |
US8799662B2 (en) | Method and apparatus for validating the integrity of installer files prior to installation | |
CN106055341A (zh) | 应用程序安装包的校验方法及装置 | |
CN109542461A (zh) | 应用安装包的发布方法、终端设备及介质 | |
CN103530535A (zh) | 一种Android平台应用程序保护的加脱壳方法 | |
CN108733400A (zh) | 一种App增量热更新方法及服务系统 | |
US8549165B2 (en) | Processing devices and methods for transmitting and receiving data | |
CN103677898A (zh) | 服务器侧审核加载的扩展和/或插件的方法及服务器 | |
CN111008034B (zh) | 一种补丁生成方法及装置 | |
US11275835B2 (en) | Method of speeding up a full antivirus scan of files on a mobile device | |
US7353386B2 (en) | Method and device for authenticating digital data by means of an authentication extension module | |
WO2022078366A1 (zh) | 应用保护方法、装置、设备及介质 | |
CN112597485A (zh) | 基于区块链的信息校验方法、装置和设备及存储介质 | |
CN111176685A (zh) | 一种升级方法及装置 | |
CN110780881A (zh) | 一种软件包制作方法、装置和电子设备 | |
CN112187783A (zh) | 鉴权方法及装置、电子设备以及存储介质 | |
CN111143347A (zh) | 一种对象存储数据一致性测试方法、系统、终端及存储介质 | |
CN107783778B (zh) | 一种基于特征值查表法的增量升级方法 | |
CN108664796B (zh) | 一种so文件保护方法及装置 | |
CN111046389A (zh) | 固件组件安全更新的方法以及用以实施的携行计算机站 | |
CN113468863A (zh) | 文件校验的方法、装置、电子设备和计算机可读存储介质 | |
WO2020062233A1 (zh) | 应用程序处理和部署的方法、装置及计算机可读介质 | |
KR101893504B1 (ko) | 리눅스 환경에서 파일 무결성 검증 장치 및 방법 |
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 |