系统的升级方法、装置、设备及计算机可读介质与流程

文档序号:18883888发布日期:2019-10-15 20:34阅读:145来源:国知局
系统的升级方法、装置、设备及计算机可读介质与流程

本发明涉及系统升级技术领域,尤其涉及一种黑匣子系统的升级方法及装置、设备和计算机可读介质。



背景技术:

随着互联网技术和人工智能技术的快速发展,无人驾驶汽车作为新型的交通运输工具,有望得到越来越普遍的应用。其中,无人车黑匣子是用于记录无人车的行车数据的设备,其所记录的数据可作为驾驶行为分析、事故分析的依据。

而由于系统的升级需求,需要经常对无人车黑匣子进行系统升级。然而,目前主要还是通过人工升级方式对黑匣子进行升级,无法保证系统升级时的安全性和便捷性。



技术实现要素:

本发明实施例提供一种系统的升级方法、装置、设备及计算机可读介质,以解决或缓解现有技术中的一个或多个技术问题。

第一方面,本发明实施例提供了一种系统的升级方法,包括:

接收经过私钥加密的升级固件,并将所述升级固件保存在数据分区;

通过第一系统对所述升级固件进行校验认证;

当第一系统校验成功时,通过第二系统将所述升级固件安装到静默分区中,所述静默分区为所述第二系统启动时未使用的分区。

在一种实施方式中,通过空中下载技术从云端下载所述升级固件。

在一种实施方式中,所述通过第一系统对所述升级固件进行校验认证,包括:

从所述数据分区中将所述升级固件读取到第一系统的内存中;

从重放保护内存块分区中读取公钥,对所述升级固件进行校验认证。

在一种实施方式中,该方法还包括:

在所述升级固件安装完成后,将所述静默分区设置为单次活动分区,所述单次活动分区为所述第二系统重启时临时使用的分区;

当第二系统重启时,将引导加载程序从所述单次活动分区启动,再将所述单次活动分区设置为静默分区;

由第二系统进行自检操作,如果第二系统自检成功,则将所述静默分区设置为新活动分区,将原活动分区设置为静默分区,所述新活动分区为所述第二系统启动时使用的分区。

在一种实施方式中,该方法还包括:

如果所述第二系统自检失败,进行回滚操作。

在一种实施方式中,所述第一系统为可信执行环境系统;所述第二系统为linux系统。

第二方面,本发明实施例提供了一种系统的升级装置,包括:

接收模块,用于接收经过私钥加密的升级固件,并将所述升级固件保存在数据分区;

校验模块,用于通过第一系统对所述升级固件进行校验认证;

安装模块,用于当第一系统校验成功时,通过第二系统将所述升级固件安装到静默分区中,所述静默分区为所述第二系统启动时未使用的分区。

在一种实施方式中,所述升级固件通过空中下载技术从云端下载。

在一种实施方式中,所述校验模块包括:

读取子模块,用于从所述数据分区中将所述升级固件读取到第一系统的内存中;

验证子模块,用于从重放保护内存块分区中读取公钥,对所述升级固件进行校验认证。

在一种实施方式中,该装置还包括:

分区设置模块,用于在所述升级固件安装完成后,将所述静默分区设置为单次活动分区,所述单次活动分区为所述第二系统重启时临时使用的分区;

重启模块,用于当第二系统重启时,将引导加载程序从所述单次活动分区启动,再将所述单次活动分区设置为静默分区;

自检模块,用于由第二系统进行自检操作,如果第二系统自检成功,则将所述静默分区设置为新活动分区,将原活动分区设置为静默分区,所述新活动分区为所述第二系统启动时使用的分区。

在一种实施方式中,该装置还包括:

回滚模块,用于如果所述第二系统自检失败,进行回滚操作。

在一种实施方式中,所述第一系统为可信执行环境系统;所述第二系统为linux系统。

第三方面,本发明实施例提供一种系统的升级设备,所述设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述第一方面所述的系统的升级方法。

在一个可能的设计中,系统升级设备的结构中包括处理器和存储器,所述存储器用于存储支持系统升级设备执行上述第一方面中系统的升级方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述系统升级设备还可以包括通信接口,用于系统升级设备与其他设备或通信网络通信。

第四方面,本发明实施例提供了一种计算机可读介质,用于存储系统升级装置所用的计算机软件指令,其包括用于执行上述第一方面的系统的升级方法所涉及的程序。

在上述的一种方案中,本发明实施例通过对升级固件进行加密,可以保证在传输过程中的安全性,同时分别在两个系统中对升级固件校验解密和对升级固件进行安装,保证校验的安全性。

在上述另一种方案中,本发明实施例通过空中下载技术方式从云端接收升级固件,从而可以保证接收升级固件的便捷性。另外,本发明实施例针对系统升级失败的情况下进行回滚操作,可以保证系统正常运行。

上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。

附图说明

在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。

图1为本发明一实施例的黑匣子系统的升级方法的流程图;

图2为本发明一实施例的步骤s120的具体步骤流程图;

图3为本发明一实施例的步骤s130的具体步骤流程图;

图4为本发明一实施例的黑匣子系统的升级方法的整体实施示意图;

图5为本发明一实施例的车辆黑匣子系统升级装置的连接框图;

图6为本发明一实施例的判断模块的内部框图;

图7为本发明一实施例的提取模块的内部框图;

图8为本发明另一实施例的车辆黑匣子系统升级设备框图。

具体实施方式

在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。本发明实施例主要提供了一种车辆黑匣子系统升级的方法及装置,下面分别通过以下实施例进行技术方案的展开描述。

如图1所示,在一种实施例中,本发明提供了一种黑匣子系统的升级方法,包括:

s110:接收经过私钥加密的升级固件,并将所述升级固件保存在数据分区。

首先,当汽车黑匣子有新的系统版本时,可以在ota(over-the-air,空中技术)云端中心发布新的系统版本,然后先通过私钥将系统版本对应的升级固件进行签名加密。所述升级固件为对黑匣子的内嵌固件进行升级的程序,用于完善黑匣子功能、增强稳定性、修补漏洞等,比如可以包括系统程序、系统中漏洞修复程序、系统中的软件驱动程序等。另外,还需要将云端中心的公钥存储在黑匣子的重放保护内存块分区(rpmb,replayprotectedmemoryblock)中。所述黑匣子在接收升级固件时,可以通过空中下载技术(ota,over-the-airtechnology)从云端下载,从而提高无人车的黑匣子进行系统更新的便捷性。

s120:通过第一系统对所述升级固件进行校验认证。

在一种实施方式中,所述第一系统为可信执行环境(tee,trustedexecutionenvironment)系统。在一种实施方式中,如图2所示,所述步骤s120可以包括:

s121:从所述数据分区中将所述升级固件读取到第一系统的内存中。

当黑匣子接收了升级固件后,通知tee系统,由tee系统将升级固件读取到tee系统中的安全内存中。

s122:从重放保护内存块分区中读取公钥,对所述升级固件进行校验认证。

在一种实施方式中,由tee系统从重放保护内存块中读取预先存储的公钥。在读取公钥后,通过读取到的公钥对所述升级固件进行校验认证,判断所述升级固件是否安全。其中,所述升级固件在经过私钥加密后,在所述升级固件文件上形成数字签名。然后,可以通过公钥对该数字签名进行验证。如果验证通过,则表明升级固件的来源正确,则表示该升级固件安全,可以正常进行安装。例如在一种实施方式中,当进行签名验证时,可以通过公钥对接收到的信息进行加密操作,判断通过公钥加密后的签名是否与接收到的私钥签名一致,如果是,则验证通过。

s130:当第一系统校验成功时,通过第二系统将所述升级固件安装到静默分区中,所述静默分区为所述第二系统启动时未使用的分区。

在一种实施方式中,所述第二系统为linux系统。当tee系统校验完成后,如果所述升级固件的校验结果安全,则将所述校验结果通知linux系统,由所述linux系统将升级固件安装到静默分区中。计算机系统的数据分区可以包括活动分区与静默分区。活动分区与静默分区可以存放操作系统例如linux系统的文件。操作系统启动时使用活动分区中的文件,不使用静默分区中的文件。

如图3所示,在一种实施例中,所述黑匣子系统的升级方法还包括:

s140:在所述升级固件安装完成后,将所述静默分区设置为单次活动分区,所述单次活动分区为所述第二系统重启时临时使用的分区。

为了在操作系统重启时能够加载静默分区中新安装的程序,通过第二系统将升级固件安装到静默分区后,可以将静默分区设置为单次活动分区,从而可以使黑匣子启动时从单次活动分区中加载升级后的系统。在一种实施方式中,黑匣子的linux系统中的内存中可以包括活动分区和静默分区。其中,黑匣子在启动时会先检测分区性质,从活动分区中加载系统程序。升级固件安装到静默分区后,将静默分区设置为单次活动分区。这样,在黑匣子重启时可以从所述单次活动分区中加载新安装的程序。

s150:当黑匣子系统重启时,将引导加载程序(bootloader)从所述单次活动分区启动,再将所述单次活动分区设置为静默分区。

在系统重启后先将单次活动分区设置为静默分区,如果升级后的系统加载错误,可以防止下次继续从当前安装新升级系统的分区中启动。而当黑匣子从单次活动分区中加载系统程序后,需要进行下一步自检。因此,此时先将该单次活动分区还原为静默分区,从而可以避免自检不成功时下次系统继续从当前分区中加载程序。

s160:由第二系统进行自检操作,如果第二系统自检成功,则将所述静默分区设置为新活动分区,将原活动分区设置为静默分区。

在一种实施方式中,可以由linux系统进行自检操作,在自检成功后将分区进行切换,从而使得下次系统启动时可以加载升级后的系统。linux重启后一般会执行自检操作,以检查文件系统的一致性,判断是否存在错误的系统文件等。如果自检成功,可以将静默分区设置为新活动分区,将原活动分区设置为静默分区。

s170:如果所述第二系统自检失败,进行回滚操作。

例如,如果在加载系统的过程中程序或数据处理错误,则会导致系统自检失败,此时执行回滚操作。执行所述回滚操作可以将当前系统恢复至上次能够正常启动的系统的操作状态。

以下具体介绍本发明实施例的黑匣子升级方法的整体实现过程。如图4所示,其为本发明实施例的黑匣子系统升级方法的整体实施例示意图。

首先,在对黑匣子的系统进行升级操作之前,先将ota云端中心的公钥保存到黑匣子rpmb分区。当ota云端中心发布新的系统版本时,使用私钥将升级固件签名加密。

然后,黑匣子具体通过以下步骤实现系统升级:

步骤1:黑匣子通过网络拉取新的升级固件,保存在数据分区。

步骤2:由linux系统通知tee安全系统启动固件升级流程,tee安全系统将升级固件读取到tee系统的安全内存中。

步骤3:tee安全系统从rpmb分区读取ota公钥对升级固件进行校验认证,如果校验失败则升级过程终止。

步骤4:如果校验成功,由tee安全系统通知linux系统升级校验成功的消息。

步骤5:linux系统收到校验成功的消息后将升级固件的文件安装到静默分区。例如:在初始状态下,a分区为活动分区,b分区为静默分区。a分区和b分区都保存了linux系统的文件。tee验证成功后,可以先将升级固件安装到b分区。

步骤6:linux系统将原静默分区(b分区)设置为单次活动分区。

步骤7:设备重启,引导加载程序从单次活动分区(b分区)启动,然后将单次活动分区设置为静默分区(b分区)。linux系统执行设备自检操作,自检成功后,则将原静默分区(b分区)设置为新的活动分区,原活动分区(a分区)设置为静默分区。如果自检失败,则不会切换分区(b分区保持为静默分区),完成回滚操作。

本发明实施例通过在对升级固件进行加密,可以保证在传输过程中的安全性,同时分别在两个系统中对升级固件校验解密和对升级固件进行安装,保证校验的安全性。本发明实施例通过空中下载技术方式从云端接收升级固件,从而可以保证接收升级固件的便捷性。另外,本发明实施例针对系统升级失败的情况下进行回滚操作,可以保证黑匣子正常运行。

如图5所示,在一种实施例中,本发明还提供了一种车辆黑匣子系统升级装置,包括:

接收模块110,用于接收经过私钥加密的升级固件,并将所述升级固件保存在数据分区。在一种实施方式中,通过空中下载技术从云端下载所述升级固件。

校验模块120,用于通过第一系统对所述升级固件进行校验认证。

安装模块130,用于当第一系统校验成功时,通过第二系统将所述升级固件安装到静默分区中,所述静默分区为所述第二系统启动时未使用的分区。在一种实施方式中,所述第一系统为可信执行环境系统。所述第二系统为linux系统。

在一种实施方式中,所述校验模块120包括:

读取子模块121,用于从所述数据分区中将所述升级固件读取到第一系统的内存中。

验证子模块122,用于从重放保护内存块分区中读取公钥,对所述升级固件进行校验认证。

在一种实施例中,该装置还包括:

分区设置模块140,用于在所述升级固件安装完成后,将所述静默分区设置为单次活动分区,所述单次活动分区为所述第二系统重启时临时使用的分区。

重启模块150,用于当第二系统重启时,将引导加载程序从所述单次活动分区启动,再将所述单次活动分区设置为静默分区。

自检模块160,用于由第二系统进行自检操作,如果第二系统自检成功,则将所述静默分区设置为新活动分区,将原活动分区设置为静默分区,所述新活动分区为所述第二系统启动时使用的分区。

回滚模块170,用于如果所述第二系统自检失败,进行回滚操作。

本实施例的车辆黑匣子系统升级装置与上述实施例的黑匣子系统的升级方法的原理类似,故不再赘述。

在另一个实施例中,本发明还提供一种车辆黑匣子系统升级设备,如图8所示,该设备包括:存储器510和处理器520,存储器510内存储有可在处理器520上运行的计算机程序。所述处理器520执行所述计算机程序时实现上述实施例中的黑匣子系统的升级方法。所述存储器510和处理器520的数量可以为一个或多个。

该设备还包括:

通信接口530,用于与外界设备进行通信,进行数据交互传输。

存储器510可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

如果存储器510、处理器520和通信接口530独立实现,则存储器510、处理器520和通信接口530可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(isa,industrystandardarchitecture)总线、外部设备互连(pci,peripheralcomponent)总线或扩展工业标准体系结构(eisa,extendedindustrystandardcomponent)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

可选的,在具体实现上,如果存储器510、处理器520及通信接口530集成在一块芯片上,则存储器510、处理器520及通信接口530可以通过内部接口完成相互间的通信。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。

本发明实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质的更具体的示例至少(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式只读存储器(cdrom)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

在本发明实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于指令执行系统、输入法或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频(radiofrequency,rf)等等,或者上述的任意合适的组合。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1