CN117873538A - Ota升级方法、装置、头戴显示设备和可读存储介质 - Google Patents

Ota升级方法、装置、头戴显示设备和可读存储介质 Download PDF

Info

Publication number
CN117873538A
CN117873538A CN202311797117.2A CN202311797117A CN117873538A CN 117873538 A CN117873538 A CN 117873538A CN 202311797117 A CN202311797117 A CN 202311797117A CN 117873538 A CN117873538 A CN 117873538A
Authority
CN
China
Prior art keywords
upgrading
upgrade
partition
target
head
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.)
Pending
Application number
CN202311797117.2A
Other languages
English (en)
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.)
Goertek Techology Co Ltd
Original Assignee
Goertek Techology Co Ltd
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 Goertek Techology Co Ltd filed Critical Goertek Techology Co Ltd
Priority to CN202311797117.2A priority Critical patent/CN117873538A/zh
Publication of CN117873538A publication Critical patent/CN117873538A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请公开了一种OTA升级方法、装置、头戴显示设备和可读存储介质,所述OTA升级方法包括:检测头戴显示设备从原版本升级为目标版本的升级过程中是否重启;在检测到升级过程中重启后,从升级进度记录文件中查询得到重启前最新升级的目标设备分区;基于目标版本的升级包数据,对目标设备分区中的数据进行哈希校验,得到哈希校验结果;若哈希校验结果为校验失败,则对目标设备分区进行重新升级;若哈希校验结果为校验成功,则从目标设备分区对应的下一升级顺位的设备分区进行接续升级。本申请能够实现头戴显示设备在升级过程中出现掉电时,重启后能够有效完成系统升级。

Description

OTA升级方法、装置、头戴显示设备和可读存储介质
技术领域
本申请涉及头戴显示设备技术领域,尤其涉及一种OTA升级方法、装置、头戴显示设备和可读存储介质。
背景技术
空中下载技术(over-the-air technology,OTA),是一种通过互联网下载升级包进行系统升级的技术。在对例如虚拟现实(virtual reality,VR)设备/增强现实(augmented reality,AR)设备等头戴显示设备进行OTA升级时,相关技术中OTA 升级过程包含两个过程:
(1)升级镜像更新到设备分区
当前执行升级的operation id写入到data分区升级文件中,该data分区升级文件在升级过程中不断被更新,直至升级完成。
(2)步骤(1)中的操作是先写入到cache中,再周期性的同步写入到设备分区和data分区升级文件中,只有该步骤执行完毕,才真正的完成更新操作。
然而,为了满足头戴显示设备的轻薄化需求和轻量化需求,一般头戴显示设备均采用分体式,分体式头戴显示设备不内置电源,通过外置的电源进行供电。由于分体式头戴显示设备不包含电池,一旦在升级过程中外置电源出现闪断的情况,很容易出现升级镜像还在cache中(还未写入至设备分区中),但是data分区升级文件中的operation id已经完成同步的现象,此时在设备再次上电重新执行resume升级操作,通过读取升级文件获取上次执行的operation id,从该operation id的下一个开始执行升级,完成所有的升级operation后,再执行升级后的hash校验,由于上次在cache中的镜像没有写入到设备分区中,将会导致升级后校验失败。
也即,头戴显示设备升级时如果遇到掉电重启,可能会存在部分需要落盘到设备分区的数据还在内核缓存(即cache)中,即没有真正落盘到设备分区里。但是升级进度记录文件(即data分区升级文件)里记录的进度却表明这部分数据已经落盘到用户数据分区。而头戴显示设备重启后,会依据升级进度记录文件记录的进度接续升级,这样掉电前没有真正落盘到用户数据分区的数据就会丢失。由于存在数据丢失,因此系统升级安装包安装后进行完整性校验时就会出现校验失败,进而导致系统升级失败。
发明内容
本申请的主要目的在于提供一种OTA升级方法、装置、头戴显示设备和可读存储介质,旨在实现头戴显示设备在升级过程中出现掉电时,重启后能够有效完成系统升级。
为实现上述目的,本申请提供一种OTA升级方法,应用于头戴显示设备,所述头戴显示设备的存储器包括多个设备分区,所述方法包括:
检测头戴显示设备从原版本升级为目标版本的升级过程中是否重启;
在检测到所述升级过程中重启后,从升级进度记录文件中查询得到重启前最新升级的目标设备分区;
基于所述目标版本的升级包数据,对所述目标设备分区中的数据进行哈希校验,得到哈希校验结果;
若所述哈希校验结果为校验失败,则对所述目标设备分区进行重新升级;
若所述哈希校验结果为校验成功,则从所述目标设备分区对应的下一升级顺位的设备分区进行接续升级。
可选地,所述基于所述目标版本的升级包数据,对所述目标设备分区中的数据进行哈希校验,得到哈希校验结果的步骤包括:
基于所述目标版本的升级包数据,确定对所述目标设备分区进行升级的目标升级数据的第一哈希值,并计算所述目标设备分区中的数据的第二哈希值;
若所述第一哈希值与所述第二哈希值一致,则确定对所述目标设备分区中的数据进行哈希校验的哈希校验结果为校验成功;
若所述第一哈希值与所述第二哈希值不一致,则确定对所述目标设备分区中的数据进行哈希校验的哈希校验结果为校验失败。
可选地,所述头戴显示设备从原版本升级为目标版本的升级过程包括:
获取所述目标版本的升级包数据,其中,所述目标版本的升级包数据包括多个升级block数据,一个升级block数据对应于一个设备分区的一个升级操作,且每个升级操作具有对应的升级次序;
依据各所述升级操作对应的升级次序,通过各个升级block数据,依次对所述头戴显示设备的各个设备分区进行升级操作,并基于当前执行的目标升级操作,对所述升级进度记录文件进行同步更新;
直至完成所述升级包数据对应的所有升级操作,将所述头戴显示设备从原版本成功升级为目标版本。
可选地,所述依据各所述升级操作对应的升级次序,通过各个升级block数据,依次对所述头戴显示设备的各个设备分区进行升级操作,包括:
依据各所述升级操作对应的升级次序,将各个升级block数据依次覆写至所述头戴显示设备的各个设备分区,以依次完成对所述头戴显示设备的各个设备分区的升级操作。
可选地,所述基于当前执行的目标升级操作,对所述升级进度记录文件进行同步更新的步骤包括:
基于当前执行的目标升级操作,确定所述目标升级操作对应升级的目标设备分区;
将所述目标设备分区对应的分区升级信息同步写入至所述升级进度记录文件中,以对所述升级进度记录文件进行同步更新。
可选地,所述对所述目标设备分区进行重新升级的步骤包括:
将目标升级数据覆写至所述头戴显示设备的目标设备分区,以对所述目标设备分区进行重新升级,其中,所述目标升级数据包括至少一个目标升级block数据,所述目标升级block数据为对所述目标设备分区进行升级操作的升级block数据。
可选地,在所述对所述目标设备分区进行重新升级的步骤之后,所述方法还包括:
在所述重新升级完成后,检测所述升级包数据对应的所有升级操作是否均完成;
若未全部完成,则依据各所述升级操作对应的升级次序,对所述目标设备分区对应的下一升级顺位的设备分区进行接续升级,直至所述升级包数据对应的所有升级操作均完成。
此外,本申请还提供一种OTA升级装置,应用于头戴显示设备,所述头戴显示设备的存储器包括多个设备分区,所述装置包括:
检测模块,用于检测头戴显示设备从原版本升级为目标版本的升级过程中是否重启;
查询模块,用于在检测到所述升级过程中重启后,从升级进度记录文件中查询得到重启前最新升级的目标设备分区;
校验模块,用于基于所述目标版本的升级包数据,对所述目标设备分区中的数据进行哈希校验,得到哈希校验结果;
升级模块,用于若所述哈希校验结果为校验失败,则对所述目标设备分区进行重新升级;若所述哈希校验结果为校验成功,则从所述目标设备分区对应的下一升级顺位的设备分区进行接续升级。
本申请还提供一种头戴显示设备,所述头戴显示设备为实体设备,所述头戴显示设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述OTA升级方法的步骤。
本申请还提供一种可读存储介质,所述可读存储介质为计算机可读存储介质,所述计算机可读存储介质上存储有实现OTA升级方法的程序,所述实现OTA升级方法的程序被处理器执行以实现如上所述OTA升级方法的步骤
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的OTA升级方法的步骤。
本申请提供的OTA升级方法,应用于头戴显示设备,所述头戴显示设备的存储器包括多个设备分区,本申请通过检测头戴显示设备从原版本升级为目标版本的升级过程中是否重启,在检测到升级过程中重启后,从升级进度记录文件中查询得到重启前最新升级的目标设备分区,并基于目标版本的升级包数据,对目标设备分区中的数据进行哈希校验,得到哈希校验结果,若该哈希校验结果为校验失败,则对目标设备分区进行重新升级,若该哈希校验结果为校验成功,则从目标设备分区对应的下一升级顺位的设备分区进行接续升级,从而避免升级过程中遇到重启时,部分需要落盘到设备分区的数据还在内核缓存(即cache)中而没有真正落盘到设备分区导致校验失败的情况,进而使得在头戴显示设备在升级过程中出现掉电时,重启后能够有效完成系统升级,以使升级成功。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请OTA升级方法第一实施例的流程示意图;
图2为本申请OTA升级方法第二实施例中步骤S30的细化流程示意图;
图3为本申请OTA升级方法第三实施例的流程示意图;
图4为本申请实施例OTA升级装置的模块结构示意图;
图5为本实施例中头戴显示设备涉及的硬件运行环境的设备结构示意图。
本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。
在本实施例中,该头戴显示设备包括但不限于混合现实(Mixed Reality)—MR设备(例如MR眼镜或者MR头盔)、增强现实(Augmented Reality)—AR设备(例如AR眼镜或者AR头盔)、虚拟现实-(Virtual Reality)—VR设备(例如VR眼镜或者VR头盔)、扩展现实(Extended Reality)—XR设备或其某种组合等等头戴显示设备。
实施例一
为了满足头戴显示设备的轻薄化需求和轻量化需求,一般头戴显示设备均采用分体式,分体式头戴显示设备不内置电源,通过外置的电源进行供电。由于分体式头戴显示设备不包含电池,一旦在升级过程中外置电源出现闪断的情况,很容易出现升级镜像还在cache中(还未写入至设备分区中),但是data分区升级文件中的operation id已经完成同步的现象,此时在设备再次上电重新执行resume升级操作,通过读取升级文件获取上次执行的operation id,从该operation id的下一个开始执行升级,完成所有的升级operation后,再执行升级后的hash校验,由于上次在cache中的镜像没有写入到设备分区中,将会导致升级后校验失败。
也即,头戴显示设备升级时如果遇到掉电重启,可能会存在部分需要落盘到设备分区的数据还在内核缓存(即cache)中,即没有真正落盘到设备分区里。但是升级进度记录文件(即data分区升级文件)里记录的进度却表明这部分数据已经落盘到用户数据分区。而头戴显示设备重启后,会依据升级进度记录文件记录的进度接续升级,这样掉电前没有真正落盘到用户数据分区的数据就会丢失。由于存在数据丢失,因此系统升级安装包安装后进行完整性校验时就会出现校验失败,进而导致系统升级失败。
基于此,请参照图1,图1为本申请OTA升级方法第一实施例的流程示意图,本实施例提供一种OTA升级方法,所述头戴显示设备的存储器包括多个设备分区,所述方法包括:
步骤S10,检测头戴显示设备从原版本升级为目标版本的升级过程中是否重启;
在本实施例中,所述头戴显示设备的存储器包括多个设备分区,为了助于理解,示例性地,该设备分区的种类可包括bootfs分区、kernelfs分区、rootfs分区和tvysfsfs分区等,本实施例不作具体的限定。需要说明的是,本申请实施例中的设备分区的数量,以及设备分区的名称只是用于示范性地说明,而不能理解为对设备分区的数量和名称的限定。
在本实施例中,原版本是指在头戴显示设备更新前,头戴显示设备安装的系统版本。目标版本是指在头戴显示设备更新后,头戴显示设备安装的系统版本。该升级过程是指头戴显示设备使用的系统从原版本更新到目标版本的过程。
容易理解的是,导致头戴显示设备在该升级过程中出现重启的原因可包括异常掉电、用户误操作、头戴显示设备出现程序故障、头戴显示设备的硬件性能不稳定等,本实施例对此不作具体的限定。
步骤S20,在检测到所述升级过程中重启后,从升级进度记录文件中查询得到重启前最新升级的目标设备分区;
在本实施例中,该升级进度记录文件是指用于记录升级过程中升级进度的分区文件。作为一种示例,该升级进度记录文件可为data分区升级文件。
为了助于理解,列举一示例性的在升级过程中出现重启的升级场景,在该升级场景中,升级为目标版本的升级过程中是需要按照bootfs分区、kernelfs分区、rootfs分区和tvysfsfs分区的顺序进行依次升级,然而,在升级到kernelfs分区的过程中,该kernelfs分区还没有升级完,以及后续的rootfs分区和tvysfsfs分区还没有开始升级,便出现掉电重启,此时,重启前最新升级的目标设备分区即为该kernelfs分区,并且重启后,可通过从升级进度记录文件中查询得到该重启前最新升级的目标设备分区。
步骤S30,基于所述目标版本的升级包数据,对所述目标设备分区中的数据进行哈希校验,得到哈希校验结果;
步骤S40,若所述哈希校验结果为校验失败,则对所述目标设备分区进行重新升级;
步骤S50,若所述哈希校验结果为校验成功,则从所述目标设备分区对应的下一升级顺位的设备分区进行接续升级。
为了助于理解,接续上述一示例性的升级场景进行描述,该升级场景中,检测到该升级过程中重启后,基于该升级进度记录文件中,查询得到重启前最新升级的目标设备分区为该kernelfs分区后,先对该kernelfs分区中的数据进行哈希校验,得到哈希校验结果,如果哈希校验结果为校验失败,则说明对该kernelfs分区还没有完全升级完,或者说还没有升级成功,此时如果对该kernelfs分区下一升级顺位的设备分区进行升级,将会导致无法有效完成系统升级,因为kernelfs分区还存在部分升级操作未完成,所有需要在重启后对目标设备分区(在该升级场景中,目标设备分区为kernelfs分区)进行重新升级,即对kernelfs分区的所有升级操作重新执行一次,以完成对kernelfs分区的成功升级,然后对kernelfs分区下一升级顺位的设备分区:rootfs分区,来进行升级,在对该rootfs分区升级成功或者说升级完成后,再对下一升级顺位的设备分区:tvysfsfs分区,来进行升级,在这些分区都升级完成后,便实现了将头戴显示设备从原版本升级为目标版本。
在该升级场景中,容易理解的是,该kernelfs分区下一升级顺位的设备分区为rootfs分区。而如果哈希校验结果为校验成功,则说明对该kernelfs分区的所有升级操作已经全部执行完,或者说对该kernelfs分区已完成升级或者对该kernelfs分区已升级成功,从而无需对该kernelfs分区进行重新升级,可直接对kernelfs分区下一升级顺位的设备分区:rootfs分区,来进行升级,在对该rootfs分区升级成功或者说升级完成后,再对下一升级顺位的设备分区:tvysfsfs分区,来进行升级,在这些分区都升级完成后,便实现将头戴显示设备从原版本升级为目标版本。也即本申请实施例通过在该哈希校验结果为校验失败的情况下,对目标设备分区进行重新升级,而在该哈希校验结果为校验成功的情况下,则从目标设备分区对应的下一升级顺位的设备分区进行接续升级,可以确保头戴显示设备的升级功能顺利执行完毕,避免出现升级失败的情况。
本申请实施例提供的OTA升级方法,应用于头戴显示设备,所述头戴显示设备的存储器包括多个设备分区,本申请实施例通过检测头戴显示设备从原版本升级为目标版本的升级过程中是否重启,在检测到升级过程中重启后,从升级进度记录文件中查询得到重启前最新升级的目标设备分区,并基于目标版本的升级包数据,对目标设备分区中的数据进行哈希校验,得到哈希校验结果,若该哈希校验结果为校验失败,则对目标设备分区进行重新升级,若该哈希校验结果为校验成功,则从目标设备分区对应的下一升级顺位的设备分区进行接续升级,从而避免升级过程中遇到重启时,部分需要落盘到设备分区的数据还在内核缓存(即cache)中而没有真正落盘到设备分区导致校验失败的情况,进而使得在头戴显示设备在升级过程中出现掉电时,重启后能够有效完成系统升级,以使升级成功。
在一种可实施的方式中,请参照图2,图2为本申请OTA升级方法第二实施例中步骤S30的细化流程示意图,所述基于所述目标版本的升级包数据,对所述目标设备分区中的数据进行哈希校验,得到哈希校验结果的步骤包括:
步骤S31,基于所述目标版本的升级包数据,确定对所述目标设备分区进行升级的目标升级数据的第一哈希值,并计算所述目标设备分区中的数据的第二哈希值;
步骤S32,若所述第一哈希值与所述第二哈希值一致,则确定对所述目标设备分区中的数据进行哈希校验的哈希校验结果为校验成功;
步骤S33,若所述第一哈希值与所述第二哈希值不一致,则确定对所述目标设备分区中的数据进行哈希校验的哈希校验结果为校验失败。
在本实施例中,该目标升级数据是指对该目标设备分区进行升级的升级数据。该第一哈希值是指通过预设哈希算法计算该目标升级数据,而得到的哈希值。
此外,该第二哈希值是指通过该预设哈希算法,计算实际落盘到目标设备分区中的升级数据,而得到的哈希值。
本领域技术人员可以理解的是,该预设哈希算法可包括AES、SHA、RSA或ECC等哈希算法,本实施例对此不作具体的限定。
本申请实施例通过基于该目标版本的升级包数据,确定对目标设备分区进行升级的目标升级数据的第一哈希值,并计算该目标设备分区中的数据的第二哈希值,如果第一哈希值与第二哈希值一致,则确定对目标设备分区中的数据进行哈希校验的哈希校验结果为校验成功,如果第一哈希值与第二哈希值不一致,则确定对目标设备分区中的数据进行哈希校验的哈希校验结果为校验失败,从而准确地确定出对目标设备分区中的数据进行哈希校验的哈希校验结果,进而便于根据该哈希校验结果,校验识别出是否需要对重启前最新升级的目标设备分区进行重新升级,确保在头戴显示设备在升级过程中出现掉电时,重启后能够有效实现系统成功升级。
在一种可能的实施方式中,请参照图3,图3为本申请OTA升级方法第三实施例的流程示意图,所述头戴显示设备从原版本升级为目标版本的升级过程包括:
步骤S51,获取所述目标版本的升级包数据,其中,所述目标版本的升级包数据包括多个升级block数据,一个升级block数据对应于一个设备分区的一个升级操作,且每个升级操作具有对应的升级次序;
在本实施例中,该升级block数据包括至少一项处理功能的升级文件,相较于没有对目标版本进行多个子功能升级分析而相应进行分片的整个升级包数据对应的大包,升级block数据具有明显的小体积优势。由于一个升级block数据只更新特定功能的升级操作,对系统的影响很小,只需要对特定功能测试即可单独发布该升级block数据,缩短发布周期,实现头戴显示设备功能的快速修复。
步骤S52,依据各所述升级操作对应的升级次序,通过各个升级block数据,依次对所述头戴显示设备的各个设备分区进行升级操作,并基于当前执行的目标升级操作,对所述升级进度记录文件进行同步更新;
示例性地,在步骤S52中,依据各所述升级操作对应的升级次序,通过各个升级block数据,依次对所述头戴显示设备的各个设备分区进行升级操作,包括:
步骤A10,依据各所述升级操作对应的升级次序,将各个升级block数据依次覆写至所述头戴显示设备的各个设备分区,以依次完成对所述头戴显示设备的各个设备分区的升级操作。
作为一种示例,在步骤S52中,所述基于当前执行的目标升级操作,对所述升级进度记录文件进行同步更新的步骤包括:
步骤B10,基于当前执行的目标升级操作,确定所述目标升级操作对应升级的目标设备分区;
步骤B20,将所述目标设备分区对应的分区升级信息同步写入至所述升级进度记录文件中,以对所述升级进度记录文件进行同步更新。
本实施例通过基于当前执行的目标升级操作,确定该目标升级操作对应升级的目标设备分区,并将该目标设备分区对应的分区升级信息同步写入至所述升级进度记录文件中,从而准确有效地基于当前系统升级进度,对升级进度记录文件进行同步的记录更新。
步骤S52之后,执行步骤S53,直至完成所述升级包数据对应的所有升级操作,将所述头戴显示设备从原版本成功升级为目标版本。
示例性地,在所述对所述目标设备分区进行重新升级的步骤之后,所述方法还包括:
步骤C10,在所述重新升级完成后,检测所述升级包数据对应的所有升级操作是否均完成;
步骤C20,若未全部完成,则依据各所述升级操作对应的升级次序,对所述目标设备分区对应的下一升级顺位的设备分区进行接续升级,直至所述升级包数据对应的所有升级操作均完成。
本实施例通过在该重新升级完成后,检测升级包数据对应的所有升级操作是否均完成,若未全部完成,则依据各升级操作对应的升级次序,对目标设备分区对应的下一升级顺位的设备分区进行接续升级,直至升级包数据对应的所有升级操作均完成,完成头戴显示设备的系统成功升级,实现了确保升级各设备分区的稳定性和可靠性,进而确保当升级过程由于断电或强制重启造成中断后,能够自动恢复升级,且将头戴显示设备的系统成功升级至目标版本。
在本实施例中,目标版本的升级包数据包括多个升级block数据,一个升级block数据对应于一个设备分区的一个升级操作,且每个升级操作具有对应的升级次序。为了助于理解,列举一示例性的在升级过程中出现重启的升级场景,在该升级场景中,升级为目标版本的升级过程中是需要按照bootfs分区、kernelfs分区和rootfs分区和tvysfsfs分区的顺序进行依次升级,其中,对bootfs分区进行升级的升级包数据含有3个升级block数据,也即对bootfs分区升级成功需要按次序完成3个升级操作,例如依次为升级操作a、升级操作b和升级操作c。此外,对kernelfs分区进行升级的升级包数据含有四个升级block数据,也即对kernelfs分区升级成功需要按次序完成四个升级操作,例如为依次为升级操作d、升级操作e、升级操作f和升级操作g。此外,对rootfs分区进行升级的升级包数据含有四个升级block数据,也即对rootfs分区升级成功需要按次序完成四个升级操作,例如依次为升级操作h、升级操作i、升级操作j和升级操作k。此外,对tvysfsfs分区进行升级的升级包数据含有两个升级block数据,也即对tvysfsfs分区升级成功需要按次序完成两个升级操作,例如依次为升级操作l和升级操作m。也就是说,在该升级场景中,对各分区的升级操作数量依次为3、4、4、2。然而,在升级到第5个升级操作时出现异常重启,也即在对kernelfs分区进行第二个升级操作:升级操作e时,出现了系统重启,此时,重启前最新升级的目标设备分区即为该kernelfs分区,并且重启后,可通过从升级进度记录文件中查询得到该重启前最新升级的目标设备分区,并通过基于目标版本的升级包数据,对kernelfs分区中的数据进行哈希校验,得到哈希校验结果,由于kernelfs分区还剩两个升级操作未执行完,也即kernelfs分区还没有全部完成升级或者说还没有升级成功,因此计算出的第一哈希值述第二哈希值必然不一致,也即哈希校验结果为校验失败,此时从对kernelfs分区第一升级操作:升级操作d,来开始执行,升级操作d执行完后,再执行升级操作e、升级操作f和升级操作g,从而实现对kernelfs分区的重新升级,然后对kernelfs分区下一升级顺位的设备分区:rootfs分区,来进行升级(即依次执行升级操作h、升级操作i、升级操作j和升级操作k),在对该rootfs分区升级成功或者说升级完成后,再对下一升级顺位的设备分区:tvysfsfs分区(即依次执行升级操作l和升级操作m),来进行升级,在这些分区都升级完成后,便实现将头戴显示设备从原版本升级为目标版本。
在该升级场景中,容易理解的是,该kernelfs分区下一升级顺位的设备分区为rootfs分区。而如果哈希校验结果为校验成功,则说明对该kernelfs分区的所有升级操作已经全部执行完,或者说对该kernelfs分区已完成升级或者对该kernelfs分区已升级成功,从而无需对该kernelfs分区进行重新升级,可直接对kernelfs分区下一升级顺位的设备分区:rootfs分区,来进行升级,在对该rootfs分区升级成功或者说升级完成后,再对下一升级顺位的设备分区:tvysfsfs分区,来进行升级,在这些分区都升级完成后,便实现将头戴显示设备从原版本升级为目标版本。也即本申请实施例通过在该哈希校验结果为校验失败的情况下,对目标设备分区进行重新升级,而在该哈希校验结果为校验成功的情况下,则从目标设备分区对应的下一升级顺位的设备分区进行接续升级,可以确保头戴显示设备的升级功能顺利执行完毕,避免出现升级失败的情况,从而避免升级过程中遇到重启时,部分需要落盘到设备分区的数据还在内核缓存(即cache)中而没有真正落盘到设备分区导致校验失败的情况,进而使得在头戴显示设备在升级过程中出现掉电时,重启后能够有效完成系统升级,以使升级成功。
实施例二
基于本申请第一实施例,在本申请另一实施例中,与上述实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述,所述对所述目标设备分区进行重新升级的步骤包括:
步骤D10,将目标升级数据覆写至所述头戴显示设备的目标设备分区,以对所述目标设备分区进行重新升级,其中,所述目标升级数据包括至少一个目标升级block数据,所述目标升级block数据为对所述目标设备分区进行升级操作的升级block数据。
本实施例通过将目标升级数据覆写至头戴显示设备的目标设备分区,其中,该目标升级数据包括至少一个目标升级block数据,目标升级block数据为对所述目标设备分区进行升级操作的升级block数据,即升级的具体过程可以理解为将各设备分区中原始的数据,对应替换为升级包数据中各设备分区对应的数据,从而实现对目标设备分区重新升级的过程,避免升级过程中遇到重启时,部分需要落盘到设备分区的数据还在内核缓存(即cache)中而没有真正落盘到设备分区导致校验失败的情况,进而使得在头戴显示设备在升级过程中出现掉电时,重启后能够有效完成系统升级,以使升级成功。
为了助于理解本申请的技术构思,列举一具体实施例,包括:
升级前版本为V1(即原版本),升级后的版本为V2(即目标版本),本实施例以需要升级的设备分区为boot、system、vendor进行举例说明,operations_数组为{10,25,33}(即设备分区boot的升级操作具有10个、设备分区system的升级操作具有25个,以及设备分区vendor的升级操作具有33个,且按照boot、system、vendor的顺序对各设备分区进行升级)。
(1)判断当前的升级动作标识是new还是resume update(即检测头戴显示设备从原版本升级为目标版本的升级过程中是否重启,在升级过程中未出现重启,则升级动作标识为一直为“new”,在升级过程中出现重启后可检测到升级动作标识更换为“resumeupdate”,直至目标设备分区实现成功升级或者说目标设备分区的所有升级操作全部完成,才将升级动作标识转换回“new”)
new 操作继续执行升级流程;
resume update操作,则执行步骤(2)
(2)读取升级进度记录文件,判断当前的operation id,根据operation数组判断上次升级执行到哪个分区,例如是boot分区(即基于当前执行的目标升级操作,确定所述目标升级操作对应升级的目标设备分区,其中,此时的boot分区为目标设备分区),此时计算设备上boot分区的hash值和V2中记录的boot分区hash值进行对比。
如果一致,则继续执行升级动作(即若该第一哈希值与第二哈希值一致,确定该哈希校验结果为校验成功,则从目标设备分区对应的下一升级顺位的设备分区进行接续升级);
如果boot分区的hash值和V2不一致,则根据operation数组重新执行boot分区对应的operation操作(即若该第一哈希值与第二哈希值不一致,确定该哈希校验结果为校验失败,则对目标设备分区进行重新升级)。
需要说明的是,该具体实施例阐述的诸多细节仅助于理解本申请的技术构思,并不构成对本申请的限定,基于本申请的该技术构思进行更多形式的简单变换,均应在本申请的保护范围内。
实施例三
本发明实施例还提供一种OTA升级装置,请参照图4,所述OTA升级装置应用于头戴显示设备,所述头戴显示设备的存储器包括多个设备分区,所述OTA升级装置包括:
检测模块10,用于检测头戴显示设备从原版本升级为目标版本的升级过程中是否重启;
查询模块20,用于在检测到所述升级过程中重启后,从升级进度记录文件中查询得到重启前最新升级的目标设备分区;
校验模块30,用于基于所述目标版本的升级包数据,对所述目标设备分区中的数据进行哈希校验,得到哈希校验结果;
升级模块40,用于若所述哈希校验结果为校验失败,则对所述目标设备分区进行重新升级;若所述哈希校验结果为校验成功,则从所述目标设备分区对应的下一升级顺位的设备分区进行接续升级。
可选地,校验模块30,还用于:
基于所述目标版本的升级包数据,确定对所述目标设备分区进行升级的目标升级数据的第一哈希值,并计算所述目标设备分区中的数据的第二哈希值;
若所述第一哈希值与所述第二哈希值一致,则确定对所述目标设备分区中的数据进行哈希校验的哈希校验结果为校验成功;
若所述第一哈希值与所述第二哈希值不一致,则确定对所述目标设备分区中的数据进行哈希校验的哈希校验结果为校验失败。
可选地,升级模块40,还用于:
获取所述目标版本的升级包数据,其中,所述目标版本的升级包数据包括多个升级block数据,一个升级block数据对应于一个设备分区的一个升级操作,且每个升级操作具有对应的升级次序;
依据各所述升级操作对应的升级次序,通过各个升级block数据,依次对所述头戴显示设备的各个设备分区进行升级操作,并基于当前执行的目标升级操作,对所述升级进度记录文件进行同步更新;
直至完成所述升级包数据对应的所有升级操作,将所述头戴显示设备从原版本成功升级为目标版本。
可选地,升级模块40,还用于:
依据各所述升级操作对应的升级次序,将各个升级block数据依次覆写至所述头戴显示设备的各个设备分区,以依次完成对所述头戴显示设备的各个设备分区的升级操作。
可选地,升级模块40,还用于:
基于当前执行的目标升级操作,确定所述目标升级操作对应升级的目标设备分区;
将所述目标设备分区对应的分区升级信息同步写入至所述升级进度记录文件中,以对所述升级进度记录文件进行同步更新。
可选地,升级模块40,还用于:
将目标升级数据覆写至所述头戴显示设备的目标设备分区,以对所述目标设备分区进行重新升级,其中,所述目标升级数据包括至少一个目标升级block数据,所述目标升级block数据为对所述目标设备分区进行升级操作的升级block数据。
可选地,升级模块40,还用于:
在所述重新升级完成后,检测所述升级包数据对应的所有升级操作是否均完成;
若未全部完成,则依据各所述升级操作对应的升级次序,对所述目标设备分区对应的下一升级顺位的设备分区进行接续升级,直至所述升级包数据对应的所有升级操作均完成。
本发明实施例提供的OTA升级装置,采用上述实施例一或实施例二中的OTA升级方法,能实现头戴显示设备在升级过程中出现掉电时,重启后能够有效完成系统升级。与现有技术相比,本发明实施例提供的OTA升级装置的有益效果与上述实施例提供的OTA升级方法的有益效果相同,且所述OTA升级装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
实施例四
本发明实施例提供一种头戴显示设备,头戴显示设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例一中的OTA升级方法。
下面参考图5,其示出了适于用来实现本公开实施例的头戴显示设备的结构示意图。本公开实施例中的该头戴显示设备包括但不限于混合现实(Mixed Reality)—MR设备(例如MR眼镜或者MR头盔)、增强现实(Augmented Reality)—AR设备(例如AR眼镜或者AR头盔)、虚拟现实-(VirtualReality)—VR设备(例如VR眼镜或者VR头盔)、扩展现实(ExtendedReality)—XR设备或其某种组合等等头戴显示设备。图5示出的头戴显示设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,头戴显示设备可以包括处理装置1001(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(ROM1002)中的程序或者从存储装置加载到随机访问存储器(RAM1004)中的程序而执行各种适当的动作和处理。在RAM1004中,还存储有头戴显示设备操作所需的各种程序和数据。处理装置1001、ROM1002以及RAM1004通过总线1005彼此相连。输入/输出(I/O)接口也连接至总线1005。
通常,以下系统可以连接至I/O接口1006:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置1007;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1008;包括例如磁带、硬盘等的存储装置1003;以及通信装置1009。通信装置1009可以允许头戴显示设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种系统的头戴显示设备,但是应理解的是,并不要求实施或具备所有示出的系统。可以替代地实施或具备更多或更少的系统。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置1003被安装,或者从ROM1002被安装。在该计算机程序被处理装置1001执行时,执行本公开实施例的方法中限定的上述功能。
本发明提供的头戴显示设备,采用上述实施例中的OTA升级方法,能实现头戴显示设备在升级过程中出现掉电时,重启后能够有效完成系统升级。与现有技术相比,本发明实施例提供的头戴显示设备的有益效果与上述实施例提供的OTA升级方法的有益效果相同,且该头戴显示设备中的其他技术特征与上一实施例方法公开的特征相同,在此不做赘述。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
实施例五
本发明实施例提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行上述实施例中的OTA升级方法。
本发明实施例提供的计算机可读存储介质例如可以是U盘,但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读存储介质可以是头戴显示设备中所包含的;也可以是单独存在,而未装配入头戴显示设备中。
上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被头戴显示设备执行时,使得头戴显示设备:检测头戴显示设备从原版本升级为目标版本的升级过程中是否重启;在检测到所述升级过程中重启后,从升级进度记录文件中查询得到重启前最新升级的目标设备分区;基于所述目标版本的升级包数据,对所述目标设备分区中的数据进行哈希校验,得到哈希校验结果;若所述哈希校验结果为校验失败,则对所述目标设备分区进行重新升级;若所述哈希校验结果为校验成功,则从所述目标设备分区对应的下一升级顺位的设备分区进行接续升级。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。
本发明提供的计算机可读存储介质,存储有用于执行上述OTA升级方法的计算机可读程序指令,能实现头戴显示设备在升级过程中出现掉电时,重启后能够有效完成系统升级。与现有技术相比,本发明实施例提供的计算机可读存储介质的有益效果与上述实施例一或实施例二提供的OTA升级方法的有益效果相同,在此不做赘述。
实施例六
本发明实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的OTA升级方法的步骤。
本申请提供的计算机程序产品能实现头戴显示设备在升级过程中出现掉电时,重启后能够有效完成系统升级。与现有技术相比,本发明实施例提供的计算机程序产品的有益效果与上述实施例一或实施例二提供的OTA升级方法的有益效果相同,在此不做赘述。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利处理范围内。

Claims (10)

1.一种OTA升级方法,其特征在于,应用于头戴显示设备,所述头戴显示设备的存储器包括多个设备分区,所述方法包括:
检测头戴显示设备从原版本升级为目标版本的升级过程中是否重启;
在检测到所述升级过程中重启后,从升级进度记录文件中查询得到重启前最新升级的目标设备分区;
基于所述目标版本的升级包数据,对所述目标设备分区中的数据进行哈希校验,得到哈希校验结果;
若所述哈希校验结果为校验失败,则对所述目标设备分区进行重新升级;
若所述哈希校验结果为校验成功,则从所述目标设备分区对应的下一升级顺位的设备分区进行接续升级。
2.如权利要求1所述的OTA升级方法,其特征在于,所述基于所述目标版本的升级包数据,对所述目标设备分区中的数据进行哈希校验,得到哈希校验结果的步骤包括:
基于所述目标版本的升级包数据,确定对所述目标设备分区进行升级的目标升级数据的第一哈希值,并计算所述目标设备分区中的数据的第二哈希值;
若所述第一哈希值与所述第二哈希值一致,则确定对所述目标设备分区中的数据进行哈希校验的哈希校验结果为校验成功;
若所述第一哈希值与所述第二哈希值不一致,则确定对所述目标设备分区中的数据进行哈希校验的哈希校验结果为校验失败。
3.如权利要求1所述的OTA升级方法,其特征在于,所述头戴显示设备从原版本升级为目标版本的升级过程包括:
获取所述目标版本的升级包数据,其中,所述目标版本的升级包数据包括多个升级block数据,一个升级block数据对应于一个设备分区的一个升级操作,且每个升级操作具有对应的升级次序;
依据各所述升级操作对应的升级次序,通过各个升级block数据,依次对所述头戴显示设备的各个设备分区进行升级操作,并基于当前执行的目标升级操作,对所述升级进度记录文件进行同步更新;
直至完成所述升级包数据对应的所有升级操作,将所述头戴显示设备从原版本成功升级为目标版本。
4.如权利要求3所述的OTA升级方法,其特征在于,所述依据各所述升级操作对应的升级次序,通过各个升级block数据,依次对所述头戴显示设备的各个设备分区进行升级操作,包括:
依据各所述升级操作对应的升级次序,将各个升级block数据依次覆写至所述头戴显示设备的各个设备分区,以依次完成对所述头戴显示设备的各个设备分区的升级操作。
5.如权利要求3所述的OTA升级方法,其特征在于,所述基于当前执行的目标升级操作,对所述升级进度记录文件进行同步更新的步骤包括:
基于当前执行的目标升级操作,确定所述目标升级操作对应升级的目标设备分区;
将所述目标设备分区对应的分区升级信息同步写入至所述升级进度记录文件中,以对所述升级进度记录文件进行同步更新。
6.如权利要求3至5中任一项所述的OTA升级方法,其特征在于,所述对所述目标设备分区进行重新升级的步骤包括:
将目标升级数据覆写至所述头戴显示设备的目标设备分区,以对所述目标设备分区进行重新升级,其中,所述目标升级数据包括至少一个目标升级block数据,所述目标升级block数据为对所述目标设备分区进行升级操作的升级block数据。
7.如权利要求3至5中任一项所述的OTA升级方法,其特征在于,在所述对所述目标设备分区进行重新升级的步骤之后,所述方法还包括:
在所述重新升级完成后,检测所述升级包数据对应的所有升级操作是否均完成;
若未全部完成,则依据各所述升级操作对应的升级次序,对所述目标设备分区对应的下一升级顺位的设备分区进行接续升级,直至所述升级包数据对应的所有升级操作均完成。
8.一种OTA升级装置,其特征在于,应用于头戴显示设备,所述头戴显示设备的存储器包括多个设备分区,所述装置包括:
检测模块,用于检测头戴显示设备从原版本升级为目标版本的升级过程中是否重启;
查询模块,用于在检测到所述升级过程中重启后,从升级进度记录文件中查询得到重启前最新升级的目标设备分区;
检验模块,用于基于所述目标版本的升级包数据,对所述目标设备分区中的数据进行哈希校验,得到哈希校验结果;
升级模块,用于若所述哈希校验结果为校验失败,则对所述目标设备分区进行重新升级;若所述哈希校验结果为校验成功,则从所述目标设备分区对应的下一升级顺位的设备分区进行接续升级。
9.一种头戴显示设备,其特征在于,所述头戴显示设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一项所述OTA升级方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质为计算机可读存储介质,所述计算机可读存储介质上存储有实现OTA升级方法的程序,所述实现OTA升级方法的程序被处理器执行以实现如权利要求1至7中任一项所述OTA升级方法的步骤。
CN202311797117.2A 2023-12-25 2023-12-25 Ota升级方法、装置、头戴显示设备和可读存储介质 Pending CN117873538A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311797117.2A CN117873538A (zh) 2023-12-25 2023-12-25 Ota升级方法、装置、头戴显示设备和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311797117.2A CN117873538A (zh) 2023-12-25 2023-12-25 Ota升级方法、装置、头戴显示设备和可读存储介质

Publications (1)

Publication Number Publication Date
CN117873538A true CN117873538A (zh) 2024-04-12

Family

ID=90578423

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311797117.2A Pending CN117873538A (zh) 2023-12-25 2023-12-25 Ota升级方法、装置、头戴显示设备和可读存储介质

Country Status (1)

Country Link
CN (1) CN117873538A (zh)

Similar Documents

Publication Publication Date Title
US11392461B2 (en) Method and apparatus for processing information
US8738883B2 (en) Snapshot creation from block lists
US20210240489A1 (en) Firmware update patch
US10002054B2 (en) Method and system for performing automatic system recovery
US8423991B2 (en) Embedded network device and firmware upgrading method
US8495351B2 (en) Preparing and preserving a system configuration during a hot upgrade
US20120167090A1 (en) Hypervisor for starting a virtual machine
US8898345B2 (en) Out-of-band management of third party adapter configuration settings in a computing system
CN110825419B (zh) 一种固件刷新方法、装置及电子设备和存储介质
CN112882734B (zh) 升级方法及装置、计算机设备和介质
US20210279048A1 (en) System capable of upgrading firmware in background and method for upgrading firmware in background
CN115202686A (zh) 虚拟化系统的升级方法、装置、电子设备及存储介质
US9588884B2 (en) Systems and methods for in-place reorganization of device storage
CN114780019A (zh) 电子设备的管理方法、装置、电子设备及存储介质
CN112416394A (zh) 一种服务升级方法、装置、存储介质及电子设备
KR101461319B1 (ko) 셋탑박스의 펌웨어 업그레이드 방법 및 펌웨어 업그레이드 장치
KR102274668B1 (ko) 차량용 avn 시스템의 소프트웨어 업데이트 제어 장치 및 방법
CN114443442B (zh) 日志存储方法及电子设备
CN117873538A (zh) Ota升级方法、装置、头戴显示设备和可读存储介质
CN114153503A (zh) 一种bios控制方法、装置、介质
CN114296764A (zh) 系统升级方法、装置、存储介质和电子设备
CN113656063A (zh) 一种系统版本更换方法、装置、设备及计算机可读介质
CN116701318B (zh) 系统升级信息获取方法、电子设备及存储介质
US11762756B2 (en) System and method for startup data verification
CN109245920B (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