CN112416381A - 差分升级方法、装置、服务器及可读存储介质 - Google Patents
差分升级方法、装置、服务器及可读存储介质 Download PDFInfo
- Publication number
- CN112416381A CN112416381A CN201910782516.9A CN201910782516A CN112416381A CN 112416381 A CN112416381 A CN 112416381A CN 201910782516 A CN201910782516 A CN 201910782516A CN 112416381 A CN112416381 A CN 112416381A
- Authority
- CN
- China
- Prior art keywords
- capacity
- flash memory
- partition
- available flash
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000003860 storage Methods 0.000 title claims abstract description 13
- 238000005192 partition Methods 0.000 claims abstract description 251
- 230000015654 memory Effects 0.000 claims abstract description 208
- 238000004590 computer program Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 20
- 238000004891 communication Methods 0.000 description 35
- 238000010586 diagram Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008439 repair process 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/65—Updates
- G06F8/658—Incremental 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 Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种差分升级方法,包括以下步骤:在接收到客户端发送的升级请求时,基于所述升级请求获取所述客户端对应的可用闪存容量,确定所述可用闪存容量是否满足升级条件,在所述可用闪存容量不满足升级条件时,更新所述可用闪存容量,并将更新后的可用闪存容量作为可用闪存容量,继续执行确定所述可用闪存容量是否满足升级条件的步骤,在所述可用闪存容量满足升级条件时,响应所述升级请求。本发明还公开了一种装置、服务器及可读存储介质。通过把零差分升级对应的分区的数据空间作为临时闪存,进而实现扩大差分升级过程中的可以闪存的容量,提升了在闪存容量不足的设备上进行差分升级的成功率,同时降低了产品成本。
Description
技术领域
本发明涉及差分升级技术领域,尤其涉及一种差分升级方法、装置、服务器及可读存储介质。
背景技术
现有技术中,对移动终端的差分升级都是在PC侧把升级前后两个版本的差分包制作好,然后部署到服务器上,由终端发起查询,下载差分包进行软件的Fota(Firmware Overthe Air,固件空中升级)。在这个过程中,设备上的闪存空间是否足够,是确保能否完成Fota的关键。如果升级所要求的最低闪存剩余空间(即要求闪存大于等于最大联通体的大小)满足不了的话,就会导致升级失败。
发明内容
本发明的主要目的在于提供一种差分升级方法、装置、服务器及可读存储介质,旨在至少解决现有小闪存设备上的差分升级失败率高的技术问题。
为实现至少上述目的,本发明提供一种差分升级方法,所述的差分升级方法包括以下步骤:
在接收到客户端发送的升级请求时,基于所述升级请求获取所述客户端对应的可用闪存容量;
确定所述可用闪存容量是否满足升级条件;
在所述可用闪存容量不满足升级条件时,更新所述可用闪存容量,并将更新后的可用闪存容量作为可用闪存容量,继续执行确定所述可用闪存容量是否满足升级条件的步骤;
在所述可用闪存容量满足升级条件时,响应所述升级请求。
此外,为实现上述目的,本发明还提供一种服务器,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一项所述的差分升级方法的步骤。
此外,为实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的差分升级方法的步骤。
本发明在接收到客户端发送的升级请求时,基于所述升级请求获取所述客户端对应的可用闪存容量,而后确定所述可用闪存容量是否满足升级条件,接下来在所述可用闪存容量不满足升级条件时,更新所述可用闪存容量,并将更新后的可用闪存容量作为可用闪存容量,继续执行确定所述可用闪存容量是否满足升级条件的步骤,在所述可用闪存容量满足升级条件时,响应所述升级请求。通过把零差分升级对应的分区的数据空间作为临时闪存,进而实现扩大差分升级过程中的可以闪存的容量,提升了在闪存容量不足的设备上进行差分升级的成功率,同时降低了产品成本。
附图说明
图1是本发明实施例方案涉及的硬件运行环境中服务器的结构示意图;
图2为本发明差分升级方法第一实施例的流程示意图;
图3为本发明差分升级方法第二实施例的流程示意图;
图4为本发明差分升级方法第三实施例的流程示意图;
图5为本发明差分升级方法第四实施例的流程示意图;
图6为本发明差分升级装置实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境中服务器的结构示意图。
如图1所示,该服务器可以包括:处理器1001,例如CPU,网络接口1004,客户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。客户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选客户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
在一实施方式中,所述服务器可以是差分升级服务器。在其他较佳实施例中,也可以是任意适用的服务器。
在一实施方式中,所述服务器还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器等,在此不再赘述。
本领域技术人员可以理解,图1中示出的系统结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种可读存储介质的存储器1005中可以包括操作系统、网络通信模块、客户接口模块以及计算机程序等。
在图1所示的系统中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;客户接口1003主要用于连接客户端(客户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的计算机程序。
在本实施例中,服务器可以包括:存储器1005、处理器1001及存储在所述存储器1005上并可在所述处理器1001上运行的计算机程序,其中,处理器1001调用存储器1005中存储的计算机程序时,执行本申请各个实施例提供的差分升级方法的步骤。
本发明还提供一种差分升级方法,参照图2,图2为本发明差分升级方法第一实施例的流程示意图。
本发明实施例提供了差分升级方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中,该差分升级方法包括:
步骤S10,在接收到客户端发送的升级请求时,基于所述升级请求获取所述客户端对应的可用闪存容量。
在本实施例中,FOTA(Firmware Over-The-Air)移动终端的空中下载软件升级,指通过云端升级技术,为具有连网功能的设备:例如手机、平板电脑、便携式媒体播放器、移动互联网设备等提供固件升级服务,用户使用网络以按需、易扩展的方式获取智能终端系统升级包,并通过FOTA进行云端升级,完成系统修复和优化。FOTA的本质是固件升级,包括驱动、系统、功能、应用等的升级,和硬件没有直接关系。进一步地,FOTA一般采用差分升级的方式。常规差分升级都需要设备上的剩余可用闪存空间要满足可以存放差分包文件和差分升级的临时过程文件(即联通体数据),所以只有剩余闪存空间可以放得下差分包文件和最大强联通体数据才能保证FOTA升级成功,如果剩余闪存空间不够会导致升级失败。常规差分升级方法并没有考虑分区数据上的闪存空间,是因为原始数据需要和差分包一起经过复杂的计算得到新版本数据,一般原始数据被破坏,则还原出来的新数据也是错误的。但零差分的数据分区不存在这个问题,零差分的升级原理相当于不需要旧数据即可完成升级,所以可考虑借用零差分升级的数据分区空间,临时把零差分升级的数据分区的空间数据删除,存储联通体,即差分过程过程的临时数据。
具体地,客户端需要进行FOTA升级操作时,发送升级请求至服务器,服务器在接收到客户端发送的升级请求时,根据该升级请求获取客户端的可用闪存容量,可用闪存容量是决定FOTA能否升级成功的关键指标。
步骤S20,确定所述可用闪存容量是否满足升级条件;
在本实施例中,服务器根据该升级请求获取客户端的可用闪存容量后,进一步确认可用闪存容量是否满足升级条件。
具体地,客户端包括多个分区,首先,服务器根据获取到的客户端的可用闪存容量以及预设的配置数据,根据差分算法生成各个待升级分区对应的子差分包。在生成差分包时,同步确定各个子差分包对应的最大联通体容量;然后,计算各个待升级分区的容量和,其中,分区对应的容量和等于该分区对应的子差分包容量与最大联通体容量的和,当各个待升级分区中的最大容量和小于或等于可用闪存容量时,则确定可用闪存容量满足升级条件,否则,当各个待升级分区中的最大容量和大于可用闪存容量时,则确定可用闪存容量不满足升级条件。
步骤S30,在所述可用闪存容量不满足升级条件时,更新所述可用闪存容量,并将更新后的可用闪存容量作为可用闪存容量,继续执行确定所述可用闪存容量是否满足升级条件的步骤;
在本实施例中,如果客户端的可用闪存容量不能容纳下最大容量和,则说明无法满足FOTA升级过程中对闪存的要求,会导致FOTA升级失败,此时需要采取措施扩大可以使用的闪存容量,进而满足FOTA升级过程中对闪存的要求,保证FOTA升级成功。具体地,当可用闪存容量不满足升级条件时,根据预设规则更新可用闪存容量,在本发明中采用的方式是:根据预设规则确定一个进行零差分包制作的数据分区,则该数据分区的容量可以作为临时的可用闪存容量,从而达到为可用闪存容量进行扩容的目的。接下来,将更新后的可用闪存容量作为当前可用闪存容量,继续执行确定可用闪存容量是否满足升级条件的步骤,直到当前可用闪存容量满足升级要求,从而完成差分包制作。
步骤S40,在所述可用闪存容量满足升级条件时,响应所述升级请求。
在本实施例中,当可用闪存容量满足升级条件时,说明此时的可用闪存容量可以保证FOTA升级过程中对闪存的要求,进而服务器响应完成客户端的升级请求。发送各个分区对应的子差分包以及升级规则至客户端,以使客户端进一步根据升级规则对客户端的各个分区进行升级。
本实施例提出的差分升级方法,通过在接收到客户端发送的升级请求时,基于所述升级请求获取所述客户端对应的可用闪存容量,而后确定所述可用闪存容量是否满足升级条件,接下来在所述可用闪存容量不满足升级条件时,更新所述可用闪存容量,并将更新后的可用闪存容量作为可用闪存容量,继续执行确定所述可用闪存容量是否满足升级条件的步骤,在所述可用闪存容量满足升级条件时,响应所述升级请求。通过把零差分升级对应的分区的数据空间作为临时闪存,进而实现扩大差分升级过程中的可以闪存的容量,提升了在闪存容量不足的设备上进行差分升级的成功率,同时降低了产品成本。
基于第一实施例,参照图3,提出本发明差分升级方法的第二实施例,在本实施例中,步骤S20包括:
步骤S21,基于所述可用闪存容量以及预设的配置数据,分别确定各个分区对应的最大联通体容量;
在本实施例中,配置数据是制作差分包时需要使用的数据,其有预设的格式,包括的内容比较多,例如可用闪存容量、分区长度、分区对应新数据长度等,根据实际情况进行配置数据的配置,可以通过配置界面进行设置,也可以通过配置指令对配置数据进行设置和更改。服务器根据可用闪存容量以及配置数据可以确定各个分区对应的最大联通体容量。
具体地,步骤S21包括:基于所述可用闪存容量以及配置数据生成各个分区对应的子差分包,并确定所述各个子差分包对应的最大联通体容量。
在本实施例中,服务器制作差分包,具体地,客户端包括多个分区,每次升级可能涉及部分数据分区,客户端发送升级请求给服务器时,同时提供分区划分表(给定待升级的数据分区)等信息,服务器基于可用闪存容量以及配置数据,根据差分算法生成各个分区对应的子差分包。在生成差分包时,同步确定各个子差分包对应的最大联通体容量。
步骤S22,基于所述各个分区对应的最大联通体容量确定所述可用闪存容量是否满足升级条件;
在本实施例中,可用闪存空间要满足可以存放差分包文件和差分升级的临时过程文件(即联通体数据),所以只有剩余可用闪存空间可以存放差分包文件和最大强联通体数据才能保证FOTA升级成功,故根据各个分区对应的最大联通体容量确定可用闪存容量是否满足升级条件。
具体地,步骤S22包括:
步骤a,确定各个分区对应的容量和,并基于各个容量和获取最大容量和,其中,分区对应的容量和等于所述分区对应的子差分包容量与最大联通体容量的和;
具体地,客户端的FOTA升级过程是分区进行的,待升级分区按照一定的升级顺序依次进行,可用闪存空间依次存储每个分区的升级相关数据。服务器计算每个分区对应的容量和,该容量和等于分区对应的子差分包容量与该分区对应的最大联通体容量的和,并从各个分区的多个容量和中挑选出最大的容量和,进一步根据最大容量和确定可用闪存容量是否满足升级条件。
步骤b,在所述最大容量和小于或等于所述可用闪存容量时,确定所述可用闪存容量满足升级条件;
步骤c,在所述最大容量和大于所述可用闪存容量时,确定所述可用闪存容量不满足升级条件。
在本实施例中,最大容量和是占用闪存容量最多的,如果客户端的可用闪存容量能容纳下最大容量和,则说明可用闪存容量是足够的,可以满足FOTA升级过程中对闪存的要求,可以保证FOTA升级成功,反之,会导致FOTA升级失败。
具体地,当最大容量和小于或等于客户端的可用闪存容量时,则说明可用闪存容量满足升级条件,相反,当最大容量和大于客户端的可用闪存容量时,则说明可用闪存容量不满足升级条件。
本实施例提出的差分升级方法,通过根据可用闪存容量以及预设的配置数据生成子差分包,进而确定最大联通体容量,再进一步根据分区对应的子差分包容量与最大联通体容量的和,实现了准确确定可用闪存容量是否满足升级条件。
基于第一实施例和第二实施例,参照图4,提出本发明差分升级方法的第三实施例,在本实施例中,步骤S30可以包括:
步骤S31,获取各个分区对应的零差分包的容量;
在本实施例中,客户端有多个分区,每个需要升级的分区可以生成常规的差分包或零差分包,零差分的升级原理就是相当于不需要旧数据即可完成升级,故零差分要比常规的差分包大很多,因此,只是在需要的时候对指定的数据分区制作零差分包。服务器获取各个分区对应的零差分包的容量,其中,零差分包可以根据可用闪存容量以及预设零差分配置数据生成各个分区对应的零差分包。
步骤S32,基于各个分区对应的零差分包以及容量和,确定各个分区中是否存在零差分包的容量小于容量和的第一分区,其中,分区对应的容量和等于所述分区对应的子差分包容量与最大联通体容量的和;
在本实施例中,每个分区的容量和等于该分区对应的子差分包容量与该分区对应的最大联通体容量的和。在获取到各个分区对应的零差分包的容量后,根据各个分区对应的零差分包的容量以及每个分区的容量和,确定各个分区中是否存在零差分包的容量小于容量和的分区,如果存在这样的分区,则该分区即为被选中用于做零差分的数据分区,因为将该分区替换成零差分之后,即该分区的零差分包比普通差分包与该分区联通体的最大值的和小,表示对该分区进行零差分可以节约一部分闪存空间,用于为可用闪存空间扩容。
步骤S33,在存在零差分包的容量小于容量和的第一分区时,将所述可用闪存容量与所述第一分区的容量求和,作为更新后的可用闪存容量,同时更新所述配置数据中的第一分区对应的子配置数据,并将更新后的配置数据作为配置数据。
在本实施例中,本发明通过零差分对分区数据进行压缩的特性,可以节约出来一部分数据分区的空间,合理运用数据分区上的闪存空间保证在小闪存设备上成功的进行系统软件差分升级。举例说明,假设一个分区数据是9M,如果该分区做成正常差分包是5M,如果将该分区正常的差分包替换成零差分包的话,零差分包可能是8M,零差分包比正常差分包多3M,但是分区空间9M,相当于比正常差分升级多了9M-3M=6M的空间可以临时征用,扩大了FOTA升级过程中的临时闪存的空间,以满足存放最大联通体的升级所需闪存需求,保证升级的成功。
具体地,当存在零差分包的容量小于容量和的第一分区时,重新计算可用闪存容量,即将当前的可用闪存容量与第一分区的容量求和,作为更新后的可用闪存容量,同时更新配置数据中的第一分区对应的子配置数据,也就是将第一分区配置为生成零差分包的分区,并将更新后的配置数据作为配置数据。进一步,服务器再进行生成新的差分包以及相关操作。
进一步地,在一实施例中,步骤S30还包括:
步骤d,获取各个分区对应的零差分包的容量;
在本实施例中,客户端有多个分区,每个需要升级的分区可以生成常规的差分包或零差分包,零差分的升级原理就是相当于不需要旧数据即可完成升级,故零差分要比常规的差分包大很多,因此,只是在需要的时候对指定的数据分区制作零差分包。服务器获取各个分区对应的零差分包的容量,其中,零差分包可以根据可用闪存容量以及预设零差分配置数据生成各个分区对应的零差分包。
步骤e,确定各个分区对应的容量差,其中,分区对应的容量差等于所述分区的容量与零差分包的容量的差值;
在本实施例中,每个分区的容量差等于该分区对应的分区容量与该分区对应的零差分包的容量之差。在获取到各个分区对应的零差分包的容量后,根据各个分区对应的零差分包的容量以及每个分区的分区容量,计算各个分区对应的容量差。
步骤f,基于各个分区对应的容量差获取最大容量差,并将所述最大容量差对应的第二分区的容量与所述可用闪存容量求和,作为更新后的可用闪存容量,同时更新所述配置数据中的第二分区对应的子配置数据,并将更新后的配置数据作为配置数据。
在本实施例中,根据各个分区对应的容量差获取最大容量差,则该最大容量差对应的分区即为被选中用于做零差分的数据分区,因为该分区由普通差分升级替换成零差分升级,则该分区进行零差分后,可扩展FOTA升级过程中临时利用的数据分区闪存容量最大。进一步地,服务器重新计算可用闪存容量,即将当前的可用闪存容量与第二分区的容量求和,作为更新后的可用闪存容量,其中,第二分区就是最大容量差对应的数据分区,同时更新配置数据中的第二分区对应的子配置数据,也就是将第二分区配置为生成零差分包的分区,并将更新后的配置数据作为配置数据。接下来,服务器再进行生成新的差分包以及相关操作。
进一步地,在一实施例中,步骤S30还包括:基于各个分区对应的子差分包的容量获取最大差分包容量,并将所述最大差分包容量对应的第三分区的容量与所述可用闪存容量求和,作为更新后的可用闪存容量,同时更新所述配置数据中的第三分区对应的子配置数据,并将更新后的配置数据作为配置数据。
在本实施例中,根据各个分区对应的子差分包的容量获取最大差分包容量,则该最大差分包容量对应的分区即为被选中用于做零差分的数据分区,因为该分区由普通差分升级替换成零差分升级,差分包总大小增长幅度小,但是该分区数据闪存可临时使用,达到拓展临时可用闪存的目的。进一步地,服务器重新计算可用闪存容量,即将当前的可用闪存容量与第三分区的容量求和,作为更新后的可用闪存容量,其中,第三分区就是最大差分包容量对应的数据分区,同时更新配置数据中的第三分区对应的子配置数据,也就是将第三分区配置为生成零差分包的分区,并将更新后的配置数据作为配置数据。接下来,服务器再进行生成新的差分包以及相关操作。
进一步地,在一实施例中,步骤S30还包括:获取各个分区对应的最大联通体容量中目标联通体容量,并将所述目标联通体容量对应的第四分区的容量与所述可用闪存容量求和,作为更新后的可用闪存容量,同时更新所述配置数据中的第四分区对应的子配置数据,并将更新后的配置数据作为配置数据,其中,所述目标联通体容量是各个分区对应的最大联通体容量中的最大值。
在本实施例中,根据各个分区对应的最大联通体容量中目标联通体容量,其中,目标联通体容量就是所有最大联通体容量中的最大值,则该目标联通体容量对应的分区即为被选中用于做零差分的数据分区,因为该分区由普通差分升级替换成零差分升级,该分区最大联通体大小降为0,其他分区联通体最大值更新为最大联通体大小,因而降低了最大联通体的值,对可用闪存容量要求降低。进一步地,服务器重新计算可用闪存容量,即将当前的可用闪存容量与第四分区的容量求和,作为更新后的可用闪存容量,其中,第四分区就是目标联通体容量对应的数据分区,同时更新配置数据中的第四分区对应的子配置数据,也就是将第四分区配置为生成零差分包的分区,并将更新后的配置数据作为配置数据。接下来,服务器再进行生成新的差分包以及相关操作。
需要说明的是,本发明根据预设规则确定一个进行零差分包制作的数据分区,则该数据分区的容量可以作为临时的可用闪存容量,从而达到了为可用闪存容量进行扩容,综上,本实施例中阐述的四种扩容规则,可以选择其中一个或几个,进行随机组合,不同的组合方式均属于本专利保护范围。
本实施例提出的差分升级方法,通过获取各个分区对应的零差分包的容量,而后基于各个分区对应的零差分包以及容量和,确定各个分区中是否存在零差分包的容量小于容量和的第一分区,接下来在存在零差分包的容量小于容量和的第一分区时,将所述可用闪存容量与所述第一分区的容量求和,作为更新后的可用闪存容量,同时更新所述配置数据中的第一分区对应的子配置数据,并将更新后的配置数据作为配置数据。通过把零差分升级对应的分区的数据空间作为临时闪存,进而实现扩大差分升级过程中的可以闪存的容量,提升了在闪存容量不足的设备上进行差分升级的成功率,同时降低了产品成本。
基于以实施例,参照图5,提出本发明差分升级方法的第四实施例,在本实施例中,步骤S40包括:
步骤S41,在所述可用闪存容量满足升级条件时,基于所述配置数据更新升级规则;
在本实施例中,客户端进行分区升级时,需要最后对零差分包对应的分区进行升级,因为该分区是用于扩充当前可用闪存容量。升级规则指定分区的升级顺序,只要保证零差分包对应的分区最后升级即可,其他分区的升级顺序根据实际情况确定。
举例说明,假设客户端有3个分区数据,分别为data1分区,data2分区,data3分区,存放差分包的分区为FOTA分区。剩余可用的闪存空间容量即为FOTA分区的可用闪存大小。常规差分升级思路是在升级data1分区的时候,临时文件都存储在FOTA分区对应的闪存中。如果FOTA分区剩余闪存空间不够存放data1分区的联通体,那么data1分区则会升级失败。按照本发明中的方法,假设将data3分区对应的正常差分包替换为零差分包,那么在升级data1分区时,除了将升级过程临时文件存放在FOTA分区的闪存以外,还可以存放在data3分区上的闪存中,相当于增大了临时可用闪存空间的容量,以确保data1分区可以完成升级。在升级data2分区时,同data1,可用存放临时文件的闪存空间大小依然为data3上的闪存加FOTA分区上的闪存。在升级data3时,此时可用闪存空间大小只有FOTA分区剩余闪存空间,但是由于data3是零差分的升级方式,因此不存在升级失败的情况,保证了3个数据分区均可成功升级。
步骤S42,发送各个分区对应的子差分包以及所述升级规则至所述客户端,以使所述客户端基于所述升级规则对客户端的各个分区进行差分升级。
在本实施例中,当可用闪存容量满足升级条件时,说明此时客户端的可用闪存容量可以保证FOTA升级成功,故发送待升级的各个分区对应的子差分包以及分区的升级规则至客户端,以使客户端根据升级规则依次对客户端的各个待升级的分区进行差分升级。
本实施例提出的差分升级方法,在可用闪存容量满足升级条件时,通过在升级规则中指定分区的升级顺序,保证零差分包对应的分区最后升级,从而进一步保证升级的成功率。
本发明进一步提供一种差分升级装置,参照图6,图6为本发明差分升级装置实施例的功能模块示意图。
获取模块10,在接收到客户端发送的升级请求时,基于所述升级请求获取所述客户端对应的可用闪存容量;
判断模块20,确定所述可用闪存容量是否满足升级条件;
处理模块30,在所述可用闪存容量不满足升级条件时,更新所述可用闪存容量,并将更新后的可用闪存容量作为可用闪存容量,继续执行确定所述可用闪存容量是否满足升级条件的步骤;
响应模块40,在所述可用闪存容量满足升级条件时,响应所述升级请求。
进一步地,所述判断模块20还用于:
基于所述可用闪存容量以及预设的配置数据,分别确定各个分区对应的最大联通体容量;
基于所述各个分区对应的最大联通体容量确定所述可用闪存容量是否满足升级条件。
进一步地,所述判断模块20还用于:
基于所述可用闪存容量以及配置数据生成各个分区对应的子差分包,并确定所述各个子差分包对应的最大联通体容量。
进一步地,所述判断模块20还用于:
确定各个分区对应的容量和,并基于各个容量和获取最大容量和,其中,分区对应的容量和等于所述分区对应的子差分包容量与最大联通体容量的和;
在所述最大容量和小于或等于所述可用闪存容量时,确定所述可用闪存容量满足升级条件;
在所述最大容量和大于所述可用闪存容量时,确定所述可用闪存容量不满足升级条件。
进一步地,所述处理模块30还用于:
获取各个分区对应的零差分包的容量;
基于各个分区对应的零差分包以及容量和,确定各个分区中是否存在零差分包的容量小于容量和的第一分区,其中,分区对应的容量和等于所述分区对应的子差分包容量与最大联通体容量的和;
在存在零差分包的容量小于容量和的第一分区时,将所述可用闪存容量与所述第一分区的容量求和,作为更新后的可用闪存容量,同时更新所述配置数据中的第一分区对应的子配置数据,并将更新后的配置数据作为配置数据。
进一步地,所述处理模块30还用于:
获取各个分区对应的零差分包的容量;
确定各个分区对应的容量差,其中,分区对应的容量差等于所述分区的容量与零差分包的容量的差值;
基于各个分区对应的容量差获取最大容量差,并将所述最大容量差对应的第二分区的容量与所述可用闪存容量求和,作为更新后的可用闪存容量,同时更新所述配置数据中的第二分区对应的子配置数据,并将更新后的配置数据作为配置数据。
进一步地,所述处理模块30还用于:
基于各个分区对应的子差分包的容量获取最大差分包容量,并将所述最大差分包容量对应的第三分区的容量与所述可用闪存容量求和,作为更新后的可用闪存容量,同时更新所述配置数据中的第三分区对应的子配置数据,并将更新后的配置数据作为配置数据。
进一步地,所述处理模块30还用于:
获取各个分区对应的最大联通体容量中目标联通体容量,并将所述目标联通体容量对应的第四分区的容量与所述可用闪存容量求和,作为更新后的可用闪存容量,同时更新所述配置数据中的第四分区对应的子配置数据,并将更新后的配置数据作为配置数据,其中,所述目标联通体容量是各个分区对应的最大联通体容量中的最大值。
进一步地,所述响应模块40还用于:
在所述可用闪存容量满足升级条件时,基于所述配置数据更新升级规则;
发送各个分区对应的子差分包以及所述升级规则至所述客户端,以使所述客户端基于所述升级规则对客户端的各个分区进行差分升级。
此外,本发明实施例还提出一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述各个实施例中差分升级方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台系统设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (12)
1.一种差分升级方法,应用于服务器,其特征在于,所述的差分升级方法包括以下步骤:
在接收到客户端发送的升级请求时,基于所述升级请求获取所述客户端对应的可用闪存容量;
确定所述可用闪存容量是否满足升级条件;
在所述可用闪存容量不满足升级条件时,更新所述可用闪存容量,并将更新后的可用闪存容量作为可用闪存容量,继续执行确定所述可用闪存容量是否满足升级条件的步骤;
在所述可用闪存容量满足升级条件时,响应所述升级请求。
2.如权利要求1所述的差分升级方法,其特征在于,所述客户端包括多个分区,所述确定所述可用闪存容量是否满足升级条件的步骤包括:
基于所述可用闪存容量以及预设的配置数据,分别确定各个分区对应的最大联通体容量;
基于所述各个分区对应的最大联通体容量确定所述可用闪存容量是否满足升级条件。
3.如权利要求2所述的差分升级方法,其特征在于,所述基于所述可用闪存容量以及预设的配置数据,分别确定各个分区对应的最大联通体容量的步骤包括:
基于所述可用闪存容量以及配置数据生成各个分区对应的子差分包,并确定所述各个子差分包对应的最大联通体容量,以确认各个分区对应的最大联通体容量。
4.如权利要求3所述的差分升级方法,其特征在于,所述基于所述各个分区对应的最大联通体容量确定所述可用闪存容量是否满足升级条件的步骤包括:
确定各个分区对应的容量和,并基于各个容量和获取最大容量和,其中,分区对应的容量和等于所述分区对应的子差分包容量与最大联通体容量的和;
在所述最大容量和小于或等于所述可用闪存容量时,确定所述可用闪存容量满足升级条件;
在所述最大容量和大于所述可用闪存容量时,确定所述可用闪存容量不满足升级条件。
5.如权利要求3所述的差分升级方法,其特征在于,所述更新所述可用闪存容量的步骤包括:
获取各个分区对应的零差分包的容量;
基于各个分区对应的零差分包以及容量和,确定各个分区中是否存在零差分包的容量小于容量和的第一分区,其中,分区对应的容量和等于所述分区对应的子差分包容量与最大联通体容量的和;
在存在零差分包的容量小于容量和的第一分区时,将所述可用闪存容量与所述第一分区的容量求和,作为更新后的可用闪存容量,同时更新所述配置数据中的第一分区对应的子配置数据,并将更新后的配置数据作为配置数据。
6.如权利要求3所述的差分升级方法,其特征在于,所述更新所述可用闪存容量的步骤,还包括:
获取各个分区对应的零差分包的容量;
确定各个分区对应的容量差,其中,分区对应的容量差等于所述分区的容量与零差分包的容量的差值;
基于各个分区对应的容量差获取最大容量差,并将所述最大容量差对应的第二分区的容量与所述可用闪存容量求和,作为更新后的可用闪存容量,同时更新所述配置数据中的第二分区对应的子配置数据,并将更新后的配置数据作为配置数据。
7.如权利要求3所述的差分升级方法,其特征在于,所述更新所述可用闪存容量的步骤,还包括:
基于各个分区对应的子差分包的容量获取最大差分包容量,并将所述最大差分包容量对应的第三分区的容量与所述可用闪存容量求和,作为更新后的可用闪存容量,同时更新所述配置数据中的第三分区对应的子配置数据,并将更新后的配置数据作为配置数据。
8.如权利要求3所述的差分升级方法,其特征在于,所述更新所述可用闪存容量的步骤,还包括:
获取各个分区对应的最大联通体容量中目标联通体容量,并将所述目标联通体容量对应的第四分区的容量与所述可用闪存容量求和,作为更新后的可用闪存容量,同时更新所述配置数据中的第四分区对应的子配置数据,并将更新后的配置数据作为配置数据,其中,所述目标联通体容量是各个分区对应的最大联通体容量中的最大值。
9.如权利要求3至8中任一项所述的差分升级方法,其特征在于,所述在所述可用闪存容量满足升级条件时,响应所述升级请求的步骤包括:
在所述可用闪存容量满足升级条件时,基于所述配置数据更新升级规则;
发送各个分区对应的子差分包以及所述升级规则至所述客户端,以使所述客户端基于所述升级规则对客户端的各个分区进行差分升级。
10.一种差分升级装置,其特征在于,所述差分升级装置包括:
获取模块,在接收到客户端发送的升级请求时,基于所述升级请求获取所述客户端对应的可用闪存容量;
判断模块,确定所述可用闪存容量是否满足升级条件;
处理模块,在所述可用闪存容量不满足升级条件时,更新所述可用闪存容量,并将更新后的可用闪存容量作为可用闪存容量,继续执行确定所述可用闪存容量是否满足升级条件的步骤;
响应模块,在所述可用闪存容量满足升级条件时,响应所述升级请求。
11.一种服务器,其特征在于,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至9中任一项所述的差分升级方法的步骤。
12.一种可读存储介质,其特征在于,所述可读存储介质上存储有所述计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的差分升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910782516.9A CN112416381B (zh) | 2019-08-22 | 2019-08-22 | 差分升级方法、装置、服务器及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910782516.9A CN112416381B (zh) | 2019-08-22 | 2019-08-22 | 差分升级方法、装置、服务器及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112416381A true CN112416381A (zh) | 2021-02-26 |
CN112416381B CN112416381B (zh) | 2024-12-31 |
Family
ID=74778963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910782516.9A Active CN112416381B (zh) | 2019-08-22 | 2019-08-22 | 差分升级方法、装置、服务器及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416381B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577202A (zh) * | 2012-07-23 | 2014-02-12 | 深圳市中兴移动通信有限公司 | 软件升级方法与系统 |
CN105094916A (zh) * | 2015-08-10 | 2015-11-25 | 深圳市中兴物联科技有限公司 | 一种基于模块的无线固件升级扩展方法和装置 |
CN105487907A (zh) * | 2015-12-07 | 2016-04-13 | 青岛海信电器股份有限公司 | 一种差分包的制作方法和装置 |
CN106610839A (zh) * | 2015-10-21 | 2017-05-03 | 阿里巴巴集团控股有限公司 | 发布升级包的方法、轻量升级方法、装置及系统 |
CN107220074A (zh) * | 2016-03-21 | 2017-09-29 | 阿里巴巴集团控股有限公司 | 对支撑层软件功能的访问、升级方法及装置 |
CN108399079A (zh) * | 2017-02-07 | 2018-08-14 | 中兴通讯股份有限公司 | 差分升级方法及装置、终端 |
US20190235859A1 (en) * | 2018-01-26 | 2019-08-01 | Wistron Neweb Corp. | Method and device for incremental upgrade |
-
2019
- 2019-08-22 CN CN201910782516.9A patent/CN112416381B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577202A (zh) * | 2012-07-23 | 2014-02-12 | 深圳市中兴移动通信有限公司 | 软件升级方法与系统 |
CN105094916A (zh) * | 2015-08-10 | 2015-11-25 | 深圳市中兴物联科技有限公司 | 一种基于模块的无线固件升级扩展方法和装置 |
CN106610839A (zh) * | 2015-10-21 | 2017-05-03 | 阿里巴巴集团控股有限公司 | 发布升级包的方法、轻量升级方法、装置及系统 |
CN105487907A (zh) * | 2015-12-07 | 2016-04-13 | 青岛海信电器股份有限公司 | 一种差分包的制作方法和装置 |
CN107220074A (zh) * | 2016-03-21 | 2017-09-29 | 阿里巴巴集团控股有限公司 | 对支撑层软件功能的访问、升级方法及装置 |
CN108399079A (zh) * | 2017-02-07 | 2018-08-14 | 中兴通讯股份有限公司 | 差分升级方法及装置、终端 |
US20190235859A1 (en) * | 2018-01-26 | 2019-08-01 | Wistron Neweb Corp. | Method and device for incremental upgrade |
Also Published As
Publication number | Publication date |
---|---|
CN112416381B (zh) | 2024-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108074177B (zh) | 数据对账方法、系统和计算机可读存储介质 | |
US10649769B2 (en) | Vehicle-mounted control device, program writing device, program generating device and program | |
US8719810B2 (en) | Program upgrade system and method for over the air-capable mobile terminal | |
US9223559B2 (en) | Information processing apparatus, electronic control unit, information processing method, and program | |
US20170322796A1 (en) | Device and method for updating firmware and firmware update system | |
CN108170740A (zh) | 数据迁移方法、系统和计算机可读存储介质 | |
CN103034673A (zh) | 对象数据传送系统和方法、服务器装置以及客户机装置 | |
JP2013517565A (ja) | オペレーティングシステム自動更新手順 | |
CN111290773B (zh) | 系统升级方法、设备及可读存储介质 | |
CN111538523A (zh) | 差分升级方法、设备及存储介质 | |
CN102612023A (zh) | 一种移动终端更新应用的方法、服务器以及移动终端 | |
CN111683114A (zh) | 一种设备程序的升级方法、装置、终端设备和存储介质 | |
CN112612493B (zh) | 用于软件集合的软件升级方法、装置、设备及存储介质 | |
CN113504918A (zh) | 设备树配置优化方法、装置、计算机设备和存储介质 | |
CN109088914B (zh) | 区块的生成方法、区块链生态系统及计算机可读存储介质 | |
CN112035129A (zh) | 驱动安装升级的方法、装置及计算机设备 | |
CN104991796A (zh) | 一种连续升级的方法及装置 | |
CN106293814B (zh) | 升级方法及装置 | |
CN111131861B (zh) | 恢复分区的升级方法、终端和存储介质 | |
CN113010195B (zh) | 一种系统升级方法、存储介质及终端设备 | |
CN112416381A (zh) | 差分升级方法、装置、服务器及可读存储介质 | |
CN117997745A (zh) | 车辆软件的远程升级方法、装置、计算机设备和存储介质 | |
CN117492788A (zh) | 芯片程序升级方法、装置、电子设备和计算机可读介质 | |
CN114553859A (zh) | 一种bmc配置管理方法、装置、电子设备及存储介质 | |
CN116257260A (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 |