CN114756255A - 一种离线包生成方法、一种软件包安装方法 - Google Patents
一种离线包生成方法、一种软件包安装方法 Download PDFInfo
- Publication number
- CN114756255A CN114756255A CN202210665930.3A CN202210665930A CN114756255A CN 114756255 A CN114756255 A CN 114756255A CN 202210665930 A CN202210665930 A CN 202210665930A CN 114756255 A CN114756255 A CN 114756255A
- Authority
- CN
- China
- Prior art keywords
- file
- subfile
- software package
- package
- downloaded
- 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
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000009434 installation Methods 0.000 title claims description 13
- 238000004519 manufacturing process Methods 0.000 claims abstract description 12
- 230000006835 compression Effects 0.000 claims description 40
- 238000007906 compression Methods 0.000 claims description 40
- 238000003860 storage Methods 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 13
- 238000011161 development Methods 0.000 claims description 6
- 230000001419 dependent effect Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 18
- 230000006837 decompression Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 10
- 241000700605 Viruses Species 0.000 description 8
- 238000009826 distribution Methods 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000002347 injection Methods 0.000 description 5
- 239000007924 injection Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000007723 transport mechanism Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44552—Conflict resolution, i.e. enabling coexistence of conflicting executables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种离线包生成方法、一种软件包安装方法,其中离线包生成方法包括:当监测到制作离线包的指令时,创建目标文件,目标文件包括第一子文件、第二子文件和第三子文件,下载与待下载软件包信息对应的软件包至第一子文件中,任一软件包对应一个运行时所依赖的运行环境数据文件,将各已下载软件包对应的运行环境数据文件存储至第二子文件中,对第一子文件和第二子文件进行加密处理,得到第一加密文件和第二加密文件,存储至第三子文件中,压缩目标文件得到离线包。由上述可知,本发明中软件包的运行依赖于其对应的运行环境数据文件,而不依赖于其他软件包,不会出现安装、升级的软件包与其他软件包冲突的情况,提高了操作系统的安全性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种离线包生成方法、一种软件包安装方法、计算设备及可读存储介质。
背景技术
离线包,是将包括HTML、JavaScript、CSS 等页面内静态资源打包到一个压缩包内,即将应用程序的所有资源打包到一个压缩包内。在使用时,计算设备预先从服务端下载该离线包到本地或者存储到相关存储介质中进行传输,并直接从本地或相关存储介质中加载离线包,以在本地安装并使用与离线包对应的应用程序。
现有技术多通过下载deb软件包制作离线包,并通过光盘等形式分发离线包。但是,由于deb软件包之间存在复杂的依赖关系,若安装、升级的软件包与系统中的已安装软件包存在冲突,将会导致安装或升级失败,进而使得deb软件包管理工具(例如dpkg工具)服务状态异常,存在破坏操作系统的风险。并且,在离线包分发过程中存在被注入病毒或被恶意篡改的风险,这将会威胁安装该离线包的操作系统的安全性。
另外,deb软件包在开发时对压缩方式进行了配置,那么在制作离线包时,各软件包需要根据配置的方式进行压缩,压缩方式不统一,在解压时就需要采用对应的方式单独解压,比较繁琐。并且,deb软件包制作离线包时,通过软件包名来区分不同的软件包,而同一软件包的不同版本由于软件包名相同,会被认为是同一个软件包,因此同一软件的不同版本软件包无法存在于一个离线包中,只能单独制作离线包。
发明内容
为此,本发明提供了一种离线包生成方法,以力图解决上述技术问题。
根据本发明的一个方面,提供一种离线包生成方法,适于在计算设备中执行,计算设备与应用服务器通信连接,所述方法包括:当监测到制作离线包的指令时,创建目标文件,目标文件包括第一子文件、第二子文件和第三子文件,其中,指令中包括待下载软件包信息,待下载软件包信息中至少包括一个软件包的信息;从应用服务器中下载与待下载软件包信息对应的软件包至第一子文件中,其中,任一软件包对应一个运行环境数据文件,各软件包的运行依赖于其对应的运行环境数据文件;将各已下载软件包对应的运行环境数据文件存储至第二子文件中;对存储数据的第一子文件和第二子文件进行加密处理,分别得到第一加密文件和第二加密文件,并将第一加密文件和第二加密文件存储至第三子文件中;压缩已存储数据的目标文件,得到离线包。
可选地,将各已下载软件包对应的运行环境数据文件存储至第二子文件中的步骤包括:对各已下载软件包对应的运行环境数据文件进行去重处理,并存储至第二子文件中。
可选地,对各已下载软件包对应的运行环境数据文件进行去重处理的步骤包括:获取各已下载软件包对应的运行环境数据文件;计算各运行环境数据文件的哈希值;去除重复哈希值对应的运行环境数据文件,以对各已下载软件包对应的运行环境数据文件进行去重处理。
可选地,对存储数据的第一子文件和第二子文件进行加密处理,分别得到第一加密文件和第二加密文件的步骤包括:对存储数据的第一子文件进行签名,生成第一加密文件;压缩存储数据的第二子文件,得到压缩后的第二子文件;对压缩后的第二子文件进行签名,生成第二加密文件。
可选地,对存储数据的第一子文件进行签名生成第一加密文件,或对压缩后的第二子文件进行签名生成第二加密文件的步骤包括:获取数字证书和数字证书的私钥文件;通过加密算法计算目标子文件的信息摘要,其中,目标子文件包括第一子文件或压缩后的第二子文件;通过数字证书的私钥文件加密信息摘要;将数字证书和加密后的信息摘要存储至目标加密文件,其中,目标加密文件包括第一加密文件或第二加密文件。
可选地,待下载软件包信息包括软件包标识,软件包标识包括软件包名称和版本号,待下载软件包信息为预先配置的。
可选地,已下载软件包在开发阶段未配置压缩参数,压缩已存储数据的目标文件,得到离线包的步骤包括:通过预设压缩方式统一对已存储数据的目标文件进行压缩处理,得到离线包,以统一离线包的压缩格式。
根据本发明的又一个方面,提供一种软件包安装方法,在计算设备中执行,软件包为根据上述的离线包生成方法生成的压缩包中的任一软件包,所述方法包括:对离线包进行解压操作,以得到解压后的离线包对应的目标文件;从目标文件的第三子文件中获取第一加密文件和第二加密文件;通过第一加密文件第一文件进行解密,第一文件为目标文件下的、存储软件包集合的文件;通过第二加密文件对第二文件进行解密,第二文件为目标文件下的、存储软件包运行环境数据文件集合的文件;当检测到安装第一文件中的目标软件包的指令时,通过第二文件中的软件包运行环境数据文件集合安装并运行目标软件包,目标软件包为软件包集合中的任一个。
根据本发明的又一个方面,提供一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,程序指令被配置为适于由至少一个处理器执行,程序指令包括用于执行根据本发明的方法的指令。
根据本发明的又一个方面,提供一种存储有程序指令的可读存储介质,当程序指令被计算设备读取并执行时,使得计算设备执行根据本发明的方法。
根据本发明的离线包生成方法,每当监测到制作离线包的指令时,创建目标文件,目标文件包括第一子文件、第二子文件和第三子文件,下载与待下载软件包标识对应的软件包至第一子文件中,将各已下载软件包对应的运行时所需要的运行环境数据文件存储至第二子文件中,任一软件包对应一个运行时依赖的运行环境数据文件,并对存储数据的第一子文件和第二子文件进行加密处理,分别得到第一加密文件和第二加密文件,并将第一加密文件和第二加密文件存储至第三子文件中,最后通过统一的压缩方式压缩已存储数据的目标文件,得到离线包。
由上述内容可知,本发明中的各软件包会对应一个运行时需要的运行环境数据文件,软件包的运行仅依赖于其对应的运行环境数据文件,而不是类似于deb包依赖于其他软件包。这样,可以克服软件包之间的依赖性,从而不会出现安装、升级的软件包与系统中的已安装软件包存在冲突的情况,也就不会导致软件包管理工具服务状态异常,进而不会破坏操作系统,提高了操作系统的安全性。
另外,本发明通过对存储已下载软件包的文件和存储各软件包运行时所需的运行环境数据进行加密,可有效防止在离线包分发过程中存在被注入病毒或被恶意篡改的风险,从而保证安装该离线包的操作系统的安全性。
根据本发明提供的软件包安装方法,对离线包进行解压操作,以得到离线包对应的目标文件,从目标文件的第三子文件中获取第一加密文件和第二加密文件,通过第一加密文件对目标文件下的第一文件进行解密,通过第二加密文件对目标文件下的第二文件进行解密,当检测到安装第一文件中的目标软件包的指令时,通过第二文件中的软件包运行环境数据文件集合安装并运行目标软件包。
由上述内容可知,根据本发明的软件包安装方法,由于其依赖于离线包中的任一软件包,各软件包运行仅依赖于运行环境数据文件集合,而不依赖于各软件包,因此软件包之间的依赖性大大降低,这就使得在安装并运行软件包时,不会出现安装、升级的软件包与系统中的已安装软件包存在冲突的情况,也就不会导致软件包管理工具服务状态异常,进而不会破坏操作系统,提高了操作系统的安全性。
并且,由于对离线包中的软件包和软件包运行时所需要的运行环境数据文件集合进行了加密操作,这可有效防止分发离线包过程中软件包或运行环境数据文件集合被注入病毒或恶意篡改,保证了安装软件包的安全性,从而保证了安装该软件包的操作系统的安全性。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的离线包生成系统100的示意图;
图2示出了根据本发明一个实施例的计算设备200的结构框图;
图3示出了根据本发明一个实施例的一种离线包生成方法300的流程图;
图4示出了根据本发明一个实施例的离线包的结构示意图;
图5示出了根据本发明一个实施例的一种软件包安装方法500的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了解决已有的通过下载deb软件包制作离线包策略中,存在破坏操作系统的风险、压缩方式不统一以及同一软件的不同版本软件包无法存在于一个离线包中的问题,本发明提供了一种离线包生成系统,图1示出了根据本发明一个实施例的离线包生成系统100的示意图。
如图1所示,离线包生成系统100包括计算设备200、应用服务器110和存储介质120,计算设备200分别与应用服务器110、存储介质120通信连接,例如通过有线或无线的方式网络连接。
其中,计算设备200可以为多个(图1中示出一个计算设备),多个计算设备200处于不同的地理位置,应用服务器110可以为一个或多个(图1中示出一个应用服务器)。上述的任一应用服务器中包括多个应用程序,这些应用程序供任一计算设备200下载并使用在计算设备生成离线包之后,将离线包存储至存储介质120中,以通过离线方式分发离线包。存储介质120可以为光盘、U盘等,本发明对此不进行限制。通过离线包生成系统100生成离线包的工作过程如下述的方法300所述,此处不进行说明。
在一个实施方式中,图2示出了根据本发明一个实施例的计算设备200的结构图。计算设备200的框图如图2所示,在基本配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(µP)、微控制器(µC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据224。在一些实施方式中,应用222可以布置为在操作系统上利用程序数据224进行操作。
计算设备200还包括储存设备232,储存设备232包括可移除储存器236和不可移除储存器238,可移除储存器236和不可移除储存器238均与储存接口总线234连接。本发明中,程序执行过程中发生的各事件的相关数据和指示各事件发生的时间信息,可存储于储存设备232中,操作系统220适于管理储存设备232。其中,储存设备232可为磁盘。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图像处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备200可以实现为服务器,例如文件服务器、数据库服务器、应用程序服务器和WEB服务器等,也可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备200还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。在一些实施例中,计算设备200被配置为执行根据本发明的方法300。
图3示出了根据本发明一个实施例的一种离线包生成方法300的流程图,方法300适于在离线包生成系统100的任一计算设备200(例如图2所示的计算设备200)中执行。进一步地,可以在运行于计算设备的操作系统中集成一个插件来执行方法300,也可以在安装于计算设备的开发集成环境中集成一个插件来执行方法300,本发明对此不进行限制,所有使得计算设备能够执行方法300的方式均在本发明的保护范围之内。
若在操作系统或集成开发环境中集成插件来执行方法300,其中,集成环境例如qtcreator集成开发环境,会存在一个用户交互界面,该交互界面中包括用户可触发的创建离线包按钮(接口)和可配置待下载软件包的入口。该入口可以为配置表的入口,也可以是命令行入口,本发明对此不进行限制,只要可通过该入口对待下载软件包进行配置即可。
当用户在用户界面触发生成离线包的接口时,会生成一个制作离线包指令,该指令中包括待下载软件包信息,待下载软件包信息包括至少一个软件包的信息,而待下载软件包信息包括各软件包的标识,这是本发明中的待下载软件包与已有的deb的一个区别。此处值得注意的是,本发明中的软件包标识包括软件包名称与软件包版本号,在一个实施方式中,软件包标识由软件包名称与软件包版本号组合而成,组合方式可以根据实际应用场景进行设置,本发明对此不进行限制,例如,组合方式为名称(例如weixin)在前版本号(例如3.5.0.46)在后,若软件包为uap格式,那么软件包标识可为weixin-3.5.0.46.uap。那么即可根据软件包标识可以确定软件包名称和软件包版本号。
这样,即使软件包名称相同,但是版本号不同,因此同一软件包的不同版本软件包对应的标识也是不同的,从而可以实现将同一软件包的不同版本软件包打包于一个压缩包中。这样,针对同一软件包的不同版本软件包只需制作一个压缩包即可,而无需制作多个压缩包,大大节约工作量,为制作压缩包的用户提供了便利。
制作离线包指令中的待下载软件包信息,是用户通过交互界面的待下载软件的入口预先配置的。例如,待下载软件入口为命令行入口,那么下面给出一个命令行示例:该命令行的使用格式可以为ll-builder create-uab --sign-path list<packageid>。
其中,create-uab是必填参数,为调用创建待下载软件包的接口。sign-path是选填参数,默认为操作系统(本发明对操作系统不做限制,例如UOS操作系统、Linux操作系统等)中sign的位置。list<packageid>是待下载软件包标识列表,可以包括一个或多个待下载软件包标识,多个标识之间可通过空格隔开。
需要说明的是,本发明中的待下载软件包,其与deb包除了标识不同外,该软件包的依赖是不相同的。本发明中的各软件包会对应一个运行环境数据文件(后续称为runtime),每一runime中包括运行软件包所需要的所有环境数据,包括库文件等,软件包的运行仅依赖于其对应的runtime,而不是类似于deb包依赖于其他软件包。这样,可以克服软件包之间的依赖性,从而不会出现安装、升级的软件包与系统中的已安装软件包存在冲突的情况,也就不会导致软件包管理工具服务状态异常,进而不会破坏操作系统,提高了操作系统的安全性。
本发明中的待下载软件包,其与deb包相比较还存在一个区别,其在开发软件包的过程中未对压缩参数进行设置,即,未限定软件包的压缩方式。这样,后续对软件包压缩时,可以采用统一的压缩方式,而不需要根据预先配置的压缩方式分别进行压缩,在解压时也是采用统一方式进行解压,操作过程简便。
如图3所示,该方法300包括步骤S310至步骤S360。
当计算设备监测到上述的制作离线包指令时,执行步骤S310,创建目标文件,目标文件包括第一子文件、第二子文件和第三子文件。
例如,创建工作目录dir_root,以及创建dir_root目录下的第一子目录(即第一子文件)dir_root/uap、第二子目录(即第二子文件)dir_root/repo和第三子目录(即第三子文件)dir_root/sign。
其中,第一子文件用于存储待下载软件包,待下载软件包可以为一个或多个,第二子文件用于存储各待下载软件包的runtime,即存储runtime集合,第三子文件用于存储针对第一子文件和第二子文件加密后的公钥文件。
由上述内容可知,第二子文件实际上是一个存储待下载软件包的运行环境数据文件集合的仓库,即,存储runtime集合的仓库,可以根据实际应用场景创建runtime集合的仓库,本发明对此不进行限制。例如,生成ostree仓库,将各待下载软件包对应的runtime导入ostree仓库中。
在创建目标文件、目标文件下的第一子文件、第二子文件和第三子文件后,执行步骤S320,从应用服务器中下载与待下载软件包信息对应的软件包至第一子文件中,即,从应用服务器中下载与待下载软件包信息对应的软件包至第一子目录dir_root/uap中。
在下载软件包至第一子文件中后,继续执行步骤S330,将各已下载软件包对应的运行环境数据文件存储至第二子文件中,即,将已下载软件包对应的runtime存储至第二子目录dir_root/repo中。这样,当各软件包运行时,其依赖于第二子目录中的runtime集合。
由于各已下载软件包对应的runtime中可能存在相同的环境数据,那么为了减少runtime占用过多内存资源,在一个实施方式中,对各已下载软件包对应的运行环境数据文件进行去重处理,并存储至第二子文件中。可以根据实际应用场景设置去重的具体实现方式,本发明对此不进行限制。例如,通过唯一哈希值的方式去重,具体地:
获取各已下载软件包对应的运行环境数据文件,计算各运行环境数据文件的唯一哈希值,去除重复哈希值对应的运行环境数据文件,以对各已下载软件包对应的运行环境数据文件进行去重处理。对软件包的runtime进行去重处理后,缩小第二子文件中的runtime集合的大小,从而减少内存资源的占用,提高磁盘使用率,相当于提高了系统性能。
在将第一子文件和第二子文件中存储数据后,为了防止在离线包分发过程中存在被注入病毒或被恶意篡改的风险,威胁安装该离线包的操作系统的安全性,在步骤S340中,对存储数据的第一子文件和第二子文件进行加密处理,分别得到第一加密文件和第二加密文件,并将第一加密文件和第二加密文件存储至第三子文件中。
通过对存储已下载软件包的文件和存储各软件包运行时所需的运行环境数据进行加密,可有效防止在离线包分发过程中存在被注入病毒或被恶意篡改的风险,从而保证安装该离线包的操作系统的安全性。
在一个实施方式中,以第二子目录dir_root/repo为例,对存储数据的第一子文件和第二子文件进行加密处理,分别得到第一加密文件和第二加密文件的过程包括:对存储已下载软件包的第一子文件进行签名,生成第一公钥文件(即第一加密文件),压缩存储runtime集合的第二子文件,得到压缩后的第二子文件,即得到repo.rar包,对repo.rar包进行签名,生成第二公钥文件(即第二加密文件)。上述压缩存储runtime集合的压缩方式可以根据实际应用场景进行设置,本发明对此不进行限制。例如,可以通过tar无压缩率的压缩方式。
在一个实施方式中,上述对第一子文件和压缩后的第二子文件(即repo.rar包)进行签名的过程包括:获取数字证书和数字证书的私钥文件,该数字证书是从CA机构申请的。通过加密算法计算第一子文件或repo.rar包的信息摘要,通过数字证书的私钥文件加密信息摘要,将数字证书和加密后的信息摘要存储至第一公钥文件或第二公钥文件中。加密算法可以为RSA加密算法、AES加密算法等,本发明对此不进行限制。
根据本发明的一个实施例,上述的公钥文件内容如下:
----BEGIN PKCS7-----
MIIaQgYJKoZIhvcNAQcCoIIaMzCCGi8CAQExGTAKBggqgRzPVQGDETALBglghkgB
ZQMEAgEwNAYJKoEch4QeCgkBoCcwJQIBAQQgoQX13nzqAAG/kCiplGahgSMhDrA2
ElQpxXOFnn+P/pSgggUlMIIFITCCAwmgAwIBAgIRAN+cne8iU56J2LHce+mfWa8w
DQYJKoZIhvcNAQELBQAwQzELMAkGA1UEBhMCQ04xDDAKBgNVBAoTA1VPUzEmMCQG
A1UEAxMdVU9TIERldmVsb3BlciBUZXN0aW5nIFJvb3QgQ0EwHhcNMjEwMTIyMDMz
MjM5WhcNMjIwMTIyMDMzMjM5WjA7MQswCQYDVQQGEwJDTjEMMAoGA1UEChMDVU9T
MR4wHAYDVQQDExVVT1MgRGV2ZWxvcGVyIFRlc3RpbmcwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQCz7ojdBDH9RkDRoBTt7dLrO46J0qb/NdsPyceF9IPG
+yCd4H6P5EO6hqvrhKThDvayLs4webxLTPLVdeeaywPyElBEAgafU00uYY/1Egtg
SaRYOgz6Au3xukkfB4F7iI2bynVRD6kcAX0TU4nGzP53WNGxdt3wCftbasB51LJT
VJT3feRq2T34MjOKvPk4RMbhYWI2+CKa7HJOpagJq4snYnW+P46rhPN9f4wki/M8
476hRDeI9nxv1rmjtFF2yQWJCGauwCF1vEgOqvfxtWerJwjNE9j8AJoKJ1D36Lk/
ghdWBoNt8DaGF62rwA4BtpsOLrnYRqXgQ1bGTTa0kfP9AgMBAAGjggEWMIIBEjAO
BgNVHQ8BAf8EBAMCBLAwDAYDVR0TAQH/BAIwADAZBgNVHQ4EEgQQDyGTiGCnm1Ob
+IUsWppwsjAbBgNVHSMEFDASgBBYZSS9YPXB3f23bpByLgmfMBcGA1UdIAQQMA4w
DAYKKoEch4QeCQgBATBPBgkqgRyHhB4KCAEEQiJmNDM4ZjIyY2E1OThjYWY3ZWZh
M2Q2OTU3YmFhNjdjNmQ2NmViYWQyZTBlMzVkYjE1NTVjYzBiNjcwN2JkZTVhIjBQ
BgoqgRyHhB4JCAEBBEIiZjQzOGYyMmNhNTk4Y2FmN2VmYTNkNjk1N2JhYTY3YzZk
NjZlYmFkMmUwZTM1ZGIxNTU1Y2MwYjY3MDdiZGU1YSIwDQYJKoZIhvcNAQELBQAD
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
7hg4taQtCBjwrJqCzBEHthFv+pstFD4xmyFKQ1PvNG3oLBK7BeGPoD/ee88U5xGK
tZXDMV1MnM/T69xUriUymlEr0l0zFzs/+gplB/qodlD8YCDsfKM2wd7RU/Borlja
R7pGbIrIRwIDAQABo4IBSTCCAUUwDgYDVR0PAQH/BAQDAgEGMBMGA1UdJQQMMAoG
CCsGAQUFBwMIMBIGA1UdEwEB/wQIMAYBAf8CAQAwLAYDVR0fBCUwIzAhoB+gHYYb
aHR0cDovL2NybC51b3NjYS5jbi91b3MuY3JsMFkGCCsGAQUFBwEBBE0wSzAgBggr
BgEFBQcwAYYUaHR0cDovL29jc3AudW9zY2EuY24wJwYIKwYBBQUHMAKGG2h0dHA6
Ly9haWEudW9zY2EuY24vdW9zLmNlcjAdBgNVHQ4EFgQUOKV8+EJXTXhB9oHCjzU8
Kzv21ecwHwYDVR0jBBgwFoAUvx0yF8bjvDKZOPdLKsRo3xWYiDkwQQYDVR0gBDow
ODA2BgkqgRyHhB4JBAEwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy51b3NjYS5j
bi9wb2xpY3kvMA0GCSqGSIb3DQEBCwUAA4ICAQBfS14+rgoqNuO28xouyZpJ3zNP
dnGJ5kaHtD5eZWGvWTlU5qqzAL3le7K/35hhr626dBmdinHiEk4edGFzYiAN7HUS
Dq65JOvytprUTiwawwSWKjc842/NdtQiBmMZ4BOiEU2P+DdL2zzcZGAV+yPeiqQG
dcvjP7zAiAekngvYb/V80IjR70v3V6jFWXYc6tMhO7NGbF0tDr0n1kp1ZQNKjSnp
eMRiYGq/bHDCgmDl3oGXCyWRPIvEgjJG+MeWDgPnDtxLQraH2k6D3NJy0jams7mk
cR7zVqjOi8MY5brbcTztTuirIuVRLwussAOIHnRXqWrn9WVtckQ81ziUvEZA4E+r
SX79pA8EBH8hLjnxUay/ckCjjZXA8e97LxlKVLAwCTEhxPVpElww2diVRF9USLZn
3ZerHmM2lLWOLrF47AYH/DY31GX0ALXyNX4QRm3WN0aiMtHSY3yi3sVgaOAHhV8H
3XUvGT3c61IO3AdXlosqZves9vYiWoOLG8pA3SgMaZLv/DZnPHKlzbwOJq8aG0MB
s5rCEPh2+6wYNc5o/8k0to+B+V1nDbToHitigKHtsjYntCa2U3leuUSoZA4WVt83
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
7iB0aTNA
-----END PKCS7-----
在将第一公钥文件和第二公钥文件存储至第三子文件中后,相当于在目标文件中存储数据后,继续执行步骤S350,压缩已存储数据的目标文件,得到离线包。在生成离线包后,继续执行步骤S360,将离线包存储至存储介质中。
假设离线包名称为UAB.squashfs,离线包UAB.squashf中包括第一子文件、第二子文件和第三子文件,第一子文件名称为uap、第二子文件名称为repo.rar、第三子文件名称为sign,那么此时的离线包如图4所示。图4中第一子文件uap中的org.deepin.browser-5.11-1-x86_64.uap即为一个软件包标识,第二子文件repo.rar中的runtime即为各软件包运行时依赖的运行环境数据文件集合,第三子文件sign中的“UOS签名公钥文件”即为第一公钥文件和第二公钥文件。
由于本发明的软件包与deb包的一个区别在于,未在开发软件包的过程中配置压缩参数,那么就可以通过统一的压缩方式对个已下载软件包进行压缩,即可以通过预设压缩方式统一对已存储数据的目标文件进行压缩,得到离线包,相当于统一离线包的压缩格式。这样,在压缩、解压都可通过统一的压缩方式实现,而不需要根据各软件包预先配置的压缩方式分别进行压缩,在解压时也是采用统一方式进行解压,操作过程简便,压缩和解压方式对于制作压缩包的用户而言是透明的,提升易用性。
上述的压缩方式可以根据实际应用场景进行设置,本发明对此不进行限制。例如,通过squashfs工具压缩。
至此,基于步骤S310至步骤S360即可完成压缩包的制作。每当用户需要制作压缩包时,均需执行步骤S310至步骤S360。
根据本发明的一个实施例,方法300的关键性代码示例如下:
dir_root/
├── sign
└── uap
dir_root/
├── sign
│ ├── org.deepin.browser-5.11-1-x86_64.uap.sign
│ └── org.deepin.browser-5.11-2-x86_64.uap.sign
└── uap
├── org.deepin.browser-5.11-1-x86_64.uap
└── org.deepin.browser-5.11-2-x86_64.uap
dir_root/
├── repo.tar
├── sign
│ ├── org.deepin.browser-5.11-1-x86_64.uap.sign
│ ├── org.deepin.browser-5.11-2-x86_64.uap.sign
│ └── repo.tar.sign
└── uap
├── org.deepin.browser-5.11-1-x86_64.uap
└── org.deepin.browser-5.11-2-x86_64.uap
$ ls
uab.squashfs
由上述内容可知,本发明提供的压缩包制作方法,每当监测到制作离线包的指令时,创建目标文件、目标文件下的第一子文件、第二子文件和第三子文件,下载与待下载软件包标识对应的软件包至第一子文件中,将各已下载软件包对应的运行时所需要的运行环境数据文件存储至第二子文件中,并对存储数据的第一子文件和第二子文件进行加密处理,分别得到第一加密文件和第二加密文件,并将第一加密文件和第二加密文件存储至第三子文件中,最后通过统一的压缩方式压缩已存储数据的目标文件,得到离线包。
由于软件包标识包括软件包名称与软件包版本号,即使软件包名称相同,但是版本号不同,因此同一软件包的不同版本软件包对应的标识也是不同的,从而可以实现将同一软件包的不同版本软件包打包于一个压缩包中。这样,针对同一软件包的不同版本软件包只需制作一个压缩包即可,而无需制作多个软件包,实现同一软件包不同版本的批量分发,大大节约工作量,为制作压缩包的用户提供了便利。
此外,本发明中的各软件包会对应一个运行时需要的runime,软件包的运行仅依赖于其对应的runtime,而不是类似于deb包依赖于其他软件包。这样,可以克服软件包之间的依赖性,从而不会出现安装、升级的软件包与系统中的已安装软件包存在冲突的情况,也就不会导致软件包管理工具服务状态异常,进而不会破坏操作系统,提高了操作系统的安全性。
并且,本发明中可以采用统一的压缩方式压缩软件包,而不需要根据预先配置的压缩方式分别进行压缩,在解压时也是采用统一方式进行解压,操作过程简便。
另外,本发明通过对存储已下载软件包的文件和存储各软件包运行时所需的运行环境数据进行加密,可有效防止在离线包分发过程中存在被注入病毒或被恶意篡改的风险,从而保证安装该离线包的操作系统的安全性。
图5示出了根据本发明一个实施例的软件包安装方法500的流程图。方法500适于在计算设备200(例如图2所示的计算设备200)中执行。在一个实施方式中,可以在运行于计算设备的操作系统中集成一个插件来执行方法500,本发明对此不进行限制。需要说明的是,方法500中的软件包,是经过方法300制作的离线包中的任一软件包。如图5所示,方法500包括步骤S510至步骤S550。
首先用户从存储介质中获取离线包,并将离线包拷贝到计算设备中后,执行步骤S510,对离线包进行解压操作,以得到解压后的离线包对应的目标文件。此时的解压方式与压缩方式相同,例如在制作离线包时通过squashfs工具进行统一压缩,那么在解压时仍通过squashfs工具进行统一解压,而无需依据预先设置的压缩参数对各软件包进行解压,提高解压效率。
在得到解压后的目标文件后,执行步骤S520,从目标文件的第三子文件中获取第一加密文件和第二加密文件,即从目标文件的第三子文件中获取第一公钥文件和第二公钥文件。
并继续执行步骤S530,通过第一加密文件对目标文件下的、存储软件包的第一文件进行解密,即,通过第一公钥文件对存储软件包集合的第一文件进行解密,软件包集合中包括多个软件包。继续执行步骤S540,通过第二加密文件对目标文件下的、存储软件包运行环境数据文件集合的第二文件进行解密,即通过第二公钥文件对存储软件包运行时所需要的运行环境数据文件集合的第二文件进行解密,运行环境数据文件集合即为与各软件包运行时所需要的运行环境数据文件的集合。
在一个实施方式中,通过第一公钥文件解密第一文件或通过第二公钥文件解密第二文件的工作过程具体为:
通过数字证书的公钥对加密后的摘要信息进行解密,得到第一子文件或第二子文件的信息摘要,作为第一信息摘要,继续通过加密算法hash(哈希)计算第一子文件或第二子文件的信息摘要,作为第二信息摘要,判断第一信息摘要与第二信息摘要是否相等,若是,加密后的第一子文件或第二子文件在压缩包分发过程中未被注入病毒或恶意篡改。即,保证了安装软件包的安全性,从而保证了安装该软件包的操作系统的安全性。
当用户触发第一文件中的目标软件包时,例如双击第一文件中的目标软件包时,生成安装第一文件中的目标软件包的指令,当检测到安装第一文件中的目标软件包的指令时,执行步骤S550,通过第二文件中的软件包运行环境数据文件集合安装并运行目标软件包。
至此,通过步骤S510至步骤S550便完成了安装压缩包中任一软件包。每当用户需要安装软件包时,均需执行步骤S510至步骤S550。
由上述内容可知,根据本发明的软件包安装方法,由于其依赖于方法300制作的离线包中的任一软件包,各软件包运行仅依赖于运行环境数据文件集合,而不依赖于各软件包,因此软件包之间的依赖性大大降低,这就使得在安装并运行软件包时,不会出现安装、升级的软件包与系统中的已安装软件包存在冲突的情况,也就不会导致软件包管理工具服务状态异常,进而不会破坏操作系统,提高了操作系统的安全性。
此外,由于方法300制作的离线包采用统一的压缩方式进行压缩,那么在解压时仍通过统一的解压方式进行解压,而无需依据预先设置的压缩参数对各软件包进行解压,提高解压效率,操作过程简便。
并且,由于方法300制作的离线包对软件包和软件包运行时所需要的运行环境数据文件集合进行了加密操作,这可有效防止分发离线包过程中软件包或运行环境数据文件集合被注入病毒或恶意篡改,保证了安装软件包的安全性,从而保证了安装该软件包的操作系统的安全性。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的离线包生成方法、软件包安装方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (10)
1.一种离线包生成方法,适于在计算设备中执行,所述计算设备与应用服务器通信连接,所述方法包括:
当监测到制作离线包的指令时,创建目标文件,所述目标文件包括第一子文件、第二子文件和第三子文件,其中,所述指令中包括待下载软件包信息,所述待下载软件包信息中至少包括一个软件包的信息;
从所述应用服务器中下载与所述待下载软件包信息对应的软件包至所述第一子文件中,其中,任一软件包对应一个运行环境数据文件,各软件包的运行依赖于其对应的运行环境数据文件;
将各已下载软件包对应的运行环境数据文件存储至所述第二子文件中;
对存储数据的第一子文件和第二子文件进行加密处理,分别得到第一加密文件和第二加密文件,并将所述第一加密文件和所述第二加密文件存储至所述第三子文件中;
压缩已存储数据的目标文件,得到离线包。
2.如权利要求1所述的方法,其中,所述将各已下载软件包对应的运行环境数据文件存储至所述第二子文件中的步骤包括:
对各已下载软件包对应的运行环境数据文件进行去重处理,并存储至所述第二子文件中。
3.如权利要求2所述的方法,其中,所述对各已下载软件包对应的运行环境数据文件进行去重处理的步骤包括:
获取各已下载软件包对应的运行环境数据文件;
计算各运行环境数据文件的哈希值;
去除重复哈希值对应的运行环境数据文件,以对各已下载软件包对应的运行环境数据文件进行去重处理。
4.如权利要求1至3中任一项所述的方法,其中,对存储数据的第一子文件和第二子文件进行加密处理,分别得到第一加密文件和第二加密文件的步骤包括:
对存储数据的第一子文件进行签名,生成第一加密文件;
压缩存储数据的第二子文件,得到压缩后的第二子文件;
对压缩后的第二子文件进行签名,生成第二加密文件。
5.如权利要求4所述的方法,其中,所述对存储数据的第一子文件进行签名生成第一加密文件,或对压缩后的第二子文件进行签名生成第二加密文件的步骤包括:
获取数字证书和数字证书的私钥文件;
通过加密算法计算目标子文件的信息摘要,其中,所述目标子文件包括第一子文件或压缩后的第二子文件;
通过所述数字证书的私钥文件加密所述信息摘要;
将所述数字证书和加密后的信息摘要存储至目标加密文件,其中,所述目标加密文件包括第一加密文件或第二加密文件。
6.如权利要求1至3中任一项所述的方法,其中,所述待下载软件包信息包括软件包标识,所述软件包标识包括软件包名称和版本号,所述待下载软件包信息为预先配置的。
7.如权利要求1至3中任一项所述的方法,其中,所述已下载软件包在开发阶段未配置压缩参数,所述压缩已存储数据的目标文件,得到离线包的步骤包括:
通过预设压缩方式统一对已存储数据的目标文件进行压缩处理,得到离线包,以统一离线包的压缩格式。
8.一种软件包安装方法,在计算设备中执行,所述软件包为根据权利要求1至7中任一项所述的离线包生成方法生成的压缩包中的任一软件包,所述方法包括:
对离线包进行解压操作,以得到解压后的离线包对应的目标文件;
从所述目标文件的第三子文件中获取第一加密文件和第二加密文件;
通过第一加密文件对第一文件进行解密,所述第一文件为所述目标文件下的、存储软件包集合的文件;
通过第二加密文件对第二文件进行解密,所述第二文件为所述目标文件下的、存储软件包运行环境数据文件集合的文件;
当检测到安装所述第一文件中的目标软件包的指令时,通过所述第二文件中的软件包运行环境数据文件集合安装并运行目标软件包,所述目标软件包为所述软件包集合中的任一个。
9. 一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-8中任一项所述方法的指令。
10.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-8中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210665930.3A CN114756255B (zh) | 2022-06-14 | 2022-06-14 | 一种离线包生成方法、一种软件包安装方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210665930.3A CN114756255B (zh) | 2022-06-14 | 2022-06-14 | 一种离线包生成方法、一种软件包安装方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114756255A true CN114756255A (zh) | 2022-07-15 |
CN114756255B CN114756255B (zh) | 2022-09-27 |
Family
ID=82336845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210665930.3A Active CN114756255B (zh) | 2022-06-14 | 2022-06-14 | 一种离线包生成方法、一种软件包安装方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114756255B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048585A (zh) * | 2023-02-09 | 2023-05-02 | 国核自仪系统工程有限公司 | 工控安全防护系统及其软件更新方法、装置、设备和介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160283218A1 (en) * | 2013-09-18 | 2016-09-29 | G-Cloud Technology Ltd | Method for distributing large-sized Linux software packages |
CN108519874A (zh) * | 2017-02-27 | 2018-09-11 | 腾讯科技(深圳)有限公司 | Python项目包的生成方法及装置 |
CN112148297A (zh) * | 2020-08-26 | 2020-12-29 | 广州市保伦电子有限公司 | 一种服务器智能加密打包方法和装置 |
CN113391826A (zh) * | 2021-08-16 | 2021-09-14 | 统信软件技术有限公司 | 一种定制镜像中软件包依赖的解决方法 |
CN113849845A (zh) * | 2021-11-29 | 2021-12-28 | 统信软件技术有限公司 | 对插件文件打包的方法和装置、计算设备和可读存储介质 |
CN114020324A (zh) * | 2021-09-29 | 2022-02-08 | 中孚安全技术有限公司 | 一种基于运行时库的可执行文件打包发布方法及系统 |
CN114064111A (zh) * | 2021-11-08 | 2022-02-18 | 上海芯翌智能科技有限公司 | 一种部署包的版本信息的管理方法及设备 |
CN114443065A (zh) * | 2021-12-20 | 2022-05-06 | 北京网神洞鉴科技有限公司 | 平台部署方法、装置、电子设备和存储介质 |
-
2022
- 2022-06-14 CN CN202210665930.3A patent/CN114756255B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160283218A1 (en) * | 2013-09-18 | 2016-09-29 | G-Cloud Technology Ltd | Method for distributing large-sized Linux software packages |
CN108519874A (zh) * | 2017-02-27 | 2018-09-11 | 腾讯科技(深圳)有限公司 | Python项目包的生成方法及装置 |
CN112148297A (zh) * | 2020-08-26 | 2020-12-29 | 广州市保伦电子有限公司 | 一种服务器智能加密打包方法和装置 |
CN113391826A (zh) * | 2021-08-16 | 2021-09-14 | 统信软件技术有限公司 | 一种定制镜像中软件包依赖的解决方法 |
CN114020324A (zh) * | 2021-09-29 | 2022-02-08 | 中孚安全技术有限公司 | 一种基于运行时库的可执行文件打包发布方法及系统 |
CN114064111A (zh) * | 2021-11-08 | 2022-02-18 | 上海芯翌智能科技有限公司 | 一种部署包的版本信息的管理方法及设备 |
CN113849845A (zh) * | 2021-11-29 | 2021-12-28 | 统信软件技术有限公司 | 对插件文件打包的方法和装置、计算设备和可读存储介质 |
CN114443065A (zh) * | 2021-12-20 | 2022-05-06 | 北京网神洞鉴科技有限公司 | 平台部署方法、装置、电子设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048585A (zh) * | 2023-02-09 | 2023-05-02 | 国核自仪系统工程有限公司 | 工控安全防护系统及其软件更新方法、装置、设备和介质 |
CN116048585B (zh) * | 2023-02-09 | 2023-08-25 | 国核自仪系统工程有限公司 | 工控安全防护系统及其软件更新方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114756255B (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8447970B2 (en) | Securing out-of-band messages | |
US6766353B1 (en) | Method for authenticating a JAVA archive (JAR) for portable devices | |
CN112507328B (zh) | 一种文件签名方法、计算设备及存储介质 | |
CN109862099B (zh) | 一种升级校验方法、装置、终端及系统 | |
US8214646B2 (en) | Bundle verification | |
EP2547135A2 (en) | Apparatus and method for preventing copying of terminal unique information in portable terminal | |
US20060059350A1 (en) | Strong names | |
CN109460247B (zh) | 软件包升级方法、软件客户端、存储介质及装置 | |
US20140059341A1 (en) | Creating and accessing encrypted web based content in hybrid applications | |
CN114756255B (zh) | 一种离线包生成方法、一种软件包安装方法 | |
CN111814131B (zh) | 一种设备注册和配置管理的方法和装置 | |
CN112346759A (zh) | 一种固件升级方法、装置及计算机可读存储介质 | |
CN111200593A (zh) | 应用登录方法、装置和电子设备 | |
EP3764224B1 (en) | Resource permission processing method and apparatus, and storage medium and chip | |
US20120213370A1 (en) | Secure management and personalization of unique code signing keys | |
US20230376600A1 (en) | Method and system for upgrading firmware of vehicle infotainment system | |
CN112311528A (zh) | 一种基于国密算法的数据安全传输方法 | |
CN113536361B (zh) | 一种可信基准库的实现方法、装置及计算设备 | |
CN111400771A (zh) | 目标分区的校验方法及装置、存储介质、计算机设备 | |
CN113434824B (zh) | 一种软件服务授权管理方法、装置、设备及存储介质 | |
CN112528239A (zh) | 软件自动授权的方法和装置 | |
WO2023279698A1 (zh) | 数据传输方法、系统、计算机设备及存储介质 | |
CN101888623B (zh) | 一种基于安全服务的移动网络安全防护方法 | |
CN113254965B (zh) | 一种软件包加密方法、计算设备及储存介质 | |
CN113139197B (zh) | 一种项目验签方法、装置和电子设备 |
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 |