一种差分升级方法、装置、设备及可读存储介质制造方法及图纸

技术编号:37509158 阅读:24 留言:0更新日期:2023-05-07 09:48
本申请涉及一种差分升级方法、装置、设备及可读存储介质,涉及小型移动终端设备升级技术领域,包括从参数区顺序获取每个差异块的状态标记值,并根据所述状态标记值确定所述差异块的更新状态;若所述差异块的更新状态处于未完成更新,则进行解压差分升级,并实时更新记录差异块的状态标记值以表征差异块的更新状态,直至所有差异块更新完毕。本申请通过差异块的更新来实现差分升级,无需备份旧版本数据,以减少备份过程中的FLASH资源使用率,进而有效降低FLASH的资源消耗。有效降低FLASH的资源消耗。有效降低FLASH的资源消耗。

【技术实现步骤摘要】
一种差分升级方法、装置、设备及可读存储介质


[0001]本申请涉及小型移动终端设备升级
,特别涉及一种差分升级方法、装置、设备及可读存储介质。

技术介绍

[0002]随着软件技术的不断发展,嵌入式产品固件包越来越大,为了极大降低升级包大小,差分升级方案得到了广泛使用,遍布各类嵌入式产品领域,比如手机、平板电脑、车载多媒体等。
[0003]其中,现有的差分升级方案普遍采用的是bsdiff开源差分算法配合某种压缩算法来得到一个体积较小的升级包。不过,在升级过程中,为了防止升级过程异常中断导致设备无法回退到正常模式,其往往会使用备份空间来备份旧版本数据;但是该安全备份过程会消耗大量的FLASH空间,即现有的差分升级方案需要消耗大量的FLASH资源来满足安全备份的要求;而小型嵌入式平台资源极其有限,以致现有的差分升级方案无法在小型嵌入式平台得到广泛使用。

技术实现思路

[0004]本申请提供一种差分升级方法、装置、设备及可读存储介质,以解决相关技术中由于差分升级需备份旧版本数据而导致的FLASH资源消耗大的问题。
[0005]第一方面,提供了一种差分升级方法,包括以下步骤:
[0006]从参数区顺序获取每个差异块的状态标记值,并根据所述状态标记值确定所述差异块的更新状态;
[0007]若所述差异块的更新状态处于未完成更新,则进行解压差分升级,并实时更新记录差异块的状态标记值以表征差异块的更新状态,直至所有差异块更新完毕。
[0008]一些实施例中,所述若所述差异块的更新状态处于未完成更新,则进行解压差分升级,并实时更新记录差异块的状态标记值以表征差异块的更新状态,包括:
[0009]若所述差异块的更新状态处于未完成更新,对初始差分包和旧版本升级包进行解压还原,得到临时升级包;
[0010]根据所述临时升级包、所述旧版本升级包和所述差异块生成新的差分包;
[0011]基于所述新的差分包进行差分升级,并实时更新记录所述差异块的状态标记值以表征差异块的更新状态处于已完成更新。
[0012]一些实施例中,所述根据所述临时升级包、所述旧版本升级包和所述差异块生成新的差分包,包括:
[0013]根据所述临时升级包和所述旧版本升级包分别确定出旧版本升级包中与所述差异块对应的原始差异块数据以及临时升级包中与所述差异块对应的目标差异块数据;
[0014]将所述原始差异块数据备份至原始块备份区,并更新记录所述差异块的状态标记值以表征差异块的更新状态处于已完成差异块数据备份;
[0015]将所述目标差异块数据覆写至所述旧版本升级包,以生成新的升级包;
[0016]基于所述临时升级包和所述新的升级包生成新的差分包。
[0017]一些实施例中,在所述根据所述状态标记值确定所述差异块的更新状态的步骤之后,还包括:
[0018]若所述差异块的更新状态处于已完成差异块数据备份,从所述原始块备份区恢复出与所述差异块对应的目标原始差异块数据;
[0019]基于所述目标原始差异块数据对出现异常的旧版本升级包进行更新,得到原始旧版本升级包;
[0020]对初始差分包和原始旧版本升级包进行解压还原,以得到新的临时升级包,并基于所述新的临时升级包和所述原始旧版本升级包执行所述根据所述临时升级包、所述旧版本升级包和所述差异块生成新的差分包。
[0021]一些实施例中,在所述基于所述临时升级包和所述新的升级包生成新的差分包的步骤之后,还包括:
[0022]将所述新的差分包备份至差分包备份区,并更新记录所述差异块的状态标记值以表征所述差异块的更新状态处于已完成差分包备份。
[0023]一些实施例中,在所述根据所述状态标记值确定所述差异块的更新状态的步骤之后,还包括:
[0024]若所述差异块的更新状态处于已完成差分包备份,从所述差分包备份区中获取与所述差异块对应的目标差分包,并基于所述目标差分包执行所述基于所述新的差分包进行差分升级。
[0025]一些实施例中,所述状态标记值与系统掉电区域之间具有映射关系,所述方法还包括:
[0026]当系统升级过程中出现异常掉电时,根据所述状态标记值和所述映射关系定位出目标掉电区域。
[0027]第二方面,提供了一种差分升级装置,包括:
[0028]状态确定单元,其用于从参数区顺序获取每个差异块的状态标记值,并根据所述状态标记值确定所述差异块的更新状态;
[0029]升级更新单元,其用于若所述差异块的更新状态处于未完成更新,则进行解压差分升级,并实时更新记录差异块的状态标记值以表征差异块的更新状态,直至所有差异块更新完毕。
[0030]第三方面,提供了一种差分升级设备,包括:存储器和处理器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现前述的差分升级方法。
[0031]第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,以实现前述的差分升级方法。
[0032]本申请提供了一种差分升级方法、装置、设备及可读存储介质,包括从参数区顺序获取每个差异块的状态标记值,并根据所述状态标记值确定所述差异块的更新状态;若所述差异块的更新状态处于未完成更新,则进行解压差分升级,并实时更新记录差异块的状态标记值以表征差异块的更新状态,直至所有差异块更新完毕。本申请通过差异块的更新
来实现差分升级,无需备份旧版本数据,以减少备份过程中的FLASH资源使用率,进而有效降低FLASH的资源消耗。
附图说明
[0033]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034]图1为本申请实施例提供的一种差分升级方法的流程示意图;
[0035]图2为本申请实施例提供的升级流程示意图;
[0036]图3为本申请实施例提供的分区示意图;
[0037]图4为本申请实施例提供的引起升级异常的关键位置示意图;
[0038]图5为本申请实施例提供的一种差分升级设备的结构示意图。
具体实施方式
[0039]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0040]本申请实施例提供了一种差分升级方法、装置、设备及可读存储介质,其能解决相关技术中由于差分升级需备份旧版本数据而导致的FLASH资源消耗大的问题。
[0041]参见图1和图本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种差分升级方法,其特征在于,包括以下步骤:从参数区顺序获取每个差异块的状态标记值,并根据所述状态标记值确定所述差异块的更新状态;若所述差异块的更新状态处于未完成更新,则进行解压差分升级,并实时更新记录差异块的状态标记值以表征差异块的更新状态,直至所有差异块更新完毕。2.如权利要求1所述的差分升级方法,其特征在于,所述若所述差异块的更新状态处于未完成更新,则进行解压差分升级,并实时更新记录差异块的状态标记值以表征差异块的更新状态,包括:若所述差异块的更新状态处于未完成更新,对初始差分包和旧版本升级包进行解压还原,得到临时升级包;根据所述临时升级包、所述旧版本升级包和所述差异块生成新的差分包;基于所述新的差分包进行差分升级,并实时更新记录所述差异块的状态标记值以表征差异块的更新状态处于已完成更新。3.如权利要求2所述的差分升级方法,其特征在于,所述根据所述临时升级包、所述旧版本升级包和所述差异块生成新的差分包,包括:根据所述临时升级包和所述旧版本升级包分别确定出旧版本升级包中与所述差异块对应的原始差异块数据以及临时升级包中与所述差异块对应的目标差异块数据;将所述原始差异块数据备份至原始块备份区,并更新记录所述差异块的状态标记值以表征差异块的更新状态处于已完成差异块数据备份;将所述目标差异块数据覆写至所述旧版本升级包,以生成新的升级包;基于所述临时升级包和所述新的升级包生成新的差分包。4.如权利要求3所述的差分升级方法,其特征在于,在所述根据所述状态标记值确定所述差异块的更新状态的步骤之后,还包括:若所述差异块的更新状态处于已完成差异块数据备份,从所述原始块备份区恢复出与所述差异块对应的目标原始差异块数据;基于所述目标原始差异块数据对出现异常的旧版本升级包进行更新,得到原始旧版本升级包;对初始差分包和原始旧版本...

【专利技术属性】
技术研发人员:王乐姜洲
申请(专利权)人:武汉天喻信息产业股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1