CN111831297A - 零差分升级方法及装置 - Google Patents

零差分升级方法及装置 Download PDF

Info

Publication number
CN111831297A
CN111831297A CN201910309724.7A CN201910309724A CN111831297A CN 111831297 A CN111831297 A CN 111831297A CN 201910309724 A CN201910309724 A CN 201910309724A CN 111831297 A CN111831297 A CN 111831297A
Authority
CN
China
Prior art keywords
block length
target
length
version
block
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
Application number
CN201910309724.7A
Other languages
English (en)
Other versions
CN111831297B (zh
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201910309724.7A priority Critical patent/CN111831297B/zh
Priority to EP20790490.5A priority patent/EP3933573B1/en
Priority to PCT/CN2020/080610 priority patent/WO2020211594A1/zh
Publication of CN111831297A publication Critical patent/CN111831297A/zh
Application granted granted Critical
Publication of CN111831297B publication Critical patent/CN111831297B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种零差分升级方法和装置,该方法包括:从服务器获取目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;根据所述校验码信息从所述分块长度集合中确定一个目标分块长度,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求目标分块长度;从所述服务器获取对应于所述目标分块长度的目标版本的零差分升级包,并对待升级版本进行零差分升级。在本发明中,根据校验码信息来选择满足升级存储要求的分块长度,并基于该分块长度下的升级包进行升级,因此,解决了现有技术中升级存储空间无法存储下零差分升级包,导致零差分升级无法进行的问题。

Description

零差分升级方法及装置
技术领域
本发明涉及通讯领域,具体而言,涉及一种零差分升级方法及装置。
背景技术
差分升级是一种常见FOTA升级方法,虽然通过在服务器和终端只传递新旧版本的差分信息,可以节约带宽和储存空间,但是,在一些难以预料的情况下,例如断电或坏块,则原始数据遭到破坏,差分升级将无法进行。系统也将造成无法重启的灾难性后果。这时需要启动零差分升级,即全版本的升级方式。但因为终端往往其FOTA分区空间有限,有时会无法存储零差分升级包,从而无法进行零差分升级。
发明内容
本发明实施例提供了一种零差分升级方法及装置,以至少解决相关技术中升级存储空间无法存储下零差分升级包,而导致零差分升级无法进行的问题。
根据本发明的一个实施例,提供了一种零差分升级方法,包括:从服务器获取目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;根据所述校验码信息从所述分块长度集合中确定一个目标分块长度,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求目标分块长度;从所述服务器获取对应于所述目标分块长度的目标版本的零差分升级包,并对待升级版本进行零差分升级。
其中,根据所述校验码信息从所述分块长度集合中确定一个目标分块长度,包括:从所述分块长度集合中选择一个分块长度,并计算待升级版本中该分块长度下各数据分块的校验码;计算该分块长度下目标版本与待升级版本的对应数据分块中校验码不同的数据分块的总长度,将所述总长度作为更新长度;判断该分块长度下的更新长度是否满足升级存储空间,如果是则确定该分块长度为目标分块长度,如果否,则从所述分块长度集合中重新选择新的分块长度。
根据本发明的另一实施例,提供了一种零差分升级方法,包括:服务器向所述终端下发目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;服务器接收所述终端发送的目标版本的目标分块长度信息,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求;所述服务器向所述终端下发对应于所述目标分块长度的目标版本的零差分升级包。
根据本发明的又一个实施例,提供了一种零差分升级装置,包括:获取模块,用于从服务器获取升级目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;确定模块,用于根据所述校验码信息从所述分块长度集合中确定一个目标分块长度,其中,对应于所述目标分块长度的需更新的数据分块总长度满足升级存储空间要求;升级模块,用于从所述服务器获取对应于所述目标分块长度的目标版本的零差分升级包,并对待升级版本进行零差分升级。
其中,所述确定模块包括:选择单元,用于从所述分块长度集合中选择一个分块长度,并计算待升级版本中该分块长度下各数据分块的校验码;计算单元,用于计算该分块长度下目标版本与待升级版本的对应数据分块中校验码不同的数据分块的总长度,将所述总长度作为更新长度;判断单元,用于判断该分块长度下的更新长度是否满足升级存储空间,如果是则确定该分块长度为目标分块长度,如果否,则从所述分块长度集合中重新选择新的分块长度。
根据本发明的又一个实施例,提供了一种零差分升级装置,包括:第一下发模块,用于向所述终端下发目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;接收模块,用于接收所述终端发送的目标版本的目标分块长度信息,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求;第二下发模块,用于向所述终端下发对应于所述目标分块长度的目标版本的零差分升级包。
根据本发明的又一个实施例,还提供了一种非易失性存储介质,所述非易失性存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述方法实施例中的步骤。
在本发明的上述实施例中,根据校验码信息来选择满足升级存储要求的分块长度,并基于该分块长度下的升级包进行升级,因此,可以解决现有技术中升级存储空间无法存储下零差分升级包,导致零差分升级无法进行的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的网络架构示意图图;
图2是根据本发明实施例的零差分升级方法的流程图;
图3是根据本发明另一实施例的零差分升级方法的流程图;
图4是根据本发明实施例的零差分升级装置的结构框图;
图5是根据本发明另一实施例的零差分升级装置的结构框图;
图6是根据本发明实施例的系统结构示意图;
图7是根据本发明实施例的终端侧的流程图;
图8是根据本发明实施例的服务器侧的流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请所提供的方法实施例可以在终端/服务器的网络架构上运行,图1是本发明实施例的一种零差分升级方法运行的网络架构示意图。如图1所示,终端100可以是移动终端、计算机终端或其他类似的运行有软件的计算终端。终端100可以包括一个或多个(图1中仅示出一个)处理器101(处理器101可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器102。本领域普通技术人员可以理解,图1所示的终端100结构仅为示意,其并不对其结构造成限定。例如,终端100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器102可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的零差分升级方法对应的计算机程序,处理器101通过运行存储在存储器102内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器102可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器102可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端100。
同样,服务器200也可以是通用计算机服务器,专用服务器或其他类似的运行有软件的计算机装置。服务器200可以包括一个或多个(图1中仅示出一个)处理器201(处理器201可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器202。本领域普通技术人员可以理解,图1所示的服务器200的结构仅为示意,其并不对上述服务器200的结构造成限定。
终端100与服务器200之间可以通过网络30进行通信,该网络30可以是无线网或有线网。网络800不限于互联网、企业内部网、局域网、移动通信网及其组合。
在本实施例中提供了一种运行于上述网络架构的零差分升级方法。该实施例主要从终端的角度描述了零差分升级步骤。图2是根据本发明实施例的零差分升级方法的流程图,如图2所示,该流程可以包括如下步骤:
步骤S202,终端100从服务器200(例如一升级服务器)获取目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;
在本实施例中,终端100中的待升级版本需升级至目标版本,因此,需要从服务器200中下载该目标版本,而在服务器200中,该目标版本则可按照多种不同的分块长度进行划分,所有不同的分块长度组成一个分块长度集合。按照每个分块长度,则该目标版本可以划分为多个数据分块,每个数据分块具有其对应的校验码。例如,一个目标版本的数据大小长度是6M,其可按照512K,256K,128K,64K,32K,8K,4K,2K,1K的分块长度进行划分,则其分块长度集合为{512K,256K,128K,64K,32K,8K,4K,2K,1K}。对应分块长度512K,则目标版本被分为6M/512K=6*1024K/512K=12个数据分块。以此类推,对应于其它分块长度,该目标版本同样被分为不同个数的数据分块。服务器可依次计算目标版本的对应分块长度的所有数据分块的校验码,并下发给终端100。
步骤S204,所述终端100根据所述校验码信息从所述分块长度集合中确定一个目标分块长度,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求目标分块长度;
在零差分升级时,由于需要将目标版本下载至终端侧的FOTA分区,因此,需要判断目标版本的更新长度是否满足FOTA分区的存储要求。在上述步骤中,可根据该要求确定一个满足条件的目标分块长度。
步骤S206,所述终端100从所述服务器200获取对应于所述目标分块长度的目标版本的零差分升级包,并对所述终端100中的待升级版本进行零差分升级。
在本实施例中,该零差分升级包中可以携带目标分块长度下需要更新的数据分块。例如,512K分块长度的数据分块1、数据分块3和数据分块9。因此,可以根据该零差分升级包对终端中的待升级版本进行升级。
在本实施例中,该校验码可以为循环冗余校验码。当然,在其他实施例中,所述校验码也可以是其他能够进行差错校验的校验码。
在上述实施例中,步骤S202可具体包括:向服务器发送第一请求消息,其中,所述第一请求消息用于请求目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;接收来自所述服务器的第一响应消息,其中,所述第一响应消息中携带有所述目标版本的分块长度集合和对应于每个分块长度的各数据分块的校验码。
在上述实施例中,步骤S204可具体包括:从所述分块长度集合中选择一个分块长度,并计算待升级版本中该分块长度下各数据分块的校验码;计算该分块长度下目标版本与待升级版本的对应数据分块中校验码不同的数据分块的总长度,将所述总长度作为更新长度;判断该分块长度下的更新长度是否满足升级存储空间,如果是则确定该分块长度为目标分块长度,如果否,则从所述分块长度集合中重新选择新的分块长度,并计算其更新长度是否满足升级存储空间要求,直到选择出满足要求的分块长度。
其中,在上述步骤中,可以按照预定的选择顺序从所述分块长度集合中选择分块长度(所述预定的选择顺序可以是根据经验或预先设置的优化方案确认的),例如,在一实施例中,可按照从大到小的顺序选择一个分块长度。一般来说,分块长度越小,对应的更新长度会越小。但分块长度越小,校验码的计算量增多,并且终端侧FLASH擦写和基于块对齐的操作会增加,从而造成更新时间的增加。因此,分块长度可以按照从大到小进行选择,一旦更新长度小于当前终端FOTA储存空间要求则可选择停止。
在上述实施例中,步骤S206可具体包括:向所述服务器发送零差分包请求消息,其中,所述零差分包请求消息中携带所述目标分块长度标识和对应于所述目标分块长度的目标版本与待升级版本的对应数据分块中校验码不同的数据分块的标识;接收来自所述服务器的零差分包请求响应消息,其中,所述请求响应消息中携带有对应于所述目标分块长度的目标版本中与待升级版本的对应数据分块的校验码不同的数据分块;根据所述零差分包请求响应消息中携带的数据分块对待升级版本进行升级。
在本实施例中,还提供了一种运行于上述网络架构的零差分升级方法,所述方法可以运行于服务器侧,由服务器侧执行相关步骤。该实施例主要是从服务器的角度描述了零差分升级步骤。图3是根据本发明实施例的零差分升级方法的流程图,如图3所示,该流程包括如下步骤:
步骤S302,服务器向所述终端下发目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;
步骤S304,服务器接收所述终端发送的目标版本的目标分块长度信息,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求;
步骤S306,所述服务器向所述终端下发对应于所述目标分块长度的目标版本的零差分升级包。
在上述实施例中,步骤S302可具体包括:所述服务器接收来自所述终端的第一请求消息,其中,第一请求消息用于请求目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;所述服务器向所述终端发送第一响应消息,其中,所述第一响应消息中携带有所述目标版本的分块长度集合和对应于每个分块长度的各数据分块的校验码。
在上述实施例中,步骤S304可具体包括:所述服务器接收所述终端发送的零差分包请求消息,其中,所述零差分包请求消息中携带所述目标分块长度标识和对应于所述目标分块长度的目标版本与待升级版本的对应数据分块中校验码不同的数据分块的标识。
在上述实施例中,步骤S306可具体包括:所述服务器向所述终端发送零差分包请求响应消息,其中,所述请求响应消息中携带有对应于所述目标分块长度的目标版本中与待升级版本的对应数据分块的校验码不同的数据分块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种零差分升级装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”或“单元”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
在本发明的一实施例中,提供了一种零差分升级装置。该装置可以是终端或者是终端的一部分。图4为该装置的结构框图。如图4所示,该零差分升级装置300包括获取模块310、确定模块320和升级模块330。
获取模块310,用于从服务器获取升级目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息。
确定模块320,用于根据所述校验码信息从所述分块长度集合中确定一个目标分块长度,其中,对应于所述目标分块长度的需更新的数据分块总长度满足升级存储空间要求。
升级模块330,用于从所述服务器获取对应于所述目标分块长度的目标版本的零差分升级包,并对待升级版本进行零差分升级。
在上述实施例中,获取模块310可进一步包括第一发送单元311和第一接收单元312,第一发送单元311用于向服务器发送第一请求消息,其中,所述第一请求消息311用于请求目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息。第一接收单元312用于接收来自所述服务器的第一响应消息,其中,所述第一响应消息中携带有所述目标版本的分块长度集合和对应于每个分块长度的各数据分块的校验码。
在上述实施例中,确定模块320可进一步包括选择单元321、计算单元322和判断单元323。选择单元321用于从所述分块长度集合中选择一个分块长度,并计算待升级版本中该分块长度下各数据分块的校验码。计算单元322用于计算该分块长度下目标版本与待升级版本的对应数据分块中校验码不同的数据分块的总长度,将所述总长度作为更新长度。判断单元323用于判断该分块长度下的更新长度是否满足升级存储空间,如果是则确定该分块长度为目标分块长度,如果否,则从所述分块长度集合中重新选择新的分块长度。
在上述实施例中,可按照分块长度从大到小的方式从所述分块长度集合中选择一个分块长度。
在上述实施例中,升级模块330可进一步包括第二发送单元331、第二接收单元332和升级单元333。第二发送单元331用于向所述服务器发送零差分包请求消息,其中,所述零差分包请求消息中携带所述目标分块长度标识和对应于所述目标分块长度的目标版本与待升级版本的对应数据分块中校验码不同的数据分块的标识。第二接收单元332用于接收来自所述服务器的零差分包请求响应消息,其中,所述请求响应消息中携带有对应于所述目标分块长度的目标版本中与待升级版本的对应数据分块的校验码不同的数据分块。升级单元333用于根据所述零差分包请求响应消息中携带的数据分块对待升级版本进行升级。
在本发明的另一实施例,还提供了一种零差分升级装置。该装置可以是服务器或者是服务器的一部分。图5为该装置的结构框图。如图5所示,该装置400包括第一下发模块410、接收模块420和第二下发模块430。
第一下发模块410,用于向所述终端下发目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息。
接收模块420,用于接收所述终端发送的目标版本的目标分块长度信息,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求。
第二下发模块430,用于向所述终端下发对应于所述目标分块长度的目标版本的零差分升级包。
在上述实施例中,第一下发模块410可进一步包括第一接收单元411和第一发送单元412。第一接收单元411用于接收来自所述终端的第一请求消息,其中,第一请求消息用于请求目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息。第一发送单元412用于向所述终端发送第一响应消息,其中,所述第一响应消息中携带有所述目标版本的分块长度集合和对应于每个分块长度的各数据分块的校验码。
在上述实施例中,接收模块包括420可进一步包括第二接收单元421。第二接收单元421用于接收所述终端发送的零差分包请求消息,其中,所述零差分包请求消息中携带所述目标分块长度标识和对应于所述目标分块长度的目标版本与待升级版本的对应数据分块中校验码不同的数据分块的标识。
在上述实施例中,第二下发模块430可进一步包括第二发送单元431。第二发送单元431用于向所述终端发送零差分包请求响应消息,其中,所述请求响应消息中携带有对应于所述目标分块长度的目标版本中与待升级版本的对应数据分块的校验码不同的数据分块。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
下面通过一个实际应用中的实施例来对本发明进行进一步的描述。本实施例主要针对在无线网络情况下,当移动终端普通差分升级出现无法挽救的异常情况时,移动终端与FOTA服务器经过交互,最后服务器下发大小合适的零差分包到终端上进行零差分升级,从而完成终端软件顺利升级的应用场景。
图6为本实施例的系统结构示意图。如图6所示,主要涉及FOTA服务器和移动终端侧对应专用模块的处理。移动终端500侧相关功能可以主要包括动态分块CRC(循环冗余校验)校验模块510和零差分升级模块520。其中,动态分块CRC校验模块510的直接目的是找出当前版本和目标版本发生差异的数据块,即主要负责FOTA服务器请求目标版本分块长度集合中各种分块长度下各分块的CRC校验码信息,并计算终端当前版本数据在每个分块长度下各块的CRC校验码,再统计各个分块长度下数据发生改变的所有数据块的总长度(即更新长度),其中根据当前版本各数据块与目标版本对应各数据块CRC校验码不同来判定该数据块发生改变。一般来说,分块长度越小,对应的更新长度会越小。但分块越小一是CRC计算增多,二是处理终端FLASH擦写基于块对齐的操作会增加,从而造成更新时间的增加。因此分块长度需要从大到小进行动态选择,一旦更新长度小于当前终端FOTA储存空间要求则选择停止。然后将当前分块长度作为最优分块长度和该分块下校验码不同的块对应的标识等信息打包上传给服务器。而零差分升级模块520负责将FOTA服务器下发的零差分包进行解析,得到在最优分块长度下数据发生改变的各个数据块直接进行零差分升级。
FOTA服务器600相关功能主要包括目标版本各分块长度下的各分块CRC计算模块610和零差分打包模块620。其中CRC计算模块610是计算目标版本分块长度集合中各种分块长度下各分块的CRC校验码,并将这些信息打包下发给移动终端500。零差分打包模块620主要负责根据终端选择的最有分块长度和对应数据块发生变化分块标识,将这些标识对应的数据打包成零差分包下发到终端升级500。
基于上述的系统结构,本实施例提供了一种基于循环冗余校验码的零差分升级方法,以下来详细说明其实施过程。
如图7所示,在本实施例中,移动终端侧的主要处理流程具体为:
步骤S701:当正常差分升级异常退出后,向FOTA服务器发起目标版本的校验码信息请求,该校验码信息包含各种分块长度下目标版本的各数据分块的循环冗余校验码。举例,比如一个目标版本的数据大小长度是6M,其分块长度的集合从大到小包含:{512K,256K,128K,64K,32K,8K,4K,2K,1K}。对应分块长度512K,则目标版本被分为6M/512K=6*1024K/512K=12块,则依次计算目标版本上长度为512K数据分块的循环冗余校验码,记为{TR1,TR2,...,TR12}。同理对应分块长度256K,则目标版本被分为6M/256K=6*1024K/256K=24块,则依次计算目标版本上长度为256K数据分块的循环冗余校验码,记为{TM1,TM2,...,TM24}。其他分类长度对应的校验码以此类推。以上这些目标版本的校验码信息都可以在服务器上事先准备好。
步骤S702:接收到FOTA服务器的校验码请求响应,则从响应数据包中解析出分块长度的集合(比如{512K,256K,128K,64K,32K,8K,4K,2K,1K})和各分块对应的目标版本各数据分块的循环冗余校验码(比如{TR1,TR2...TR12},{TM1,TM2...TM24},…)。
步骤S703:从分块长度集合中(比如{512K,256K,128K,64K,32K,8K,4K,2K,1K})从大到小选择一个分块长度。
步骤S704:计算该分块长度(比如512K)下移动终端当前版本各数据据分块的循环冗余校验码,比如依次对应记为{SR1,SR2,...,SR12}。
步骤S705:计算该分块长度下目标版本与当前版本对应数据分块循环冗余校验码不同的数据块总长度,称为该更新长度,比如对于分块长度512K,分别有块1、块3、块9的目标版本校验码与当前版本校验码不同,即TR1不等于SR1,TR3不等于TR3,TR9不等于SR9。则分块长度512K对应的更新长度L=L1+L3+L9,这里L1、L3、L9表示对应该块的长度即都是512K。
步骤S706:判断该分块长度下的更新长度是否满足FOTA分区的存储要求,即L<Lf,其中L是更新长度大小,Lf是FOTA可用的升级包存储空间大小,如果满足则分块长度选择停止,进入下一步骤107,否则重新转入步骤S703。
步骤S707:将最优分块长度(比如512K)和对应校验不同各数据分块标识,即更新数据分块标识(比如1、3、9)打包到向服务器发起零差分请求包中,然后向服务器发起这个请求;
步骤S708:收到服务器零差分包请求响应,从响应包中解析出目标版本对应的数据块1、数据块3和数据块9。
步骤S709:进行零差分版本更新,比如将数据块1、数据块3、数据块9直接擦写到当前版本对应的区域上。
步骤S710:处理结束。
如图8所示,在本发明实施例中,服务器侧的主要处理流程具体为:
步骤S801:接收到移动终端发送的终端CRC校验码请求,将分块长度集合(比如{512K,256K,128K,64K,32K,8K,4K,2K,1K})和计算好的集合中各分块长度对应的目标版本所有数据分块的循环冗余校验码(比如{TR1,TR2...TR12},{TM1,TM2...TM24},…)打包到响应数据包中。
步骤S802:将该响应数据包下发到请求CRC校验码请求的移动终端。
步骤S803:接收到该移动终端发送的零差分包请求,从请求中解析出最优分块长度和对应CRC校验码不同的各数据分块标识即更新标识,比如最优分块长度是512K,更新标识是1,3,9,表示这些块的数据需要重新更新。
步骤S804:根据最优分块长度和更新数据分块标识,从目标版本中提取出需要更新的数据分块(比如在512K分块长度下的数据块1、数据块3、数据块9)打包到零差分包中。
步骤S805:将该零差分数据包下发到零差分请求移动终端。
步骤S806:处理结束。
在本发明的上述实施例中,针对常规差分升级异常失败且存储空间无法放下零差分升级包的问题,通过和服务器交互得到分块集合和集合中每个分块长度下对应的每块目标版本的循环冗余校验码,并从分块集合中大到小依次选择一个分块长度来计算当前版本每块数据的循环冗余校验码,直到当前版本与目标校验码不同对应块数的数据总长度满足当前升级存储空间要求,则动态分块长度选择停止,然后将最优分块长度和校验码不同块的标识打包在请求信息中发送给服务器,服务器根据请求信息解析出最优分块长度和校验码不同块的标识去获取目标版本中对应的数据块进行打包并下发到终端进行零差分升级,可以有效地解决上述问题。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述方法实施例中的步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

1.一种零差分升级方法,其特征在于,包括:
从服务器获取目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;
根据所述校验码信息从所述分块长度集合中确定一个分块长度作为目标分块长度,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求;
从所述服务器获取对应于所述目标分块长度的目标版本的零差分升级包,并对待升级版本进行零差分升级。
2.根据权利要求1所述的方法,其特征在于,从服务器获取目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息,包括:
向服务器发送第一请求消息,其中,所述第一请求消息用于请求目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;
接收来自所述服务器的第一响应消息,其中,所述第一响应消息中携带有所述目标版本的分块长度集合和对应于每个分块长度的各数据分块的校验码。
3.根据权利要求1所述的方法,其特征在于,根据所述校验码信息从所述分块长度集合中确定一个目标分块长度,包括:
从所述分块长度集合中选择一个分块长度,并计算待升级版本中该分块长度下各数据分块的校验码;
计算该分块长度下目标版本与待升级版本的对应数据分块中校验码不同的数据分块的总长度,将所述总长度作为更新长度;
判断该分块长度下的更新长度是否满足升级存储空间;
当判定该分块长度下的更新长度满足升级存储空间时,确定该分块长度为目标分块长度;或者
当判定该分块长度下的更新长度不满足升级存储空间时,从所述分块长度集合中重新选择新的分块长度。
4.根据权利要求3所述的方法,其特征在于,从所述分块长度集合中选择一个分块长度包括:从所述分块长度集合中从大到小选择一个分块长度。
5.根据权利要求3所述的方法,其特征在于,从所述服务器获取对应于所述目标分块长度的目标版本的零差分升级包,并对待升级版本进行零差分升级,包括:
向所述服务器发送零差分包请求消息,其中,所述零差分包请求消息中携带所述目标分块长度标识和对应于所述目标分块长度的目标版本与待升级版本的对应数据分块中校验码不同的数据分块的标识;
接收来自所述服务器的零差分包请求响应消息,其中,所述请求响应消息中携带有对应于所述目标分块长度的目标版本中与待升级版本的对应数据分块的校验码不同的数据分块;
根据所述零差分包请求响应消息中携带的数据分块对待升级版本进行升级。
6.一种零差分升级方法,其特征在于,包括:
服务器向一终端下发目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;
服务器接收所述终端发送的目标版本的目标分块长度信息,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求;
所述服务器向所述终端下发对应于所述目标分块长度的目标版本的零差分升级包。
7.根据权利要求6所述的方法,其特征在于,服务器向所述终端下发目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息,包括:
所述服务器接收来自所述终端的第一请求消息,其中,第一请求消息用于请求目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;
所述服务器向所述终端发送第一响应消息,其中,所述第一响应消息中携带有所述目标版本的分块长度集合和对应于每个分块长度的各数据分块的校验码。
8.根据权利要求6所述的方法,其特征在于,服务器接收所述终端发送的目标版本的目标分块长度信息,包括:
所述服务器接收所述终端发送的零差分包请求消息,其中,所述零差分包请求消息中携带所述目标分块长度标识和对应于所述目标分块长度的目标版本与待升级版本的对应数据分块中校验码不同的数据分块的标识。
9.根据权利要求8所述的方法,其特征在于,所述服务器向所述终端下发对应于所述目标分块长度的目标版本的零差分升级包,包括:
所述服务器向所述终端发送零差分包请求响应消息,其中,所述请求响应消息中携带有对应于所述目标分块长度的目标版本中与待升级版本的对应数据分块的校验码不同的数据分块。
10.一种零差分升级装置,其特征在于,包括:
获取模块,用于从服务器获取升级目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;
确定模块,用于根据所述校验码信息从所述分块长度集合中确定一个目标分块长度,其中,对应于所述目标分块长度的需更新的数据分块总长度满足升级存储空间要求;
升级模块,用于从所述服务器获取对应于所述目标分块长度的目标版本的零差分升级包,并对待升级版本进行零差分升级。
11.根据权利要求10所述的装置,其特征在于,所述获取模块包括:
第一发送单元,用于向服务器发送第一请求消息,其中,所述第一请求消息用于请求目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;
第一接收单元,用于接收来自所述服务器的第一响应消息,其中,所述第一响应消息中携带有所述目标版本的分块长度集合和对应于每个分块长度的各数据分块的校验码。
12.根据权利要求10所述的装置,其特征在于,所述确定模块包括:
选择单元,用于从所述分块长度集合中选择一个分块长度,并计算待升级版本中该分块长度下各数据分块的校验码;
计算单元,用于计算该分块长度下目标版本与待升级版本的对应数据分块中校验码不同的数据分块的总长度,将所述总长度作为更新长度;
判断单元,用于判断该分块长度下的更新长度是否满足升级存储空间,如果是则确定该分块长度为目标分块长度,如果否,则从所述分块长度集合中重新选择新的分块长度。
13.根据权利要求12所述的装置,其特征在于,所述计算单元按照分块长度从大到小的方式从所述分块长度集合中选择一个分块长度。
14.根据权利要求12所述的装置,其特征在于,所述升级模块包括:
第二发送单元,用于向所述服务器发送零差分包请求消息,其中,所述零差分包请求消息中携带所述目标分块长度标识和对应于所述目标分块长度的目标版本与待升级版本的对应数据分块中校验码不同的数据分块的标识;
第二接收单元,用于接收来自所述服务器的零差分包请求响应消息,其中,所述请求响应消息中携带有对应于所述目标分块长度的目标版本中与待升级版本的对应数据分块的校验码不同的数据分块;
升级单元,用于根据所述零差分包请求响应消息中携带的数据分块对待升级版本进行升级。
15.一种零差分升级装置,其特征在于,包括:
第一下发模块,用于向所述终端下发目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;
接收模块,用于接收所述终端发送的目标版本的目标分块长度信息,其中,对应于所述目标分块长度的需更新的数据分块的总长度满足升级存储空间要求;
第二下发模块,用于向所述终端下发对应于所述目标分块长度的目标版本的零差分升级包。
16.根据权利要求15所述的装置,其特征在于,所述第一下发模块包括:
第一接收单元,用于接收来自所述终端的第一请求消息,其中,第一请求消息用于请求目标版本的分块长度集合中对应于每个分块长度的各数据分块的校验码信息;
第一发送单元,用于向所述终端发送第一响应消息,其中,所述第一响应消息中携带有所述目标版本的分块长度集合和对应于每个分块长度的各数据分块的校验码。
17.根据权利要求15所述的装置,其特征在于,所述接收模块包括:
第二接收单元,用于接收所述终端发送的零差分包请求消息,其中,所述零差分包请求消息中携带所述目标分块长度标识和对应于所述目标分块长度的目标版本与待升级版本的对应数据分块中校验码不同的数据分块的标识。
18.根据权利要求17所述的装置,其特征在于,所述第二下发模块包括:
第二发送单元,用于向所述终端发送零差分包请求响应消息,其中,所述请求响应消息中携带有对应于所述目标分块长度的目标版本中与待升级版本的对应数据分块的校验码不同的数据分块。
19.一种非易失性存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至9任一项中所述的方法。
20.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至9任一项中所述的方法。
CN201910309724.7A 2019-04-17 2019-04-17 零差分升级方法及装置 Active CN111831297B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910309724.7A CN111831297B (zh) 2019-04-17 2019-04-17 零差分升级方法及装置
EP20790490.5A EP3933573B1 (en) 2019-04-17 2020-03-23 Zero differential upgrade method, non-volatile storage medium and electronic device
PCT/CN2020/080610 WO2020211594A1 (zh) 2019-04-17 2020-03-23 零差分升级方法、非易失性存储介质及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910309724.7A CN111831297B (zh) 2019-04-17 2019-04-17 零差分升级方法及装置

Publications (2)

Publication Number Publication Date
CN111831297A true CN111831297A (zh) 2020-10-27
CN111831297B CN111831297B (zh) 2021-10-26

Family

ID=72836993

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910309724.7A Active CN111831297B (zh) 2019-04-17 2019-04-17 零差分升级方法及装置

Country Status (3)

Country Link
EP (1) EP3933573B1 (zh)
CN (1) CN111831297B (zh)
WO (1) WO2020211594A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527370A (zh) * 2020-12-04 2021-03-19 成都中科慧源科技有限公司 一种对物联网设备进行远程差分升级的方法
CN112732318A (zh) * 2021-01-12 2021-04-30 武汉光庭信息技术股份有限公司 一种单片机固件升级方法
CN113721966A (zh) * 2021-08-27 2021-11-30 杭州华橙软件技术有限公司 节点升级方法、装置、存储介质及电子装置
CN114968321A (zh) * 2021-02-25 2022-08-30 新开普电子股份有限公司 一种燃气表终端及其跨版本升级方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112947983B (zh) * 2021-04-15 2024-03-15 网易(杭州)网络有限公司 应用程序更新方法及装置、电子设备、存储介质
CN117055936B (zh) * 2023-02-27 2024-07-30 武汉路特斯科技有限公司 增量升级方法、系统、计算机设备及可读存储介质

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770515A (zh) * 2010-01-18 2010-07-07 杭州顺网科技股份有限公司 一种基于数据块比较的数据更新方法
CN102682086A (zh) * 2012-04-23 2012-09-19 华为技术有限公司 数据分块方法及设备
CN103634383A (zh) * 2013-11-21 2014-03-12 北京奇虎科技有限公司 基于移动终端的多链接分段下载方法和移动终端
CN103699494A (zh) * 2013-12-06 2014-04-02 北京奇虎科技有限公司 一种数据存储方法、数据存储设备和分布式存储系统
CN103713911A (zh) * 2012-09-28 2014-04-09 中兴通讯股份有限公司 一种单版本升级方法和装置
US20140208062A1 (en) * 2010-03-22 2014-07-24 Lsi Corporation Storage address space to nvm address, span, and length mapping/converting
CN105051724A (zh) * 2013-08-19 2015-11-11 华为技术有限公司 一种数据对象处理方法与装置
CN105739971A (zh) * 2016-01-20 2016-07-06 网易(杭州)网络有限公司 校验文件的生成、使用方法及装置
CN105786563A (zh) * 2016-02-19 2016-07-20 联州(上海)信息科技有限公司 实现软件在线更新的装置、系统和方法
CN106161336A (zh) * 2015-03-25 2016-11-23 阿里巴巴集团控股有限公司 一种信息更新方法、装置及系统
CN106254561A (zh) * 2016-10-12 2016-12-21 上海安馨信息科技有限公司 一种网络资源文件的实时离线下载方法及系统
CN106354525A (zh) * 2016-08-11 2017-01-25 深圳市宜搜科技发展有限公司 应用软件安装包差分存储方法及系统
CN108268218A (zh) * 2018-01-10 2018-07-10 北京思特奇信息技术股份有限公司 一种基于网络编码的变长数据段的写入方法及读取方法
US20180349402A1 (en) * 2017-06-02 2018-12-06 Apple Inc. Techniques for managing file fragmentation at a computing device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070019188A (ko) * 2005-08-11 2007-02-15 주식회사 팬택 Crc를 이용한 부분다운로드 시스템 및 방법
EP1956482B1 (en) * 2007-02-09 2011-08-17 Telefonaktiebolaget LM Ericsson Generating delta updates for a processing device
US8015220B1 (en) * 2008-08-05 2011-09-06 Smith Micro Software, Inc. Block-based differencing algorithm
US8832028B2 (en) * 2011-08-25 2014-09-09 Oracle International Corporation Database cloning
CN104348884B (zh) * 2013-08-08 2018-05-01 中国科学院计算机网络信息中心 一种云存储自动同步方法
CN104378422A (zh) * 2014-11-13 2015-02-25 中国联合网络通信有限公司保定市分公司 一种移动终端及其文件传输方法和系统
CN105159842B (zh) * 2015-08-31 2018-03-27 浪潮(北京)电子信息产业有限公司 存储系统数据写时拷贝的处理方法和处理装置
CN106021003B (zh) * 2016-05-05 2019-11-29 捷开通讯(深圳)有限公司 智能终端的修复方法、智能终端以及服务器
CN107479823B (zh) * 2016-06-07 2020-07-21 阿里巴巴集团控股有限公司 随机读写文件测试中的数据校验方法和装置
CN106528125A (zh) * 2016-10-26 2017-03-22 腾讯科技(深圳)有限公司 一种数据文件的增量更新方法和服务器、客户端以及系统
CN106790247A (zh) * 2017-01-23 2017-05-31 青岛海信移动通信技术股份有限公司 一种Android系统升级的方法和装置
CN108650287B (zh) * 2018-03-15 2020-04-28 百度在线网络技术(北京)有限公司 物联网中的终端设备的升级方法、设备及计算机可读介质

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770515A (zh) * 2010-01-18 2010-07-07 杭州顺网科技股份有限公司 一种基于数据块比较的数据更新方法
US20140208062A1 (en) * 2010-03-22 2014-07-24 Lsi Corporation Storage address space to nvm address, span, and length mapping/converting
CN102682086A (zh) * 2012-04-23 2012-09-19 华为技术有限公司 数据分块方法及设备
CN103713911A (zh) * 2012-09-28 2014-04-09 中兴通讯股份有限公司 一种单版本升级方法和装置
CN105051724A (zh) * 2013-08-19 2015-11-11 华为技术有限公司 一种数据对象处理方法与装置
CN103634383A (zh) * 2013-11-21 2014-03-12 北京奇虎科技有限公司 基于移动终端的多链接分段下载方法和移动终端
CN103699494A (zh) * 2013-12-06 2014-04-02 北京奇虎科技有限公司 一种数据存储方法、数据存储设备和分布式存储系统
CN106161336A (zh) * 2015-03-25 2016-11-23 阿里巴巴集团控股有限公司 一种信息更新方法、装置及系统
CN105739971A (zh) * 2016-01-20 2016-07-06 网易(杭州)网络有限公司 校验文件的生成、使用方法及装置
CN105786563A (zh) * 2016-02-19 2016-07-20 联州(上海)信息科技有限公司 实现软件在线更新的装置、系统和方法
CN106354525A (zh) * 2016-08-11 2017-01-25 深圳市宜搜科技发展有限公司 应用软件安装包差分存储方法及系统
CN106254561A (zh) * 2016-10-12 2016-12-21 上海安馨信息科技有限公司 一种网络资源文件的实时离线下载方法及系统
US20180349402A1 (en) * 2017-06-02 2018-12-06 Apple Inc. Techniques for managing file fragmentation at a computing device
CN108268218A (zh) * 2018-01-10 2018-07-10 北京思特奇信息技术股份有限公司 一种基于网络编码的变长数据段的写入方法及读取方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘保建: "基于冗余数据消除的广域网传输优化技术研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527370A (zh) * 2020-12-04 2021-03-19 成都中科慧源科技有限公司 一种对物联网设备进行远程差分升级的方法
CN112732318A (zh) * 2021-01-12 2021-04-30 武汉光庭信息技术股份有限公司 一种单片机固件升级方法
CN114968321A (zh) * 2021-02-25 2022-08-30 新开普电子股份有限公司 一种燃气表终端及其跨版本升级方法
CN113721966A (zh) * 2021-08-27 2021-11-30 杭州华橙软件技术有限公司 节点升级方法、装置、存储介质及电子装置
CN113721966B (zh) * 2021-08-27 2024-03-29 杭州华橙软件技术有限公司 节点升级方法、装置、存储介质及电子装置

Also Published As

Publication number Publication date
EP3933573A4 (en) 2022-05-04
EP3933573B1 (en) 2023-07-12
WO2020211594A1 (zh) 2020-10-22
EP3933573A1 (en) 2022-01-05
CN111831297B (zh) 2021-10-26

Similar Documents

Publication Publication Date Title
CN111831297B (zh) 零差分升级方法及装置
EP3605323B1 (en) Method for generating network slice template and for applying network slice template, and apparatus
CN110162345A (zh) 一种应用程序访问方法、装置和存储介质
CN111083722A (zh) 模型的推送、模型的请求方法及装置、存储介质
CN109492436A (zh) 一种文件校验方法及相关装置
CN110471692B (zh) 终端程序的空中升级方法、装置、设备及存储介质
CN112000355B (zh) 用于固件升级的方法及装置、家电设备
CN109683930B (zh) 空调设备程序升级方法、装置、系统和家电设备
CN111459661B (zh) 一种神经网络模型参数的更新方法
CN108681504A (zh) 自动化测试方法、测试服务器及计算机可读存储介质
CN106130771B (zh) 一种基于带内以太网络在线升级flash的方法
CN111355696A (zh) 一种报文识别方法、装置、dpi设备及存储介质
CN112286565A (zh) 一种基于存储容器的嵌入式系统差分升级方法
CN112015447A (zh) 电子设备的系统更新方法及装置、电子设备及存储介质
CN112235422B (zh) 数据处理方法、装置、计算机可读存储介质及电子装置
CN113986296A (zh) 一种固件升级方法、装置、电子设备和存储介质
CN112346771B (zh) 升级文件生成方法及装置
CN109358894A (zh) 一种支持DVB的Android设备升级方法及系统
CN111736895A (zh) 软件产品版本号合并及升级方法、设备及存储介质
CN112488430A (zh) 一种预测订单取消的建模方法、装置、计算机设备及计算机可读存储介质
CN111984287A (zh) 设备升级方法及系统
CN103488492A (zh) 阅读器设备及其固件升级方法及装置
CN112436974B (zh) Cdn数据资源一致性检测方法、装置以及计算机设备
CN114895933A (zh) 系统升级方法、网络设备、介质和电子设备
CN112817953A (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