CN114138317A - 一种软件增量升级的方法和系统 - Google Patents

一种软件增量升级的方法和系统 Download PDF

Info

Publication number
CN114138317A
CN114138317A CN202111555789.3A CN202111555789A CN114138317A CN 114138317 A CN114138317 A CN 114138317A CN 202111555789 A CN202111555789 A CN 202111555789A CN 114138317 A CN114138317 A CN 114138317A
Authority
CN
China
Prior art keywords
upgrading
client
installation package
package
upgrade
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
Application number
CN202111555789.3A
Other languages
English (en)
Inventor
梅纲
付晨玺
高东升
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Dream Database Co ltd
Original Assignee
Wuhan Dream Database Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Dream Database Co ltd filed Critical Wuhan Dream Database Co ltd
Priority to CN202111555789.3A priority Critical patent/CN114138317A/zh
Publication of CN114138317A publication Critical patent/CN114138317A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种软件增量升级的方法和系统,该方法包括:客户端向服务器端发送安装包的升级请求信息;服务器端接收所述升级请求信息并根据所述升级请求信息生成增量升级包,并对所述增量升级包进行加密,将所述加密后的增量升级包发送给客户端;客户端根据所述加密后的增量升级包进行增量升级。本发明的方法解决了软件升级过程中升级包体积过大的问题,减小了升级包的体积,节约了系统空间,提高了升级速度;同时,对增量升级包进行了加密处理,实现了安全的增量升级过程。

Description

一种软件增量升级的方法和系统
技术领域
本发明涉及软件升级技术领域,尤其涉及一种软件增量升级的方法和系统。
背景技术
随着软件体积的不断增大,以及软件版本发布的不断更迭,用户的升级成了一个问题。绝大多数软件厂商也意识到升级包过大带来的系统空间挤占和替换整个软件导致升级步骤繁琐的问题。因此在升级时,如何减少升级包的体积,缩短升级时间,成了亟待解决的问题。
现有的软件版本的升级方法有全量升级和增量升级两种;全量升级是指整个安装包的覆盖升级,当客户端检测到服务器上有新版本上传后,即从服务器下载该新版本,进而判断该新版本的版本号与自身已安装的旧版本的版本号是否相同;如果版本号相同则客户端删除该新版本,否则,安装该新版本。增量升级是指下载新旧版本安装包的差异部分即增量升级包,将该增量升级包与旧版本安装包合并实现升级。
然而,由于安装包均含多个子文件,现有的增量升级过程主要通过直接比较法得到增量文件,升级效率仍然比较低。同时,非法用户很容易篡改增量升级包,客户端很容易受到攻击;如何避免信息泄露,提高软件升级过程的安全性,也是软件升级过程中需要解决的关键问题。
发明内容
有鉴于此,有必要提供一种软件增量升级方法和系统,用以解决软件升级过程中升级包体积过大、安全性不高的问题。
为了解决上述问题,本发明提供一种软件增量升级方法,应用于服务器端和客户端,包括:
客户端向服务器端发送安装包的升级请求信息;
服务器端接收所述升级请求信息并根据所述升级请求信息生成增量升级包,并对所述增量升级包进行加密,将所述加密后的增量升级包发送给客户端;
客户端根据所述加密后的增量升级包进行增量升级。
进一步地,客户端向服务器端发送升级请求信息之前,还包括:
客户端获取用户选择的请求升级的安装包的版本号;
客户端将所述请求升级的安装包版本号和客户端当前安装包的版本号进行对比;
如果所述客户端当前安装包版本号低于所述请求升级的安装包版本号,则提示用户接受升级请求;如果所述客户端当前安装包版本号不低于所述请求升级的安装包版本号,则提示用户已是最新版本。
进一步地,所述安装包包括:安装包运行所需要的文件、安装包的配置信息和安装包的密钥;所述安装包密钥包括一对相互匹配的公钥和私钥。
进一步地,所述升级请求信息包括:客户端当前安装包的版本号、客户端当前安装包的公钥、客户端当前安装包的配置信息和请求升级的安装包的版本号。
进一步地,服务器端根据所述升级请求信息生成增量升级包包括:
服务器端判断客户端当前安装包版本号在服务器安装包清单库中对应的安装包公钥是否与所述客户端当前安装包的公钥匹配;
如果不匹配,则服务器端向客户端发送升级失败的提示;
如果匹配,则服务器端根据所述客户端当前安装包的配置信息和所述请求升级的安装包的版本号生成增量升级包。
进一步地,所述安装包的配置信息包括:安装包的版本信息、安装包内每个文件的标识信息和安装包内每个文件的参数信息。
进一步地,所述文件标识信息包括变量ismodule,所述文件参数信息包括变量fileRelativePath、module和md5Value;
当ismodule=1时,表示所述文件的类别为模块标识,fileRelativePath表示所述模块的名称,md5Value表示所述模块的特征值;
当ismodule=0时,表示所述文件的类别为安装文件,fileRelativePath表示所述安装文件的客户端和服务器的相对路径,module表示所述安装文件所属的模块的名称,md5Value表示所述安装文件的md5值。
进一步地,服务器端根据所述升级请求信息生成增量升级包,包括:
对比所述客户端当前安装包和请求升级的安装包中模块的特征值;
如果所述模块的特征值相等,则不再比较所述客户端当前安装包和请求升级安装包中属于所述模块的安装文件的md5值;
如果所述模块的特征值不相等,则分别记录下客户端当前安装包和请求升级安装包的模块的名称,在服务器获取属于所述模块的安装文件的客户端和服务器的相对路径以及安装文件的md5值;根据所述客户端和服务器的相对路径以及安装文件的md5值生成增量升级包。
进一步地,服务器端对所述增量升级包进行加密包括:服务器端利用所述客户端当前安装包的公钥对所述增量升级包进行加密;
客户端根据所述加密后的增量升级包进行增量升级包括:客户端利用客户端当前安装包的私钥对所述增量升级包进行解密;如果解密成功,则将客户端当前安装包进行备份,然后解析所述增量升级包。
本发明还提供一种软件增量升级的系统,包括:
客户端,用于向服务器端发送升级请求信息、接收服务器端发送的增量升级包、根据加密后的增量升级包进行增量升级;
服务器端,用于接收客户端的升级请求信息、根据所述升级请求信息生成增量升级包,并对所述增量升级包进行加密,将所述加密后的增量升级包发送给客户端。
与现有技术相比,本发明的有益效果包括:(1)本发明的方法在软件升级时通过将新旧软件包的文件分成不同的模块进行比较,对比新旧文件的差异得到增量升级包,减小了安装包的体积,节约了系统空间,提升了升级的速度;(2)本发明的方法通过对增量升级包进行了加密处理,解决了增量升级过程中的安全性问题,实现了安全的增量升级过程;(3)在本发明的方法中,用户可以自行选择需要升级的版本,选择比客户端当前版本高的任一版本即可生成不同的增量升级包,实现增量升级。
附图说明
图1为本发明提供的一种软件增量升级方法一实施例的流程示意图;
图2为本发明提供的一种软件增量升级方法客户端与用户交互的实施例流程示意图;
图3为本发明提供的一种软件增量升级方法中客户端与服务器端交互的流程示意图;
图4(a)为本发明提供的一种软件增量升级方法中服务器生成增量升级包步骤S401-S405的流程示意图;
图4(b)为本发明提供的一种软件增量升级方法中服务器生成增量升级包步骤S406-S411的流程示意图;
图4(c)为本发明提供的一种软件增量升级方法中服务器生成增量升级包步骤S412-S415的流程示意图;
图5为本发明提供的软件增量升级系统一实施例的场景示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
本发明提供了一种软件增量升级的方法和系统,以下分别进行详细说明。
本发明实施例提供了一种软件增量升级方法,应用于服务器端和客户端,其流程示意图如图1所示,所述软件增量升级包括:
步骤S101、客户端向服务器端发送安装包的升级请求信息;
步骤S102、服务器端接收所述升级请求信息并根据所述升级请求信息生成增量升级包,并对所述增量升级包进行加密,将所述加密后的增量升级包发送给客户端;
步骤S103、客户端根据所述加密后的增量升级包进行增量升级。
与现有技术相比,本实施例提供的软件增量升级方法,首先,客户端向服务器端发送安装包的升级请求信息;然后,服务器端接收所述升级请求信息并根据所述升级请求信息生成增量升级包,并对所述增量升级包进行加密,将所述加密后的增量升级包发送给客户端;最后,客户端根据所述加密后的增量升级包进行增量升级。本发明的方法解决了软件升级过程中升级包体积过大的问题,摆脱了传统升级过程中需要替换整个升级包的弊端,极大地减小了升级包的体积,节约了系统空间,提升了升级的速度,同时对增量升级包进行了加密处理,实现了安全的增量升级过程。
作为优选的实施例,如图2所示,在步骤S101中客户端向服务器端发送升级请求信息之前,还包括:
步骤S201:客户端获取用户选择的请求升级的安装包的版本号;
步骤S202:客户端将所述请求升级的安装包版本号和客户端当前安装包的版本号进行对比,判断所述客户端当前安装包的版本号是否低于请求升级的安装包版本号;
步骤S203:如果所述客户端当前安装包版本号低于所述请求升级的安装包版本号,则提示用户接受升级请求;
步骤S204:如果所述客户端当前安装包版本号不低于所述请求升级的安装包版本号,则提示用户已是最新版本。
作为优选的实施例,步骤S101所述的安装包包括:安装包运行所需要的文件、安装包的配置信息和安装包的密钥;所述安装包密钥包括一对相互匹配的公钥和私钥。因此,一个完整的安装包需要包括以下内容:
(1)安装包运行所需要的所有文件;
(2)安装包的配置信息;
(3)安装包的密钥(包括一对相互匹配的公钥和私钥)。
作为一个具体的实施例,每个安装包都包含一对密钥,其中public.key为公钥,private.key为私钥,每个版本的安装包公钥和私钥都是不同的。所有安装包的版本号和该安装包对应的密钥均存放在服务器端的安装包清单库中。
作为优选的实施例,步骤S101中,所述升级请求信息包括:客户端当前安装包的版本号、客户端当前安装包的公钥、客户端当前安装包的配置信息和请求升级的安装包的版本号;
作为一个具体的实施例,当客户端检测到客户端当前安装包版本号低于所述请求升级的安装包版本号时,客户端提示用户接受升级请求,并向服务器端发送以下升级请求信息:
(1)客户端当前安装包的版本号;
(2)客户端当前安装包的公钥public.key;
(3)客户端当前安装包的配置信息;
(4)请求升级的安装包的版本号。
作为优选的实施例,在步骤S102中,服务器端根据所述升级请求信息生成增量升级包,包括:
服务器端判断客户端当前安装包版本号在服务器安装包清单库中对应的安装包公钥是否与所述客户端当前安装包的公钥匹配;
如果不匹配,则服务器端向客户端发送升级失败的提示;
如果匹配,则服务器端根据所述客户端当前安装包的配置信息和所述请求升级的安装包的版本号生成增量升级包。
作为一个具体的实施例,下面结合图3对实施例中软件增量升级的流程做详细说明。
步骤S301:客户端向服务器端发送升级请求信息,所述请求信息包括:(1)客户端当前安装包的版本号;(2)客户端当前安装包的公钥public.key;(3)客户端当前安装包的配置信息;(4)请求升级的安装包的版本号;
步骤S302:服务器端接收所述升级请求信息;
步骤S303:服务器判断客户端当前安装包的版本号在服务器安装包清单库中对应的公钥与接收到的客户端安装包公钥是否匹配;如果不匹配,进入步骤S304;如果匹配,进入步骤S305;
步骤S304:服务器端向客户端发送升级失败的提示,结束流程;
步骤S305:服务器端获取安装包清单库中所述升级请求安装包的配置信息;
步骤S306:服务器端根据所述请求升级的安装包配置信息与客户端当前安装包的配置信息生成增量升级包;
步骤S307:服务器利用接收到的客户端当前安装包的公钥对所述增量升级包进行加密,生成加密后的增量升级包;
步骤S308:客户端接收所述加密后的增量升级包,并用客户端当前安装包的私钥进行解密;
步骤S309:客户端判断是否解密成功;如果不成功,进入步骤S310;如果成功,进入步骤S311;
步骤S310:客户端提示用户升级失败,结束流程;
步骤S311:客户端将当前安装包进行备份,解析接收到的增量升级包;
步骤S312:客户端重启系统,判断是否升级成功,如果未成功,则进入步骤S313;如果成功,则进入步骤S314;
步骤S313:客户端进行从备份文件中恢复原系统,并提示用户升级失败;
步骤S314:提示用户升级成功。
作为优选的实施例,所述安装包的配置信息包括:安装包的版本信息、安装包内每个文件的标识信息和安装包内每个文件的参数信息。
作为一个具体的实施例,安装包内的文件被划分为模块标识和安装文件;所述安装文件被划分到不同的模块,每个模块都有对应的特征值,当属于某一模块的安装文件的内容发生改变时,该模块的特征值也会发生改变。
作为一个具体的实施例,所述安装包的配置信息以txt文件的形式定义,txt文件的格式如下:
第一行为安装包的版本信息version;
第二行为文件的标识信息和文件参数信息的列的名称,用逗号隔开:fileRelativePath,module,ismodule,md5Value;
从第三行开始,依次填写fileRelativePath、module、ismodule、md5Value的值,直到所有的值都填写完成。
作为优选的实施例,所述文件标识信息包括变量ismodule,所述文件参数信息包括变量fileRelativePath、module和md5Value;
当ismodule=1时,表示所述文件的类别为模块标识,fileRelativePath表示所述模块的名称,md5Value表示所述模块的特征值;
当ismodule=0时,表示所述文件的类别为安装文件,fileRelativePath表示所述安装文件的客户端和服务器的相对路径,module表示所述安装文件所属的模块的名称,md5Value表示所述安装文件的md5值。
作为优选的实施例,步骤S102中,服务器根据所述升级请求信息生成增量升级包,包括:
对比所述客户端当前安装包和请求升级的安装包中模块的特征值;
如果所述模块的特征值相等,则不再比较所述客户端当前安装包和请求升级安装包中属于所述模块的安装文件的md5值;
如果所述模块的特征值不相等,则分别记录下客户端当前安装包和请求升级安装包的模块的名称,在服务器获取属于所述模块的安装文件的客户端和服务器的相对路径以及安装文件的md5值;根据所述客户端和服务器的相对路径以及安装文件的md5值生成增量升级包。
作为一个具体的实施例,参考如图4(a)、图4(b)和图4(c),服务器根据所述升级请求信息生成增量升级包的流程如下:
步骤S401:分别定义文件增加清单、文件删除清单和文件修改清单;
步骤S402:分别读取客户端当前安装包和请求升级的安装包的配置信息,获取ismodule=1的fileRelativePath值和md5Value值;当ismodule的值为1时,表示所述文件的类别为模块标识,fileRelativePath为模块的名称,md5Value为预定义的模块的特征值;
步骤S403:对比客户端当前安装包和请求升级的安装包中每个模块的特征值;判断客户端当前安装包和请求升级的安装包中模块的特征值是否相等;如果特征值相等,则进入步骤S404;如果特征值不相等,则进入步骤S405;
步骤S404:不再比较安装包中属于所述模块的安装文件的md5值,结束流程;
步骤S405:分别记录下客户端当前安装包和请求升级安装包的模块的名称,在服务器获取属于所述模块的安装文件的客户端和服务器的相对路径以及安装文件的md5值;
步骤S406:依次读取在步骤S405中客户端当前安装包中模块特征值不相同的模块的名称,以及属于所述模块的安装文件的客户端和服务器的相对路径;
步骤S407:判断所述客户端当前安装包中安装文件的相对路径在请求升级的安装包的安装文件参数信息中是否存在;如果不存在,则进入步骤S408;如果存在,则进入步骤S409;
步骤S408:将所述文件的相对路径写入文件删除清单,结束流程;
步骤S409:将所述当前安装文件的md5值与请求升级的安装文件中的md5值进行对比;判断当前安装文件的md5值和请求升级的安装文件的md5值是否相等;如果相同,则进入步骤S410;如果不同,则进入步骤S411;
步骤S410:回到步骤S407继续遍历客户端当前安装包中属于该模块的安装文件;
步骤S411:将安装文件的相对路径写入文件修改清单,同时,获取服务器上请求升级安装包的安装文件的内容,并与服务器上存档的客户端当前安装包的安装文件的内容进行比较,得到安装文件修改信息,将所述安装文件修改信息写入到文件修改清单;
步骤S412:依次读取在步骤S405中请求升级的安装包中模块特征值不相同的模块的名称,获取请求升级的安装包中属于所述模块的安装文件的客户端和服务器的相对路径;
步骤S413:判断请求升级的安装包中安装文件的相对路径在客户端当前安装包的安装文件参数信息是否存在;如果存在,则进入步骤S414;如果不存在,进入步骤S415;
步骤S414:返回步骤S413继续遍历请求升级安装包中属于该模块的安装文件;
步骤S415:将该安装文件的相对路径写入文件增加清单。
遍历所有的模块特征值不相同的模块,分别根据文件增加清单、文件修改清单获取服务器上的安装文件,将获取的安装文件与文件增加清单、文件修改清单、文件删除清单以及请求升级的安装包配置信息打包成增量升级包。
通过上述过程,将安装包中的安装文件按模块划分,先对比所属模块的模块特征值,再对比属于该模块的安装文件的md5值,极大的缩短了升级时间,极大的减小了升级包体积,避免用户需要重装完整安装包的繁琐操作,提升了用户体验。
作为优选的实施例,服务器端对所述增量升级包进行加密包括:服务器端利用所述客户端当前安装包的公钥对所述增量升级包进行加密;
客户端根据所述加密后的增量升级包进行增量升级包括:客户端利用客户端当前安装包的私钥对所述增量升级包进行解密;如果解密成功,则将客户端当前安装包进行备份,然后解析所述增量升级包。
作为一个具体的实施例,服务器端将增量升级包打包完成后,通过客户端发送的公钥public.key进行加密,然后将加密后的增量升级包发送给客户端,由此保证了增量升级包传输过程中的安全性;如果解密失败,则提示用户升级失败。
作为一个具体的实施例,客户端解析所述增量升级包,包括以下流程:
步骤S701:分别解析升级包中的文件增加清单、文件修改清单、文件删除清单:
解析文件增加清单,将增加的安装文件拷贝到当前的安装目录下;
解析文件删除清单,删除当前目录下新版本不需要的安装文件;
解析文件修改清单,首先将文件修改清单中的安装文件覆盖当前目录下需要修改的安装文件,再将客户端备份文件中未修改的内容填入已经覆盖的新文件,然后将文件修改清单中文件的修改信息填入覆盖的新文件中;
步骤S702:解析完成后,将增量升级包中的安装包配置信息覆盖客户端当前安装目录下的安装包配置信息;
步骤S703:重启系统,如果系统重启成功,则提示用户升级成功,否则从备份文件中恢复原系统,提示用户升级失败。
本发明实施例提供了一种软件增量升级的系统,图5为本发明提供的软件增量升级方法应用系统一实施例的场景示意图,该系统包括:
服务器501,用于接收客户端的升级请求信息、根据所述升级请求信息生成增量升级包,并对所述增量升级包进行加密,将所述加密后的增量升级包发送给客户端;
客户端502,用于向服务器端发送升级请求信息、接收服务器端发送的增量升级包、根据加密后的增量升级包进行增量升级。
本发明实施例中,该服务器501可以是独立的服务器,也可以是服务器组成的服务器网络或服务器集群,例如,本发明实施例中所描述的服务器501,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云服务器。其中,云服务器由基于云计算(Cloud Computing)的大量计算机或网络服务器构成。
可以理解的是,本发明实施例中所使用的客户端502可以是既包括接收和发射硬件的设备,即具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备。具体的客户端502可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备等,本实施例不限定客户端502的类型。
本领域技术人员可以理解,图5中示出的应用环境,仅仅是与本发明方案一种应用场景,并不构成对本发明方案应用场景的限定,其他的应用环境还可以包括比图5中所示更多或更少的客户端,例如图5中仅示出2个客户端,可以理解的,该软件增量升级方法的应用系统还可以包括一个或多个其他客户端,具体此处不作限定。
另外,如图5所示,该软件增量升级方法的应用系统还可以包括存储器503,用于存储数据,如安装包的版本号、安装包的配置信息等。
需要说明的是,图5所示的软件增量升级的应用系统的场景示意图仅仅是一个示例,本发明实施例描述的软件增量升级方法的应用系统以及场景是为了更加清楚地说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着软件增量升级方法的应用系统的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
本发明公开的一种软件增量升级方法和系统,首先,客户端向服务器端发送安装包的升级请求信息;然后,服务器端接收所述升级请求信息并根据所述升级请求信息生成增量升级包,并对所述增量升级包进行加密,将所述加密后的增量升级包发送给客户端;最后,客户端根据所述加密后的增量升级包进行增量升级。
本发明的方法解决了软件升级过程中升级包体积过大的问题,摆脱了传统升级过程中需要替换整个升级包的弊端,极大减少了升级包的体积,节约了系统空间,提升了升级的速度,同时对增量升级包进行了加密处理,实现了安全的增量升级过程。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种软件增量升级的方法,应用于服务器端和客户端,其特征在于,包括:
客户端向服务器端发送安装包的升级请求信息;
服务器端接收所述升级请求信息并根据所述升级请求信息生成增量升级包,并对所述增量升级包进行加密,将所述加密后的增量升级包发送给客户端;
客户端根据所述加密后的增量升级包进行增量升级。
2.根据权利要求1所述的软件增量升级的方法,其特征在于,客户端向服务器端发送升级请求信息之前,还包括:
客户端获取用户选择的请求升级的安装包的版本号;
客户端将所述请求升级的安装包版本号和客户端当前安装包的版本号进行对比;
如果所述客户端当前安装包版本号低于所述请求升级的安装包版本号,则提示用户接受升级请求;如果所述客户端当前安装包版本号不低于所述请求升级的安装包版本号,则提示用户已是最新版本。
3.根据权利要求1所述的软件增量升级的方法,其特征在于,所述安装包包括:安装包运行所需要的文件、安装包的配置信息和安装包的密钥;所述安装包的密钥包括一对相互匹配的公钥和私钥。
4.根据权利要求3所述的软件增量升级的方法,其特征在于,所述升级请求信息包括:客户端当前安装包的版本号、客户端当前安装包的公钥、客户端当前安装包的配置信息和请求升级的安装包的版本号。
5.根据权利要求3所述的软件增量升级的方法,其特征在于,服务器端根据所述升级请求信息生成增量升级包,包括:
服务器端判断客户端当前安装包版本号在服务器安装包清单库中对应的安装包公钥是否与所述客户端当前安装包的公钥匹配;
如果不匹配,则服务器端向客户端发送升级失败的提示;
如果匹配,则服务器端根据所述客户端当前安装包的配置信息和所述请求升级的安装包的版本号生成增量升级包。
6.根据权利要求3所述的软件增量升级的方法,其特征在于,所述安装包的配置信息包括:安装包的版本信息、安装包内每个文件的标识信息和安装包内每个文件的参数信息。
7.根据权利要求6所述的软件增量升级的方法,其特征在于,所述文件标识信息包括变量ismodule,所述文件参数信息包括变量fileRelativePath、module和md5Value;
当ismodule=1时,表示所述文件的类别为模块标识,fileRelativePath表示所述模块的名称,md5Value表示所述模块的特征值;
当ismodule=0时,表示所述文件的类别为安装文件,fileRelativePath表示所述安装文件的客户端和服务器的相对路径,module表示所述安装文件所属的模块的名称,md5Value表示所述安装文件的md5值。
8.根据权利要求7所述的软件增量升级的方法,其特征在于,服务器端根据所述升级请求信息生成增量升级包,包括:
对比所述客户端当前安装包和请求升级的安装包中模块的特征值;
如果所述模块的特征值相等,则不再比较所述客户端当前安装包和请求升级安装包中属于所述模块的安装文件的md5值;
如果所述模块的特征值不相等,则分别记录下客户端当前安装包和请求升级安装包的模块的名称,在服务器获取属于所述模块的安装文件的客户端和服务器的相对路径以及安装文件的md5值;根据所述客户端和服务器的相对路径以及安装文件的md5值生成增量升级包。
9.根据权利要求3所述的软件增量升级的方法,其特征在于,服务器端对所述增量升级包进行加密包括:服务器端利用所述客户端当前安装包的公钥对所述增量升级包进行加密;
客户端根据所述加密后的增量升级包进行增量升级包括:客户端利用客户端当前安装包的私钥对所述增量升级包进行解密;如果解密成功,则将客户端当前安装包进行备份,然后解析所述增量升级包。
10.一种软件增量升级的系统,其特征在于,包括:
客户端,用于向服务器端发送升级请求信息、接收服务器端发送的增量升级包、根据加密后的增量升级包进行增量升级;
服务器端,用于接收客户端的升级请求信息、根据所述升级请求信息生成增量升级包,并对所述增量升级包进行加密,将所述加密后的增量升级包发送给客户端。
CN202111555789.3A 2021-12-17 2021-12-17 一种软件增量升级的方法和系统 Pending CN114138317A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111555789.3A CN114138317A (zh) 2021-12-17 2021-12-17 一种软件增量升级的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111555789.3A CN114138317A (zh) 2021-12-17 2021-12-17 一种软件增量升级的方法和系统

Publications (1)

Publication Number Publication Date
CN114138317A true CN114138317A (zh) 2022-03-04

Family

ID=80382941

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111555789.3A Pending CN114138317A (zh) 2021-12-17 2021-12-17 一种软件增量升级的方法和系统

Country Status (1)

Country Link
CN (1) CN114138317A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115934141A (zh) * 2022-12-30 2023-04-07 北京泰迪熊移动科技有限公司 一种软件的升级方法、装置、电子设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115934141A (zh) * 2022-12-30 2023-04-07 北京泰迪熊移动科技有限公司 一种软件的升级方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN107294729B (zh) 区块链中不同节点之间的通信方法及装置
US10911939B2 (en) Embedded universal integrated circuit card profile management method and apparatus
US8209540B2 (en) Incremental secure backup and restore of user settings and data
JP3924306B2 (ja) ソフトウェア・パッケージを再構築する方法
CN105308560A (zh) 用于设置简档的方法和装置
MXPA06001253A (es) Publicacion de la condicion y actualizacion de componentes del firmware.
MX2014009822A (es) Metodos y aparato para distribucion a gran escala de clientes de acceso electronico.
EP3866004A1 (en) Over-the-air upgrade method and related device
CN1941697B (zh) 安全方法和系统及存储该方法的程序的计算机可读介质
CN107239299B (zh) 插件升级方法及装置
KR101429956B1 (ko) 가상 nas를 이용한 클라우드 스토리지 서버, 시스템 및 방법
CN113568643A (zh) 一种资源获取方法、装置、电子设备及计算机可读介质
CN113661478A (zh) 用于以可靠和安全的方式修补和更新经加密的盘映像的方法
US8646070B1 (en) Verifying authenticity in data storage management systems
CN114138317A (zh) 一种软件增量升级的方法和系统
CN111399867B (zh) 一种软件升级方法、装置、设备及计算机可读存储介质
CN112131041A (zh) 用于管理数据放置的方法、设备和计算机程序产品
CN109871227B (zh) 一种基于二阶差分增量的软件升级方法及装置
US7200800B2 (en) Platform independent file manipulation
CN114928602A (zh) 加密方法、解密方法及ota升级系统
CN110958285B (zh) 一种基于区块链的数据存储系统
WO2023276531A1 (ja) 車載通信システム,リプロポリシーメタデータのデータ構造及びダウンロードメタデータのデータ構造
US20180232381A1 (en) System and method for efficient backup of common applications
CN113132409B (zh) 一种数据传输方法及装置
CN117032752A (zh) 一种基于国密算法的mcu升级方法

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