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

技术编号:38752492 阅读:8 留言:0更新日期:2023-09-09 11:19
本申请涉及固件升级技术领域,提供一种差分升级方法、装置、电子设备及可读存储介质,该方法包括:依次读取差分升级包中表征数据块还原顺序的数据块标识,然后确定数据块标识对应的还原命令,再根据还原命令获取第一升级数据和/或第二升级数据,然后通过第一升级数据和/或第二升级数据覆盖所述旧镜像中的待升级数据区域。相比于现有的差分升级流程,本申请按照一定的还原顺序对旧镜像进行分块还原,使得每次还原操作的内存占用都不超过当前被还原的数据块的大小,保证了瘦设备在固件升级过程中的内存使用可控,降低了对瘦设备内存资源的占用。占用。占用。

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


[0001]本申请涉及固件升级
,尤其涉及一种差分升级方法、装置、电子设备及可读存储介质。

技术介绍

[0002]目前,差分升级算法已经非常成熟,并且已经在安卓、IOS等系统升级、手机App升级等场景成熟应用。但对于嵌入式设备(也称瘦设备),其内存资源极其有限,应用在上述富设备的差分算法在嵌入式设备是不可行的。
[0003]现有针对瘦设备的差分升级方法虽然可以实现瘦设备的固件升级,但是固件升级过程中,内存使用不可控,原因在于通过差分升级算法产生的差分包在进行升级时,需要将差分包中差异数据整个解压出来,导致内存使用不受控制,对内存资源的占用较大。

技术实现思路

[0004]本申请提供一种差分升级方法、装置、电子设备及可读存储介质,目的在于保证瘦设备在固件升级过程中的内存使用可控,降低对瘦设备内存资源的占用。
[0005]第一方面,本申请提供了一种差分升级方法,该方法包括:依次读取差分升级包中表征数据块还原顺序的数据块标识,所述还原顺序预先根据旧镜像中待还原的数据块的依赖度确定;确定所述数据块标识对应的还原命令;根据所述还原命令获取第一升级数据和/或第二升级数据,所述第一升级数据为新镜像相比所述旧镜像增加的数据,所述第二升级数据为将所述旧镜像中的原始数据块还原后获得的数据;通过所述第一升级数据和/或所述第二升级数据覆盖所述旧镜像中的待升级数据区域。
[0006]本申请所提供的差分升级方法,通过依次读取差分升级包中表征数据块还原顺序的数据块标识,然后确定数据块标识对应的还原命令,再根据还原命令获取第一升级数据和/或第二升级数据,然后通过第一升级数据和/或第二升级数据覆盖所述旧镜像中的待升级数据区域。相比于现有的差分升级流程,本申请按照一定的还原顺序对旧镜像进行分块还原,使得每次还原操作的内存占用都不超过当前被还原的数据块的大小,保证了瘦设备在固件升级过程中的内存使用可控,降低了对瘦设备内存资源的占用。
[0007]在一种可能的实现方式中,所述确定所述数据块标识对应的还原命令,包括:根据所述数据块标识从所述差分升级包中读取对应的压缩数据;根据所述压缩数据确定还原命令。
[0008]在另一种可能的实现方式中,所述根据所述压缩数据确定还原命令,包括:对所述压缩数据进行解压,获得解压后的数据;从所述解压后的数据中读取还原命令。
[0009]在另一种可能的实现方式中,所述根据所述还原命令获取第一升级数据和/或第二升级数据,包括:读取所述还原命令中的第一类命令,并根据所述第一类命令从所述解压后的数据中获取第一升级数据;和/或,读取所述还原命令中的第二类命令,并根据所述第二类命令在所述旧镜像中将目标原始数据块还原为第二升级数据,所述目标原始数据块根
据所述数据块标识在所述旧镜像中确定。
[0010]在另一种可能的实现方式中,所述根据所述还原命令获取第一升级数据和/或第二升级数据之前,还包括:读取所述还原命令中的第三类命令;根据所述第三类命令将所述旧镜像中对应的目标原始数据块复制到所述差分升级包的备份区中等待还原。
[0011]在另一种可能的实现方式中,所述根据所述第三类命令将所述旧镜像中对应的目标原始数据块复制到所述差分升级包的备份区中等待还原,包括:根据所述第三类命令在所述旧镜像中确定目标原始数据块;获取所述目标原始数据块中需要备份的第一目标数据,所述第一目标数据为所述目标原始数据块中的全部或部分数据;将所述第一目标数据复制到所述差分升级包的备份区中等待还原。
[0012]在另一种可能的实现方式中,所述读取所述还原命令中的第二类命令,并根据所述第二类命令在所述旧镜像中将目标原始数据块还原为第二升级数据,包括:读取所述还原命令中的第二类命令;确定所述第二类命令指示的字段范围;根据所述字段范围在所述旧镜像中将目标原始数据块按所述第二类命令还原为第二升级数据。
[0013]在另一种可能的实现方式中,所述根据所述字段范围在所述旧镜像中将目标原始数据块按所述第二类命令还原为第二升级数据,包括:根据所述字段范围确定所述目标原始数据块中需要还原的第二目标数据,所述第二目标数据为所述目标原始数据块中的全部或部分数据;在所述旧镜像中将所述第二目标数据按所述第二类命令还原为第二升级数据。
[0014]在另一种可能的实现方式中,所述方法还包括:确定当前还原的原始数据块所属的原始数据分组;判断所述原始数据分组和下一待还原的原始数据分组之间是否存在依赖关系;若否,则在所述原始数据分组被还原后,释放所述原始数据分组所占用的备份区。
[0015]在另一种可能的实现方式中,所述方法还包括:在将目标原始数据块还原为第二升级数据的过程中,若设备掉电,则在设备上电后,从所述差分升级包的备份区中读取所述目标原始数据块;将所述目标原始数据块恢复至所述旧镜像的对应位置,并继续对所述目标原始数据块进行还原。
[0016]在另一种可能的实现方式中,所述根据所述还原命令获取第二升级数据之前,包括:确定所述数据块标识在所述旧镜像中对应的目标原始数据块,以及在所述新镜像中对应的第二升级数据;获取所述目标原始数据块对应的第一校验和,以及所述第二升级数据对应的第二校验和;在所述第一校验和与所述第二校验和相匹配时,执行所述根据所述还原命令获取第二升级数据的步骤。
[0017]在另一种可能的实现方式中,所述依赖度为各待还原的数据块中被所述新镜像所需要的数据的字节数。
[0018]第二方面,本申请提供了一种差分升级方法,所述方法包括:根据新镜像和旧镜像之间的差异数据获得初始差分升级包;对新镜像进行拆分,获得若干个数据块,所述数据块包括第一类数据和/或第二类数据,所述第二类数据由所述旧镜像中的原始数据转换获得;对于每个包含所述第二类数据的数据块,确定所述第二类数据在所述旧镜像中对应的原始数据块的依赖度,以及对所述原始数据块进行转换的还原命令;根据所述依赖度和所述还原命令更新所述初始差分升级包,获得目标差分升级包。
[0019]本申请所提供的上述差分升级方法,通过根据新镜像和旧镜像之间的差异数据获
得初始差分升级包;然后对新镜像进行拆分,获得若干个数据块;再对于每个包含第二类数据的数据块,确定第二类数据在旧镜像中对应的原始数据块的依赖度,以及对原始数据块进行转换的还原命令;最后根据依赖度和还原命令更新所述初始差分升级包,获得目标差分升级包,使得瘦设备在根据目标差分升级包进行固件升级过程中内存使用可控,降低了对瘦设备内存资源的占用。
[0020]第三方面,本申请提供了一种差分升级装置,包括:数据读取模块、命令获取模块、数据还原模块和差分升级模块;
[0021]所述数据读取模块,用于依次读取差分升级包中表征数据块还原顺序的数据块标识,所述还原顺序预先根据旧镜像中待还原的数据块的依赖度确定;
[0022]所述命令获取模块,用于确定所述数据块标识对应的还原命令;
[0023]所述数据还原模块,用于根据所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种差分升级方法,其特征在于,所述方法包括:依次读取差分升级包中表征数据块还原顺序的数据块标识,所述还原顺序预先根据旧镜像中待还原的数据块的依赖度确定;确定所述数据块标识对应的还原命令;根据所述还原命令获取第一升级数据和/或第二升级数据,所述第一升级数据为新镜像相比所述旧镜像增加的数据,所述第二升级数据为将所述旧镜像中的原始数据块还原后获得的数据;通过所述第一升级数据和/或所述第二升级数据覆盖所述旧镜像中的待升级数据区域。2.如权利要求1所述的差分升级方法,其特征在于,所述确定所述数据块标识对应的还原命令,包括:根据所述数据块标识从所述差分升级包中读取对应的压缩数据;根据所述压缩数据确定还原命令。3.如权利要求2所述的差分升级方法,其特征在于,所述根据所述压缩数据确定还原命令,包括:对所述压缩数据进行解压,获得解压后的数据;从所述解压后的数据中读取还原命令。4.如权利要求3所述的差分升级方法,其特征在于,所述根据所述还原命令获取第一升级数据和/或第二升级数据,包括:读取所述还原命令中的第一类命令,并根据所述第一类命令从所述解压后的数据中获取第一升级数据;和/或,读取所述还原命令中的第二类命令,并根据所述第二类命令在所述旧镜像中将目标原始数据块还原为第二升级数据,所述目标原始数据块根据所述数据块标识在所述旧镜像中确定。5.如权利要求3所述的差分升级方法,其特征在于,所述根据所述还原命令获取第一升级数据和/或第二升级数据之前,还包括:读取所述还原命令中的第三类命令;根据所述第三类命令将所述旧镜像中对应的目标原始数据块复制到所述差分升级包的备份区中等待还原。6.如权利要求5所述的差分升级方法,其特征在于,所述根据所述第三类命令将所述旧镜像中对应的目标原始数据块复制到所述差分升级包的备份区中等待还原,包括:根据所述第三类命令在所述旧镜像中确定目标原始数据块;获取所述目标原始数据块中需要备份的第一目标数据,所述第一目标数据为所述目标原始数据块中的全部或部分数据;将所述第一目标数据复制到所述差分升级包的备份区中等待还原。7.如权利要求4所述的差分升级方法,其特征在于,所述读取所述还原命令中的第二类命令,并根据所述第二类命令在所述旧镜像中将目标原始数据块还原为第二升级数据,包括:
读取所述还原命令中的第二类命令;确定所述第二类命令指示的字段范围;根据所述字段范围在所述旧镜像中将目标原始数据块按所述第二类命令还原为第二升级数据。8.如权利要求7所述的差分升级方法,其特征在于,所述根据所述字段范围在所述旧镜像中将目标原始数据块按所述第二类命令还原为第二升级数据,包括:根据所述字段范围确定所述目标原始数据块中需要还原的第二目标数据,所述第二目标数据为所述目标原始数据块中的全部或部分数据;在所述旧镜像中将所述第二目标数据按所述第二类命令还原为第二升级数据。9.如权利要求4所述的差分升级方法,其特征在于,所述方法还包括:确定当前还原的原始数据块所属的原始数据分组;判断所述原始数据分组和下一待还原的原始数据分组之间是否存在依赖关系;若否,则在所述原始数据分组被还原后,释放所述原始数据分组所占用的备份区。10.如权利要求4所述的差分升级方法,其特征在于,所述方法还包括:在将目标原始数据块还原为第二升级数据的过程中,若设备掉电,则在设备上电后,从所述差分升级包的备份区中读取所述目标原始数据块;将所述目标原始数据块恢复至所述旧镜像的对应位置,并继续对所述目标原始数据块进行还原。11.如权利要求1至10任一项所述的差分升级方法,其特征在于,所述根据所述还原命令获取第二升级数据之前,包括:确定所述数据块标识在所述旧镜像中对应的目标原始数据块,以及在所述新镜像中对应的第二升级数据;获取所述目标原始数据块对应的第一校验和,以及所述第二升级数据对应的第二校验和;在所述第一校验和与所述第二校验和相匹配时,执行所述根据所述还原命令获取第二升级数据的步骤。12.如权利要求1至10任一项所述的差分升级方法,其特征在于,所述依赖度为各待还原的数据块中被所述新镜像所需要的数据的字节...

【专利技术属性】
技术研发人员:陈彦桦
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

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

1