本技术实施例涉及软件,特别涉及一种固件更新方法、装置、系统、设备及存储介质。
背景技术:
1、在软件技术领域,可以对固件的版本进行更新,例如,将旧版本的固件更新为新版本的固件,以修改固件的故障或者为固件增加新的功能。以新版本为第一版本,旧版本为第二版本为例,相关技术中,主机装置直接将第一版本的固件发送给固件装置,固件装置根据接收的第一版本的固件对本地存储的第二版本的固件进行更新。但是,由于整个固件的数据量较大,使得传输和处理的数据量均较大,更新过程难度较大。
技术实现思路
1、本技术实施例提供了一种固件更新方法、装置、系统、设备及存储介质,以降低更新体量。所述技术方案如下:
2、一方面,提供了一种固件更新方法,所述方法包括:
3、基于第一版本固件和第二版本固件获取差分数据,所述差分数据指示所述第一版本固件相对于所述第二版本固件的差异,所述第一版本固件包括多个第一版本块,所述第二版本固件包括多个第二版本块;
4、分割所述差分数据,得到所述多个第一版本块分别对应的差分数据块,所述多个第一版本块中的任一第一版本块对应的差分数据块指示所述任一第一版本块相对于至少一个第二版本块的差异,所述至少一个第二版本块是所述多个第二版本块中与所述任一第一版本块匹配的第二版本块;
5、向固件装置发送所述多个第一版本块分别对应的差分数据块,所述多个第一版本块分别对应的差分数据块用于所述固件装置对存储的多个待更新的第二版本块进行更新。
6、在一种可能的实施方式中,所述存储的多个待更新的第二版本块为多个第二压缩版本块;所述多个第二压缩版本块与所述多个第二版本块一一对应;所述方法还包括:基于多个第一压缩版本块和所述多个第二压缩版本块的大小关系确定移动量,所述多个第一压缩版本块由所述多个第二压缩版本块进行更新得到,所述多个第一压缩版本块与所述多个第一版本块一一对应;向所述固件装置发送所述移动量,所述移动量用于所述固件装置在对存储的所述多个第二压缩版本块进行更新之前,将存储的所述多个第二压缩版本块向第一方向移动所述移动量,所述第一方向是所述多个第二压缩版本块依次更新为所述多个第一压缩版本块的方向,以使在将所述多个第二压缩版本块中的任一个第二压缩版本块更新为对应的第一压缩版本块后,存储的所述任一个第二压缩版本块之后的第二压缩版本块未被所述任一个第二压缩版本块对应的第一压缩版本块覆盖。
7、在一种可能的实施方式中,所述存储的多个待更新的第二版本块为多个第二压缩版本块;所述多个第二压缩版本块与所述多个第二版本块一一对应;所述方法还包括:确定所述多个第二压缩版本块在所述固件装置上存储的位置信息;向所述固件装置发送所述位置信息,所述位置信息用于所述固件装置在对存储的所述多个第二压缩版本块进行更新的过程中,依次读取存储的所述多个第二压缩版本块,以使所述固件装置对依次读取的所述多个第二压缩版本块进行更新。
8、在一种可能的实施方式中,所述方法还包括:将所述多个第一版本块划分为多个第一节点,将所述多个第二版本块划分为多个第二节点,所述多个第二节点中的任一第二节点与所述多个第一节点中的至少一个第一节点匹配;基于所述多个第二节点和所述多个第一节点的匹配关系确定备份信息,所述备份信息指示所述多个第二节点中与至少两个第一节点匹配的第三节点;向所述固件装置发送所述备份信息,所述备份信息用于所述固件装置在对存储的所述第三节点所在的待更新的第二版本块进行更新的情况下,对所述第三节点进行备份,备份的第三节点用于在存储的所述第三节点所在的待更新的第二版本块被更新后,对存储的所述第三节点所在的待更新的第二版本块之后的待更新的第二版本块进行更新。
9、另一方面,提供了另一种固件更新方法,所述方法包括:
10、接收主机装置发送的多个第一版本块分别对应的差分数据块,所述多个第一版本块中的任一第一版本块对应的差分数据块指示所述任一第一版本块相对于至少一个第二版本块的差异,所述至少一个第二版本块是多个第二版本块中与所述任一第一版本块匹配的第二版本块,所述多个第一版本块属于第一版本固件,所述多个第二版本块属于第二版本固件;
11、基于所述多个第一版本块分别对应的差分数据块,对存储的多个待更新的第二版本块进行。
12、在一种可能的实施方式中,所述存储的多个待更新的第二版本块为多个第二压缩版本块;所述多个第二压缩版本块与所述多个第二版本块一一对应;所述基于所述多个第一版本块分别对应的差分数据块,对存储的所述多个待更新的第二版本块进行更新之前,还包括:接收所述主机装置发送的移动量;基于所述移动量将存储的多个第二压缩版本块向第一方向移动所述移动量,所述第一方向是所述多个第二压缩版本块依次更新为多个第一压缩版本块的方向,所述多个第一压缩版本块与所述多个第一版本块一一对应,以使在将所述多个第二压缩版本块中的任一个第二压缩版本块更新为对应的第一压缩版本块后,存储的所述任一个第二压缩版本块之后的第二压缩版本块未被所述任一个第二压缩版本块对应的第一压缩版本块覆盖。
13、在一种可能的实施方式中,所述基于所述移动量将存储的多个第二压缩版本块向第一方向移动所述移动量,包括:将所述多个第二压缩版本块按照第二方向的顺序依次将所述多个第二压缩版本块向所述第一方向移动所述移动量,所述第二方向与所述第一方向相反。
14、在一种可能的实施方式中,所述存储的多个待更新的第二版本块为多个第二压缩版本块;所述多个第二压缩版本块与所述多个第二版本块一一对应;所述基于所述多个第一版本块分别对应的差分数据块,对存储的所述多个待更新的第二版本块进行更新之前,还包括:接收所述主机装置发送的多个第二压缩版本块的位置信息;所述基于所述多个第一版本块分别对应的差分数据块,对存储的所述多个待更新的第二版本块进行更新,包括:基于所述多个第二压缩版本块的位置信息依次读取存储的所述多个第二压缩版本块;基于所述多个第一版本块分别对应的差分数据块,对依次读取的所述多个第二压缩版本块依次进行更新。
15、在一种可能的实施方式中,所述基于所述多个第一版本块分别对应的差分数据块,对依次读取的所述多个第二压缩版本块依次进行更新,包括:在读取所述多个第二压缩版本块中的任一第二压缩版本块的情况下,解压所述任一第二压缩版本块,得到待更新的第二版本块;基于待更新的第一版本块对应的差分数据块与所述待更新的第二版本块获取所述待更新的第一版本块,所述待更新的第一版本块是所述多个第一版本块中与所述待更新的第二版本块对应的第一版本块;压缩所述待更新的第一版本块,得到更新后的第一压缩版本块,存储所述更新后的第一压缩版本块。
16、在一种可能的实施方式中,所述基于所述多个第一版本块分别对应的差分数据块,对存储的所述多个待更新的第二版本块进行更新之前,还包括:接收所述主机装置发送的备份信息,所述备份信息指示多个第二节点中与至少两个第一节点匹配的第三节点,多个第一节点由所述多个第一版本块划分得到,所述多个第二节点由所述多个第二版本块划分得到,所述多个第二节点中的任一第二节点与所述多个第一节点中的至少一个第一节点匹配;所述基于所述多个第一版本块分别对应的差分数据块,对存储的所述多个待更新的第二版本块进行更新,包括:基于所述多个第一版本块分别对应的差分数据块,对存储的所述多个待更新的第二版本块依次进行更新;其中,在对存储的所述第三节点所在的待更新的第二版本块进行更新的情况下,对所述第三节点进行备份;在存储的所述第三节点所在的待更新的第二版本块被更新后,基于备份的第三节点对所述第三节点所在的待更新的第二版本块之后的待更新的第二版本块进行更新。
17、另一方面,还提供了一种固件更新装置,所述装置包括:
18、获取模块,用于基于第一版本固件和第二版本固件获取差分数据,所述差分数据指示所述第一版本固件相对于所述第二版本固件的差异,所述第一版本固件包括多个第一版本块,所述第二版本固件包括多个第二版本块;
19、分割模块,用于分割所述差分数据,得到所述多个第一版本块分别对应的差分数据块,所述多个第一版本块中的任一第一版本块对应的差分数据块指示所述任一第一版本块相对于至少一个第二版本块的差异,所述至少一个第二版本块是所述多个第二版本块中与所述任一第一版本块匹配的第二版本块;
20、发送模块,用于向固件装置发送所述多个第一版本块分别对应的差分数据块,所述多个第一版本块分别对应的差分数据块用于所述固件装置对存储的多个待更新的第二版本块进行更新。
21、在一种可能的实施方式中,所述存储的多个待更新的第二版本块为多个第二压缩版本块;所述多个第二压缩版本块与所述多个第二版本块一一对应;所述装置还包括:第一确定模块,用于基于多个第一压缩版本块和所述多个第二压缩版本块的大小关系确定移动量,所述多个第一压缩版本块由所述多个第二压缩版本块进行更新得到,所述多个第一压缩版本块与所述多个第一版本块一一对应;所述发送模块,还用于向所述固件装置发送所述移动量,所述移动量用于所述固件装置在对存储的所述多个第二压缩版本块进行更新之前,将存储的所述多个第二压缩版本块向第一方向移动所述移动量,所述第一方向是所述多个第二压缩版本块依次更新为所述多个第一压缩版本块的方向,以使在将所述多个第二压缩版本块中的任一个第二压缩版本块更新为对应的第一压缩版本块后,存储的所述任一个第二压缩版本块之后的第二压缩版本块未被所述任一个第二压缩版本块对应的第一压缩版本块覆盖。
22、在一种可能的实施方式中,所述存储的多个待更新的第二版本块为多个第二压缩版本块;所述多个第二压缩版本块与所述多个第二版本块一一对应;所述装置还包括:第二确定模块,用于确定所述多个第二压缩版本块在所述固件装置上存储的位置信息;所述发送模块,还用于向所述固件装置发送所述位置信息,所述位置信息用于所述固件装置在对存储的所述多个第二压缩版本块进行更新的过程中,依次读取存储的所述多个第二压缩版本块,以使所述固件装置对依次读取的所述多个第二压缩版本块进行更新。
23、在一种可能的实施方式中,所述装置还包括:划分模块,用于将所述多个第一版本块划分为多个第一节点,将所述多个第二版本块划分为多个第二节点,所述多个第二节点中的任一第二节点与所述多个第一节点中的至少一个第一节点匹配;第三确定模块,用于基于所述多个第二节点和所述多个第一节点的匹配关系确定备份信息,所述备份信息指示所述多个第二节点中与至少两个第一节点匹配的第三节点;所述发送模块,还用于向所述固件装置发送所述备份信息,所述备份信息用于所述固件装置在对存储的所述第三节点所在的待更新的第二版本块进行更新的情况下,对所述第三节点进行备份,备份的第三节点用于在存储的所述第三节点所在的待更新的第二版本块被更新后,对存储的所述第三节点所在的待更新的第二版本块之后的待更新的第二版本块进行更新。
24、另一方面,还提供了另一种固件更新装置,所述装置包括:
25、接收模块,用于接收主机装置发送的多个第一版本块分别对应的差分数据块,所述多个第一版本块中的任一第一版本块对应的差分数据块指示所述任一第一版本块相对于至少一个第二版本块的差异,所述至少一个第二版本块是多个第二版本块中与所述任一第一版本块匹配的第二版本块,所述多个第一版本块属于第一版本固件,所述多个第二版本块属于第二版本固件;
26、更新模块,用于基于所述多个第一版本块分别对应的差分数据块,对存储的多个待更新的第二版本块进行更新。
27、在一种可能的实施方式中,所述存储的多个待更新的第二版本块为多个第二压缩版本块;所述多个第二压缩版本块与所述多个第二版本块一一对应;所述接收模块,还用于接收所述主机装置发送的移动量;所述装置还包括:基于所述移动量将存储的多个第二压缩版本块向第一方向移动所述移动量,所述第一方向是所述多个第二压缩版本块依次更新为多个第一压缩版本块的方向,所述多个第一压缩版本块与所述多个第一版本块一一对应,以使在将所述多个第二压缩版本块中的任一个第二压缩版本块更新为对应的第一压缩版本块后,存储的所述任一个第二压缩版本块之后的第二压缩版本块未被所述任一个第二压缩版本块对应的第一压缩版本块覆盖。
28、在一种可能的实施方式中,所述移动模块,用于将所述多个第二压缩版本块按照第二方向的顺序依次将所述多个第二压缩版本块向所述第一方向移动所述移动量,所述第二方向与所述第一方向相反。
29、在一种可能的实施方式中,所述存储的多个待更新的第二版本块为多个第二压缩版本块;所述多个第二压缩版本块与所述多个第二版本块一一对应;所述接收模块,还用于接收所述主机装置发送的多个第二压缩版本块的位置信息;所述更新模块,用于基于所述多个第二压缩版本块的位置信息依次读取存储的所述多个第二压缩版本块;基于所述多个第一版本块分别对应的差分数据块,对依次读取的所述多个第二压缩版本块依次进行更新。
30、在一种可能的实施方式中,所述更新模块,用于在读取所述多个第二压缩版本块中的任一第二压缩版本块的情况下,解压所述任一第二压缩版本块,得到待更新的第二版本块;基于待更新的第一版本块对应的差分数据块与所述待更新的第二版本块获取所述待更新的第一版本块,所述待更新的第一版本块是所述多个第一版本块中与所述待更新的第二版本块对应的第一版本块;压缩所述待更新的第一版本块,得到更新后的第一压缩版本块,存储所述更新后的第一压缩版本块。
31、在一种可能的实施方式中,所述接收模块,还用于接收所述主机装置发送的备份信息,所述备份信息指示多个第二节点中与至少两个第一节点匹配的第三节点,多个第一节点由所述多个第一版本块划分得到,所述多个第二节点由所述多个第二版本块划分得到,所述多个第二节点中的任一第二节点与所述多个第一节点中的至少一个第一节点匹配;所述更新模块,用于基于所述多个第一版本块分别对应的差分数据块,对存储的所述多个待更新的第二版本块依次进行更新;其中,在对存储的所述第三节点所在的待更新的第二版本块进行更新的情况下,对所述第三节点进行备份;在存储的所述第三节点所在的待更新的第二版本块被更新后,基于备份的第三节点对所述第三节点所在的待更新的第二版本块之后的待更新的第二版本块进行更新。
32、另一方面,还提供了一种固件更新系统,所述系统包括主机装置和固件装置;所述主机装置用于执行上述一方面所述的固件更新方法,所述固件装置用于执行上述另一方面所述的固件更新方法。
33、另一方面,还提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述计算机设备实现上述一方面和另一方面所述的固件更新方法。
34、另一方面,还提供了一种计算机可读存储介质,所述非瞬态计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现上述一方面和另一方面所述的固件更新方法。
35、另一方面,还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行上述一方面和另一方面所述的固件更新方法。
36、本技术实施例提供的技术方案至少带来如下有益效果:
37、本技术提供的技术方案,版本固件包括多个版本块,分割获取到的差分数据得到多个第一版本块分别对应的差分数据块,进而根据差分数据块对多个待更新的第二版本块进行更新。相比于直接根据第一版本固件将第二版本固件更新为第一版本固件的方式,差分数据块降低了固件装置处理的数据量,即降低了更新体量,通过分块更新还降低了更新时所需的固件装置的资源。
1.一种固件更新方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述存储的多个待更新的第二版本块为多个第二压缩版本块;所述多个第二压缩版本块与所述多个第二版本块一一对应;所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述存储的多个待更新的第二版本块为多个第二压缩版本块;所述多个第二压缩版本块与所述多个第二版本块一一对应;所述方法还包括:
4.根据权利要求1-3任一所述的方法,其特征在于,所述方法还包括:
5.一种固件更新方法,其特征在于,所述方法包括:
6.根据权利要求5所述的方法,其特征在于,所述存储的多个待更新的第二版本块为多个第二压缩版本块;所述多个第二压缩版本块与所述多个第二版本块一一对应;所述基于所述多个第一版本块分别对应的差分数据块,对存储的所述多个待更新的第二版本块进行更新之前,还包括:
7.根据权利要求6所述的方法,其特征在于,所述基于所述移动量将存储的多个第二压缩版本块向第一方向移动所述移动量,包括:
8.根据权利要求5-7任一所述的方法,其特征在于,所述存储的多个待更新的第二版本块为多个第二压缩版本块;所述多个第二压缩版本块与所述多个第二版本块一一对应;所述基于所述多个第一版本块分别对应的差分数据块,对存储的所述多个待更新的第二版本块进行更新之前,还包括:
9.根据权利要求8所述的方法,其特征在于,所述基于所述多个第一版本块分别对应的差分数据块,对依次读取的所述多个第二压缩版本块依次进行更新,包括:
10.根据权利要求5-7任一所述的方法,其特征在于,所述基于所述多个第一版本块分别对应的差分数据块,对存储的所述多个待更新的第二版本块进行更新之前,还包括:
11.一种固件更新装置,其特征在于,所述装置包括:
12.一种固件更新装置,其特征在于,所述装置包括:
13.一种固件更新系统,其特征在于,所述系统包括主机装置和固件装置;所述主机装置用于执行如权利要求1至4任一所述的固件更新方法,所述固件装置用于执行如权利要求5至10任一所述的固件更新方法。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述计算机设备实现如权利要求1至4任一所述的固件更新方法,或者,以使所述计算机设备实现如权利要求5至10任一所述的固件更新方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现如权利要求1至4任一所述的固件更新方法,或者,以使所述计算机实现如权利要求5至10任一所述的固件更新方法。