一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种固件升级系统及方法与流程

2022-02-19 04:34:23 来源:中国专利 TAG:


1.本发明涉及数据升级技术领域,具体而言,涉及一种固件升级系统及方法。


背景技术:

2.随着互联网以及车载通信技术的高速发展,物联网的需求也日益增长。其中,车联网就是物联网中的重要一环。
3.为了保证车辆的行驶安全,需要对车辆车载设备进行升级,目前车载设备的升级方案,流程一般为:云端向车辆ecu终端发送整车状态查询以及固件升级校验,并在校验车辆ecu终端符合升级要求的情况下,向车辆ecu终端下发升级固件包;待车辆ecu终端接收到升级固件包后,车辆ecu终端对升级固件包进行完整性校验,在确定升级固件包完整性校验通过,车辆ecu终端直接将升级固件包的内容写入其固件区域;后续的,车辆ecu终端重启后,完成升级。
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.利用预设验证过程,对所述升级包中所述待升级固件对应的升级数据进行验证;
38.并在各升级数据验证通过后,利用本地存储的指定加密文本,对各升级数据中目标加密固件进行解密,得到各待升级固件对应的第一固件,并进行升级;
39.其中,所述预设验证过程,包括:
40.利用目标固件对应的目标升级数据中指定私钥所对应公钥,生成目标升级数据对应的当前公钥指纹;若所述当前公钥指纹与本地存储的目标固件所对应公钥指纹相同,利用目标升级数据中指定私钥所对应公钥,对所述目标升级数据中加密后指纹进行解密,得到目标指纹;利用所述第二加密算法,生成所述目标升级数据中目标加密固件的当前指纹;若所述当前指纹与所述目标指纹相同,则表征所述目标升级数据验证通过,其中,所述目标固件包括所述待升级固件。
41.由上述内容可知,本发明实施例提供的一种固件升级系统及方法,系统包括:待升级车载终端以及云端服务器;云端服务器,被配置为针对待升级车载终端升级所需的每一第一固件,利用第一加密算法对应的指定加密文本对该第一固件进行加密,得到目标加密固件;利用第二加密算法,生成目标加密固件对应的目标指纹;利用指定私钥对目标指纹进行加密,得到加密后指纹;基于每一第一固件对应的目标加密固件、目标指纹、加密后指纹及指定私钥所对应公钥,确定升级包,并发送至待升级车载终端,目标固件为待升级车载终端升级所需的固件;待升级车载终端,被配置为获得升级包,若第一固件不包含指定引导固件;利用运行的当前引导固件、升级包和分区激活状态表,确定待升级车载终端的待升级固件;利用预设验证过程,对升级包中待升级固件对应的升级数据进行验证;并在各升级数据验证通过后,利用本地存储的指定加密文本,对各升级数据中目标加密固件进行解密,得到各待升级固件对应的第一固件,并进行升级;其中,预设验证过程,包括:利用目标固件对应的目标升级数据中指定私钥所对应公钥,生成目标升级数据对应的当前公钥指纹;若当前公钥指纹与本地存储的目标固件所对应公钥指纹相同,利用目标升级数据中指定私钥所对应公钥,对目标升级数据中加密后指纹进行解密,得到目标指纹;利用第二加密算法,生成目标升级数据中目标加密固件的当前指纹;若当前指纹与目标指纹相同,则表征目标升级数据验证通过。
42.应用本发明实施例,云端服务器在向待升级车载终端发送升级所需的固件之前,对固件及其对应的密钥进行多重加密,且不同固件单独加密,得到升级包,并发送至待升级车载终端。待升级车载终端获得升级包,并基于分区激活状态表,确定待升级固件,利用基于预设验证过程,对升级包中各待升级固件对应的升级数据进行验证,验证通过后对待升级固件进行升级,实现对待升级车载终端的固件的模块化升级,并且,在升级前,对升级包中各待升级固件对应的升级数据进行验证,保证所获得的升级数据的合法性以及准确性,保证升级过程的安全。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
43.本发明实施例的创新点包括:
44.1、云端服务器对待发送的每一固件及其密钥进行多重加密,生成升级包,并发送至待升级车载终端,待升级车载终端基于分区激活状态表,确定待升级车载终端的待升级
固件,并对升级包中待升级固件对应的升级数据进行验证且验证通过后进行升级,实现对待升级车载终端的固件的模块化升级,且保证所获得的升级数据的合法性以及准确性,保证升级过程的安全。
45.2、设置多存储分区以及出厂分区,以在一定程度上在某个或某些存储分区的固件在升级后无法正常启动的情况下,可启动其他存储分区或出厂分区的固件,以保证待升级车载终端的正常使用。
46.3、针对分区设置剩余启动次数,以保证待升级分区可以多次尝试升级,以在一定程度上保证待升级分区的待升级固件可正常升级并使用。
附图说明
47.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
48.图1为本发明实施例提供的固件升级系统的一种结构示意图;
49.图2本发明实施例提供的待升级车载终端的一种结构示意图;
50.图3为本发明实施例提供的待升级车载终端的存储单元的一种分区示意图;
51.图4为本发明实施例提供的分区激活状态表的一种结构示意图;
52.图5为本发明实施例提供的云端服务器的加密过程,以及待升级车载终端的解密过程一种示意图;
53.图6为本发明实施例提供的固件升级方法的一种流程示意图;
54.图7为本发明实施例提供的固件升级方法的一种流程示意图。
具体实施方式
55.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
56.需要说明的是,本发明实施例及附图中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含的一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
57.本发明提供了一种固件升级系统及方法,以实现提高固件升级的安全性,保证设备升级后的安全启动。下面对本发明实施例进行详细说明。
58.图1为本发明实施例提供的固件升级系统的一种结构示意图。该固件升级系统可以包括:待升级车载终端110以及云端服务器120;
59.云端服务器120,被配置为针对待升级车载终端升级所需的每一第一固件,利用第一加密算法对应的指定加密文本对该第一固件进行加密,得到目标加密固件;利用第二加密算法,生成所述目标加密固件对应的目标指纹;利用指定私钥对所述目标指纹进行加密,
得到加密后指纹;基于每一第一固件对应的目标加密固件、目标指纹、加密后指纹及指定私钥所对应公钥,确定升级包,并发送至待升级车载终端110,目标固件为待升级车载终端升级所需的固件。
60.待升级车载终端110,被配置为获得升级包,若第一固件不包含指定引导固件,利用运行的当前引导固件、升级包和分区激活状态表,确定待升级车载终端的待升级固件;利用预设验证过程,对升级包中待升级固件对应的升级数据进行验证;并在各升级数据验证通过后,利用本地存储的指定加密文本,对各升级数据中目标加密固件进行解密,得到各待升级固件对应的第一固件,并进行升级。
61.其中,预设验证过程,包括:
62.利用目标固件对应的目标升级数据中指定私钥所对应公钥,生成目标升级数据对应的当前公钥指纹;若当前公钥指纹与本地存储的目标固件所对应公钥指纹相同,利用目标升级数据中指定私钥所对应公钥,对目标升级数据中加密后指纹进行解密,得到目标指纹;利用第二加密算法,生成目标升级数据中目标加密固件的当前指纹;若当前指纹与目标指纹相同,则表征目标升级数据验证通过,其中,目标固件包括待升级固件。
63.其中,固件升级系统中待升级车载终端110可以为一个或者多个,在待升级车载终端110为多个时,云端服务器120在获得任一待升级车载终端110发送的升级请求后,可针对该待升级车载终端110执行后续固件升级流程。或者,可以是云端服务器120在校验车载终端符合升级要求的情况下,将该符合升级要求的车载终端作为待升级车载终端,并针对该待升级车载终端110执行后续固件升级流程。
64.云端服务器120可支持全量升级、差分升级以及单核心升级功能。其中,全量升级是指对待升级车载终端110即车载控制器的全部固件进行刷新升级,需要云端服务器120下发待升级车载终端所需的整个升级包,即包含待升级车载终端110的全部固件的升级包。差分升级是指在待升级车载终端110已有固件的基础上,云端服务器120仅下发新旧固件的差异部分,以达到固件升级的目的,它与全量升级的区别在于下发升级包的大小不同,差分升级的升级包要小一些。单核心升级指的是在待升级车载终端110包含多个核心,每个核心运行独立的软件的情况下,只升级待升级车载终端110的某一个核心。
65.一种实现中,待升级车载终端110可以是任一需要升级其所安装固件的车载终端。待升级车载终端110在存在固件升级的需求的情况下,可以向云端服务器120发送固件升级请求,云端服务器120基于所获得固件升级请求确定该待升级车载终端110升级所需的固件,该待升级车载终端110升级所需的固件可以包括至少一个第一固件,第一固件可以为:相对于待升级车载终端已安装固件的更新版本的固件,也可以为:待升级车载终端所需新增的固件,这都是可以的。
66.其中,如图2所示,待升级车载终端110可以包括信息处理单元、存储单元以及网络接收单元,其中,待升级车载终端110通过其信息处理单元执行本发明实施例所提供的固件升级流程,待升级车载终端110通过其存储单元存储升级所需的固件。通过其网络接收单元接收云端处理器120所发送的固件以及发送固件升级请求,以与云端处理器120进行通信。
67.云端服务器120在确定出待升级车载终端升级所需的固件之后,针对其中每一第一固件,利用第一加密算法对应的指定加密文本对该第一固件进行加密,得到目标加密固件。其中,该第一加密算法可以为aes(advanced encryption standard,高级加密标准)加
密算法。该指定加密文本为aes加密算法的vi值。
68.利用第二加密算法对该目标加密固件进行编码,得到目标加密固件对应的目标指纹。其中,该第二加密算法可以为sha384加密算法。
69.利用指定私钥对目标指纹进行加密,得到加密后指纹,该指定私钥为基于rsa公钥加密算法生成的私钥,指定私钥对应公钥,用于对利用该指定私钥加密后的对象进行解密。
70.可以理解的是,不同第一固件可以对应不同的指定加密文本,也可以对应相同的指定加密文本,这都是可以的。同理,不同第一固件可以对应不同的指定私钥,可以对应相同的指定私钥。
71.第一固件对应的指定加密文本、指定私钥及其对应的公钥为云端服务器120与待升级车载终端110预先约定好的,云端服务器120存储有与待升级车载终端110约定的第一固件对应的指定加密文本以及指定私钥。待升级车载终端110存储有与云端服务器120约定的第一固件对应的指定加密文本以及指定私钥所对应公钥所对应的信息。一种情况,指定私钥所对应公钥所对应的信息可以是:指定私钥所对应公钥的公钥指纹。
72.在本发明的一种实现方式中,待升级车载终端110包括一次性可编程存储器,用于存储各待升级固件对应的指定加密文本以及指定私钥所对应公钥对应的信息。一种情况中,该待升级车载终端110的信息处理单元可以通过任一可安全选择启动三个分区及以上的处理器实现,例如可以通过zu11多核异构的处理器实现。该待升级车载终端110通过信息处理单元实现对所获得的升级包中各升级数据的验证以及升级过程。一种情况中,在待升级车载终端110的信息处理单元通过zu11多核异构的处理器实现的情况下,待升级车载终端110的一次性可编程存储器可以为efuse存储器。
73.后续的,云端服务器120得到每一第一固件对应的目标加密固件、目标指纹以及加密后指纹之后,基于每一第一固件对应的目标加密固件、目标指纹、加密后指纹及指定私钥所对应公钥,确定升级包,即将每一第一固件对应的目标加密固件、目标指纹、加密后指纹及指定私钥所对应公钥打包,发送至待升级车载终端110。一种情况中,云端服务器可以通过移动通信网络或者无线通信网络将升级包发送至待升级车载终端。该移动通信网络包括但不限于4g网络以及5g网络等。
74.待升级车载终端110可以通过网络接收单元获得升级包,并发送至其信息处理单元;通过其信息处理单元判断目标固件的第一固件中是否包含指定引导固件,若不包含指定引导固件,则待升级车载终端110运行待升级车载终端110本地已安装的当前引导固件,并利用运行的当前引导固件、升级包以及分区激活状态表,确定待升级车载终端的待升级固件。升级包中包含待升级固件对应的升级数据。理论上,待升级固件对应的升级数据包括:待升级固件升级所需的第一固件所对应的目标加密固件、目标指纹、加密后指纹及指定私钥所对应公钥。举例而言,升级包中的第一固件a对应的升级数据为2.1版本,待升级车载终端安装的第一固件a为2.0版本,则车载终端的第一固件a为待升级车载终端的待升级固件。
75.待升级固件为待升级车载终端的已有版本固件进行升级的固件时,其对应的第一固件为:待升级固件的更高版本的固件。待升级固件为待升级车载终端的新增固件时,其对应的第一固件为:待升级车载终端所需新增的固件。
76.其中,网络接收单元通过移动通信网络或者无线通信网络接收升级包。
77.其中,待升级车载终端110可以包括多个存储分区以及出厂分区,每一存储分区和出厂分区均存储有待升级车载终端110运行所需的固件,不同存储分区所存储的固件的版本可能存在区别。出厂分区存储出厂时的版本的固件。分区激活状态表包含指定当前待升级分区以及待升级的固件的信息;至少两个存储分区,用于存储固件。
78.待升级车载终端110通过其信息处理单元确定出待升级固件之后,通过其信息处理单元利用预设验证过程,对升级包中待升级固件对应的升级数据进行验证,在验证通过之后,利用本地存储的指定加密文本,对各升级数据中目标加密固件进行解密,得到各待升级固件对应的第一固件,并进行升级。
79.其中,预设验证过程为与云端服务器120对每一第一固件进行加密的镜像解密过程。具体的,可以为:针对每一待升级固件,将该待升级固件作为目标固件,待升级固件对应的升级数据作为目标升级数据;利用第二加密算法,对目标固件对应的目标升级数据中指定私钥所对应公钥进行编码,得到目标升级数据对应的当前公钥指纹;获得待升级车载终端本地存储的目标固件所对应公钥指纹,若目标升级数据对应的当前公钥指纹与本地存储的目标固件所对应公钥指纹相同,则确定目标固件对应的升级数据中指定私钥所对应公钥未被篡改,则利用目标升级数据中指定私钥所对应公钥,对目标升级数据中加密后指纹进行解密,得到目标指纹。
80.并利用第二加密算法对该目标升级数据中目标加密固件进行编码,生成目标升级数据中目标加密固件的当前指纹;并对比该目标指纹和当前指纹,判断两者是否相同,若相同,则确定目标升级数据中目标加密固件未被篡改,进一步确定该目标固件对应的目标升级数据为完整且未被篡改的数据,相应的,确定该目标固件对应的目标升级数据验证通过。
81.反之,若目标升级数据对应的当前公钥指纹与本地存储的目标固件所对应公钥指纹不相同,确定该目标固件对应的目标升级数据被篡改,可以认为该升级包存在问题,则不执行后续流程。一种情况,该待升级车载终端110可以继续向云端服务器120发送固件升级请求,重新获得新的固件升级包。
82.同理,若判断该目标升级数据对应的目标指纹和当前指纹不相同,确定该目标固件对应的目标升级数据被篡改,可以认为该升级包存在问题。
83.一种情况中,待升级车载终端110可以并行或串行将每一待升级固件作为目标固件,基于预设验证过程对其进行验证。一种实现中,在待升级车载终端110串行将每一待升级固件作为目标固件,基于预设验证过程对其进行验证的情况下,在当前作为目标固件的第一固件验证通过后,对其下一作为目标固件的第一固件进行验证。若当前作为目标固件的第一固件验证未通过,则不再对下一作为目标固件的第一固件进行验证,即验证过程结束,确定该升级包被篡改。
84.其中,指定引导固件可以指新版本的boot固件,第一固件可以包括但不限于:待升级车载终端升级所需的新版本的r5,pmu(power management unit,电源管理单元),uboot,kernel images(核镜像)以及fpga(field

programmable gate array,现场可编程门阵列)等车载终端的固件。
85.应用本发明实施例,云端服务器在向待升级车载终端发送升级所需的固件之前,对固件及其对应的密钥进行多重加密,且不同固件单独加密,得到升级包,并发送至待升级车载终端。待升级车载终端获得升级包,并基于分区激活状态表,确定待升级固件,利用基
于预设验证过程,对升级包中各待升级固件对应的升级数据进行验证,验证通过后对待升级固件进行升级,实现对待升级车载终端的应用固件的模块化升级,并且,在升级前,对升级包中各待升级固件对应的升级数据进行验证,保证所获得的升级数据的合法性以及准确性,保证升级过程的安全。
86.并且,待升级车载终端可以为多核同构终端或者多核异构终端,本发明实施例所提供的固件升级流程兼容多核同构终端以及多核异构终端。
87.在本发明的另一实施例中,待升级车载终端110,还被配置为若第一固件中包含指定引导固件,利用运行的当前引导固件以及预设验证过程,对升级包中指定引导固件对应的升级数据进行验证;在指定引导固件对应的升级数据验证通过后,利用本地存储的指定加密文本,对指定引导固件对应的升级数据中、指定引导固件的目标加密固件进行解密,得到指定引导固件,其中,目标固件包括指定引导固件;
88.利用运行的指定引导固件、升级包和分区激活状态表,确定待升级车载终端的待升级固件;利用预设验证过程,对升级包中待升级固件对应的升级数据进行验证;并在各升级数据验证通过后,利用本地存储的指定加密文本,对各升级数据中目标加密固件进行解密,得到各待升级固件对应的第一固件,并进行升级。
89.本实现方式中,考虑到某些待升级车载终端支持引导固件的升级,且,待升级车载终端难免存在升级其引导固件的需求,在待升级车载终端确定第一固件包含指定引导固件的情况下,需要首先利用预设验证过程,对升级包中指定引导固件对应的升级数据进行验证,在验证通过之后,利用本地存储的指定加密文本,对指定引导固件对应的升级数据中、指定引导固件的目标加密固件进行解密,得到指定引导固件;并启动运行该指定引导固件,利用运行的指定引导固件对升级包中其他待升级固件对应的升级数据进行验证,并在验证通过后,解密出待升级固件对应的第一固件,并进行升级。
90.在对指定引导固件进行验证时,待升级车载终端110运行其本地已安装的当前引导程度,利用运行的当前引导固件以及预设验证过程,对升级包中指定引导固件对应的升级数据进行验证。
91.一种情况中,待升级车载终端支持引导固件的升级的情况下,存储分区除了存储有r5,pmu(power management unit,电源管理单元),uboot,kernel images(核镜像),rootfs(root filesystem,根文件系统)以及fpga(field

programmable gate array,现场可编程门阵列)等应用类固件外,还可以存储有引导固件,以便实现对引导固件的升级。
92.相应的,在升级存储分区存储的引导固件boot固件之后,后续固件升级过程以及运行固件过程中,可以是待升级车载终端优先选择运行其本地存储的版本最高的引导固件,以进行固件升级过程以及运行固件过程;或者可以是以轮流运行的方式运行各存储分区以及出厂分区的存储的引导固件,这都是可以的。其中,在所有存储分区所存储的引导固件出现故障即无法运行的情况下,可以直接运行出厂分区所存储的引导固件。
93.在本发明的另一实施例中,待升级车载终端110的存储单元可以包括:出厂分区以及至少两个存储分区;其中,出厂分区包括:只读区域以及可读可写区域,只读区域用于存储出厂时的引导固件及其备份和应用类固件;可读可写区域用于存储分区激活状态表,分区激活状态表包含指定当前待升级分区以及待升级的固件的信息;至少两个存储分区,用于存储固件。
94.为了避免出现待升级车载终端的固件在升级过程中出现问题,导致升级失败且无法退回至升级前版本,导致待升级车载终端无法启动的情况,待升级车载终端110的存储单元可以包括:出厂分区以及至少两个存储分区,如图2所示。其中,出厂分区包括:只读区域以及可读可写区域,只读区域用于存储出厂时的引导固件及其备份和应用类固件即待升级终端运行所需的固件,以保证其他存储分区内的固件出现问题无法启动时,可以启动出厂分区的固件,以保证待升级车载终端的基本功能实现。图2中所示待升级车载终端110的存储单元包括两个存储分区,分别为分区a和分区b。
95.出厂分区的可读可写区域用于存储分区激活状态表,分区激活状态表包含指定当前待升级分区以及待升级的固件的信息,待升级车载终端可以基于分区激活状态表确定当前待升级存储分区及其中的待升级固件。如图3所示,为待升级车载终端110的存储单元的一种分区示意图,其中,包含一个出厂分区和两个存储分区,分别为分区a和分区b。出厂分区的只读区域存储有出厂时的版本的引导固件即图中所示的“boot固件”及其备份“boot备份固件”和应用类固件“r5核固件、pmu固件、uboot固件、kernel固件、rootfs固件以及fpga固件”。出厂分区的可读可写区域包括分区激活状态表。分区a存储有各待升级车载终端所需的应用类固件“r5核固件、pmu固件、uboot固件、kernel固件、rootfs固件以及fpga固件”,分区b存储有各待升级车载终端所需的应用类固件“r5核固件、pmu固件、uboot固件、kernel固件、rootfs固件以及fpga固件”,其中,分区a和分区b中各应用固件的版本可能存在不同。一种情况,在待升级车载终端支持引导固件的升级的情况下,分区a和分区b还可存储有boot固件。
96.待升级车载终端110的存储单元可以通过emmc非易失存储器实现,该存储单元除了包括出厂分区以及至少两个存储分区外,还可以用于存储有其他需要下电保存的数据的区域。出厂分区所在存储器与至少两个存储分区所在存储器可以为同一存储器,也可以为不同存储器。
97.在本发明的另一实施例中,云端服务器120在基于每一第一固件对应的目标加密固件、目标指纹、加密后指纹及指定私钥所对应公钥,确定升级包的过程中,被具体配置为
98.针对每一第一固件,将该第一固件对应的目标指纹,添加在该第一固件对应的目标加密固件的尾部;将该第一固件对应的加密后指纹,添加在该第一固件对应的目标指纹的尾部;将该第一固件对应的指定私钥所对应公钥,添加在该第一固件对应的加密后指纹的尾部;并生成相应的地址信息,以得到升级包。
99.为了保证各第一固件对应的相关加密信息即升级数据的有序性,以及便于后续对各第一固件对应的升级数据的解密,本实现方式中,云端服务器120在对目标固件进行加密的过程中,针对每一第一固件,在得到该第一固件对应的目标加密固件的目标指纹之后,将该第一固件对应的目标指纹,添加在该第一固件对应的目标加密固件的尾部,在得到该第一固件对应的加密后指纹之后,将该第一固件对应的加密后指纹,添加在该第一固件对应的目标指纹的尾部,并将该第一固件对应的指定私钥所对应公钥,添加在该第一固件对应的加密后指纹的尾部,生成各第一固件对应的各升级数据的地址信息。按预设排序顺序或者按随机排序的方式,将各第一固件对应的升级数据连接在一起,并得到各第一固件对应的各升级数据的地址信息,得到升级包。
100.在本发明的另一实施例中,待升级车载终端110在所述利用运行的当前引导固件、
升级包和分区激活状态表,确定待升级车载终端的待升级固件的过程中,被具体配置为:
101.利用运行的当前引导固件、升级包和分区激活状态表,确定待升级车载终端的当前待升级分区,并确定当前待升级分区中的待升级固件。一种情况中,分区激活状态表的结构示意图如图4所示,其中,待升级车载终端的存储单元包括两个存储分区,分区a和分区b,分区激活状态表包括用于特殊字节的区域,用于保存分区激活状态表的分区表长度区域,用于表示当前待升级分区的标识即“当前激活分区”的区域,存储分区a包含的固件的标识即“分区a

包含固件”的区域,保存分区a剩余启动次数的区域,分区a各固件的版本号即“分区a各固件版本号”的区域;存储分区b包含的固件的标识即“分区b

包含固件”的区域,保存分区b剩余启动次数的区域,分区b各固件的版本号即“分区b各固件版本号”的区域。在一种情况中,分区激活状态表还可以包括存储md5校验码的区域,以支持待升级车载终端在其他运行过程中对相应数据的校验功能。
102.待升级车载终端110的存储单元包含出厂分区以及至少两个存储分区。分区激活状态表指定当前待升级分区以及待升级的固件的信息,本实现方式,待升级车载终端110通过其信息处理单元运行当前引导固件,并利用运行的当前引导固件、升级包和分区激活状态表,从至少两个存储分区中确定出当前待升级分区,并从所确定的当前待升级分区确定出待升级固件。
103.待升级车载终端当前待升级存储分区的方式可以是:以轮流的方式将至少两个存储分区中的一个确定为待升级存储分区,或者,可以是以随机的方式将至少两个存储分区中的一个确定为当前待升级存储分区。
104.在本发明的另一实施例中,待升级车载终端在进行升级的过程中,被具体配置为:
105.将待升级固件对应的第一固件,加载至各待升级固件对应的启动位置;将当前待升级分区对应的剩余启动次数减一;依据升级启动次序,依次启动加载至各待升级固件对应的启动位置的第一固件;若加载至各待升级固件对应的启动位置的各第一固件启动成功,则确定待升级分区升级成功,并重置待升级分区对应的剩余启动次数;若加载至各待升级固件对应的启动位置的任一第一固件启动失败,则判断当前待升级分区对应的剩余启动次数是否为零;若不为零,并返回所述将当前待升级分区对应的剩余启动次数减一的步骤。
106.为了在一定程度上提高待升级车载终端110的待升级分区升级后正常启动的概率,降低升级后无法启动的概率,本实现方式中,针对每一存储分区设置剩余启动次数,以通过每一存储分区设置剩余启动次数,来限制存储分区作为当前待升级分区在启动升级后的第一固件的启动次数。其中,升级过程可以是:待升级车载终端110通过其信息处理单元将待升级固件对应的第一固件,加载至各待升级固件对应的启动位置,例如,可以是将各待升级固件对应的第一固件加载至ddr(double data rate,双倍数据速率)内存中。
107.并利用运行的引导固件boot固件,依据升级启动次序,依次启动加载至各待升级固件对应的启动位置的第一固件,同时将当前待升级分区对应的剩余启动次数减一;若加载至各待升级固件对应的启动位置的各第一固件启动成功,则确定当前待升级分区升级成功,则重置当前待升级分区对应的剩余启动次数,即将当前待升级分区对应的剩余启动次数设置为预设值。
108.若加载至各待升级固件对应的启动位置的任一第一固件启动失败,则判断待升级分区对应的剩余启动次数是否为零;若不为零,返回所述将当前待升级分区对应的剩余启
动次数减一的步骤。
109.其中,在依据升级启动次序,依次启动加载至各待升级固件对应的启动位置的第一固件的过程中,当前启动的第一固件启动失败,则认为该次启动失败,不再启动当前启动的第一固件的后边的第一固件。
110.在本发明的另一实施例中,待升级车载终端110的存储单元包含至少两个存储分区以及出厂分区;考虑到当前待升级分区升级后启动失败后,为了保证待升级车载终端110的使用,待升级车载终端110,还被配置为
111.若判断当前待升级分区对应的剩余启动次数为零,则判断待升级车载终端是否存在所对应剩余启动次数不为零的其他存储分区;若存在,依次启动该所对应剩余启动次数不为零的其他存储分区中的固件;若不存在则启动出厂分区中的固件。
112.在本发明的另一实施例中,待升级车载终端升级所需的固件还包括第二固件;
113.云端服务器120,在所述基于每一第一固件对应的目标加密固件、目标指纹、加密后指纹以及指定私钥对应的公钥,确定升级包的过程,具体被配置为:利用第三加密算法对第二固件进行加密,并基于目标固件中每一第一固件对应的目标加密固件、目标指纹、加密后指纹和指定私钥对应的公钥,以及加密后的第二固件,确定升级包;
114.相应的,待升级车载终端110,在所述进行升级之前,还被配置为;利用第三加密算法对应的解密算法对加密后的第二固件进行解密,得到第二固件。
115.考虑到难免存在某些固件不适用于预设验证过程进行验证,例如rootfs(root filesystem,根文件系统)固件。本实现方式中,云端服务器120在确定待升级车载终端升级所需的固件还包括第二固件的情况下,该第二固件为不适用于预设验证过程进行验证的固件。云端服务器120在确定出每一第一固件对应的目标加密固件、目标指纹、加密后指纹和指定私钥对应的公钥之后,利用第三加密算法对第二固件进行加密,并基于目标固件中每一第一固件对应的目标加密固件、目标指纹、加密后指纹和指定私钥对应的公钥,以及加密后的第二固件,确定升级包。
116.一种情况中,第三加密算法可以为dm

verity加密算法。
117.在确定升级包的过程中,云端服务器120可以将加密后的第二固件添加在第一固件对应的目标加密固件、目标指纹、加密后指纹和指定私钥对应的公钥的尾部。
118.相应的,待升级车载终端110在得到各待升级固件对应的第一固件,并升级之后,利用第三加密算法对应的解密算法对加密后的第二固件进行解密并验证,在验证通过之后,得到第二固件。进而,待升级车载终端110利用第二固件进行升级。
119.下面以一具体实施例对本发明实施例所提供的固件升级系统中云端服务器120的加密过程,以及待升级车载终端110的解密过程进行说明,其中,以一第一固件的加解密的过程进行说明。
120.如图5所示,云端服务器针对待升级车载终端升级所需的每一第一固件,利用第一加密算法对应的指定加密文本vi值对第一固件进行加密,如图5所示进行aes加密,得到目标加密固件,即加密后的文件。利用第二加密算法sha384加密算法对加密后的文件进行编码,得到目标加密固件对应的目标指纹,即图5中所示的文件签名。利用指定私钥即rsa私钥对目标指纹进行rsa加密,得到加密后指纹,即图5中所示的加密后的文件签名。将目标加密固件即图5中所示的加密后的文件,目标加密固件对应的目标指纹即图5中所示的文件签
名,加密后指纹即图5中所示的加密后的文件签名,以及指定私钥所对应公钥即图5中所示的rsa公钥,依次排列,并生成相应地址信息,并将所生成的地址信息即图5中所示的map,其中,map位于加密后的文件签名的前面,以得到升级包。
121.相应的,待升级车载终端针对升级包中待升级固件对应的升级数据,即第一固件对应的升级数据,利用预设验证过程,对其进行解密,解密过程包括:利用sha384加密算法,对待升级固件对应的目标升级数据中指定私钥所对应公钥即图5中所示的rsa公钥进行编码,生成目标升级数据对应的当前公钥指纹。若当前公钥指纹与待升级车载终端本地存储的目标固件所对应公钥指纹相同,如图5所示,则利用rsa公钥,对目标升级数据中加密后指纹即图5中所示的加密后的文件签名进行rsa解密,得到目标指纹,即图5中所示的解密出的文件指纹。利用sha384加密算法目标升级数据中目标加密固件进行编码,得到目标升级数据中目标加密固件的当前指纹,对比目标指纹和当前指纹,判断目标指纹和当前指纹是否一致,如图5中所示的对比指纹一致;若一致,则利用待升级车载终端本地存储的指定加密文本vi值,对待升级固件对应的升级数据中目标加密固件即图5中所示的加密后的文件进行解密及aes还原,得到第一固件。
122.相应于上述系统实施例,本发明实施例提供了一种固件升级方法,如图6所示,所述方法应用于固件升级系统的云端服务器,所述固件升级系统还包括待升级车载终端,所述方法包括:
123.s601:针对待升级车载终端升级所需的每一第一固件,利用第一加密算法对应的指定加密文本对该第一固件进行加密,得到目标加密固件;
124.s602:利用第二加密算法,生成所述目标加密固件对应的目标指纹;
125.s603:利用指定私钥对所述目标指纹进行加密,得到加密后指纹;
126.s604:基于每一第一固件对应的目标加密固件、目标指纹、加密后指纹及指定私钥所对应公钥,确定升级包,并发送至所述待升级车载终端。以使所述待升级车载终端获得所述升级包,若所述第一固件不包含指定引导固件;利用运行的当前引导固件、所述升级包和分区激活状态表,确定所述待升级车载终端的待升级固件;利用预设验证过程,对所述升级包中所述待升级固件对应的升级数据进行验证;并在各升级数据验证通过后,利用本地存储的指定加密文本,对各升级数据中目标加密固件进行解密,得到各待升级固件对应的第一固件,并进行升级;
127.其中,所述预设验证过程,包括:
128.利用目标固件对应的目标升级数据中指定私钥所对应公钥,生成目标升级数据对应的当前公钥指纹;若所述当前公钥指纹与本地存储的目标固件所对应公钥指纹相同,利用目标升级数据中指定私钥所对应公钥,对所述目标升级数据中加密后指纹进行解密,得到目标指纹;利用所述第二加密算法,生成所述目标升级数据中目标加密固件的当前指纹;若所述当前指纹与所述目标指纹相同,则表征所述目标升级数据验证通过,其中,所述目标固件包括所述待升级固件。
129.应用本发明实施例,云端服务器在向待升级车载终端发送升级所需的固件之前,对固件及其对应的密钥进行多重加密,且不同固件单独加密,得到升级包,并发送至待升级车载终端。待升级车载终端获得升级包,并基于分区激活状态表,确定待升级固件,利用基于预设验证过程,对升级包中各待升级固件对应的升级数据进行验证,验证通过后对待升
级固件进行升级,实现对待升级车载终端的固件的模块化升级,并且,在升级前,对升级包中各待升级固件对应的升级数据进行验证,保证所获得的升级数据的合法性以及准确性,保证升级过程的安全。
130.在本发明的另一实施例中,所述待升级车载终端,还用于若第一固件中包含指定引导固件,利用运行的当前引导固件以及所述预设验证过程,对所述升级包中所述指定引导固件对应的升级数据进行验证;在所述指定引导固件对应的升级数据验证通过后,利用本地存储的指定加密文本,对所述指定引导固件对应的升级数据中、所述指定引导固件的目标加密固件进行解密,得到所述指定引导固件,其中,所述目标固件包括所述指定引导固件;
131.利用运行的所述指定引导固件、所述升级包和分区激活状态表,确定所述待升级车载终端的待升级固件;利用预设验证过程,对所述升级包中所述待升级固件对应的升级数据进行验证;并在各升级数据验证通过后,利用本地存储的指定加密文本,对各升级数据中目标加密固件进行解密,得到各待升级固件对应的第一固件,并进行升级。
132.在本发明的另一实施例中,所述待升级车载终端的存储单元包括:出厂分区以及至少两个存储分区;其中,所述出厂分区包括:只读区域以及可读可写区域,所述只读区域用于存储出厂时的引导固件及其备份和应用类固件;所述可读可写区域用于存储分区激活状态表,所述分区激活状态表包含指定当前待升级分区以及待升级的固件的信息;所述至少两个存储分区,用于存储固件。
133.在本发明的另一实施例中,所述待升级车载终端包括一次性可编程存储器,用于存储于各待升级固件对应的指定加密文本以及指定私钥所对应公钥对应的信息。
134.在本发明的另一实施例中,所述基于每一第一固件对应的目标加密固件、目标指纹、加密后指纹及指定私钥所对应公钥,确定升级包的步骤,包括:
135.针对每一第一固件,将该第一固件对应的目标指纹,添加在该第一固件对应的目标加密固件的尾部;将所述该第一固件对应的加密后指纹,添加在该第一固件对应的目标指纹的尾部;将该第一固件对应的指定私钥所对应公钥,添加在该第一固件对应的加密后指纹的尾部;并生成相应的地址信息,以得到升级包。
136.在本发明的另一实施例中,所述待升级车载终端在所述利用运行的当前引导固件、所述升级包和分区激活状态表,确定所述待升级车载终端的待升级固件的步骤中,包括:
137.利用运行的当前引导固件、所述升级包和分区激活状态表,确定所述待升级车载终端的当前待升级分区,并确定所述当前待升级分区中的待升级固件。
138.在本发明的另一实施例中,所述待升级车载终端在进行升级的过程,包括:
139.将待升级固件对应的第一固件,加载至各待升级固件对应的启动位置;将所述当前待升级分区对应的剩余启动次数减一;依据升级启动次序,依次启动加载至各待升级固件对应的启动位置的第一固件;若加载至各待升级固件对应的启动位置的各第一固件启动成功,则确定所述当前待升级分区升级成功,并重置所述当前待升级分区对应的剩余启动次数;若加载至各待升级固件对应的启动位置的任一第一固件启动失败,则判断所述当前待升级分区对应的剩余启动次数是否为零;若不为零,返回所述将所述当前待升级分区对应的剩余启动次数减一的步骤。
140.在本发明的另一实施例中,所述待升级车载终端包含至少两个存储分区以及出厂分区;
141.所述待升级车载终端,还用于
142.若判断所述当前待升级分区对应的剩余启动次数为零,则判断所述待升级车载终端是否存在所对应剩余启动次数不为零的其他存储分区;若存在,依次启动该所对应剩余启动次数不为零的其他存储分区中的固件;若不存在则启动所述出厂分区中的固件。
143.在本发明的另一实施例中,所述待升级车载终端升级所需的还包括第二固件;
144.所述基于每一第一固件对应的目标加密固件、目标指纹、加密后指纹以及所述指定私钥对应的公钥,确定升级包的步骤,包括:
145.利用第三加密算法对所述第二固件进行加密,并基于所述目标固件中每一第一固件对应的目标加密固件、目标指纹、加密后指纹和所述指定私钥对应的公钥,以及加密后的所述第二固件,确定升级包;
146.相应的,所述待升级车载终端,在所述进行升级之后,还用于利用所述第三加密算法对应的解密算法对加密后的所述第二固件进行解密并验证,得到所述第二固件,并利用第二固件进行升级。
147.相应于上述系统实施例,本发明实施例提供了一种固件升级方法,如图7所示,所述方法应用于固件升级系统的待升级车载终端,所述固件升级系统还包括云端服务器,所述云端服务器用于针对所述待升级车载终端升级所需的每一第一固件,利用第一加密算法对应的指定加密文本对该第一固件进行加密,得到目标加密固件;利用第二加密算法,生成所述目标加密固件对应的目标指纹;利用指定私钥对所述目标指纹进行加密,得到加密后指纹;基于每一第一固件对应的目标加密固件、目标指纹、加密后指纹及指定私钥所对应公钥,确定升级包,并发送至所述待升级车载终端,所述方法包括:
148.s701:获得云端服务器发送的所述升级包;
149.s702:若所述第一固件不包含指定引导固件;利用运行的当前引导固件、所述升级包和分区激活状态表,确定所述待升级车载终端的待升级固件;
150.s703:利用预设验证过程,对所述升级包中所述待升级固件对应的升级数据进行验证;
151.s704:并在各升级数据验证通过后,利用本地存储的指定加密文本,对各升级数据中目标加密固件进行解密,得到各待升级固件对应的第一固件,并进行升级。
152.其中,所述预设验证过程,包括:
153.利用目标固件对应的目标升级数据中指定私钥所对应公钥,生成目标升级数据对应的当前公钥指纹;若所述当前公钥指纹与本地存储的目标固件所对应公钥指纹相同,利用目标升级数据中指定私钥所对应公钥,对所述目标升级数据中加密后指纹进行解密,得到目标指纹;利用所述第二加密算法,生成所述目标升级数据中目标加密固件的当前指纹;若所述当前指纹与所述目标指纹相同,则表征所述目标升级数据验证通过,其中,所述目标固件包括所述待升级固件。
154.应用本发明实施例,云端服务器在向待升级车载终端发送升级所需的固件之前,对固件及其对应的密钥进行多重加密,且不同固件单独加密,得到升级包,并发送至待升级车载终端。待升级车载终端获得升级包,并基于分区激活状态表,确定待升级固件,利用基
于预设验证过程,对升级包中各待升级固件对应的升级数据进行验证,验证通过后对待升级固件进行升级,实现对待升级车载终端的应用固件的模块化升级,并且,在升级前,对升级包中各待升级固件对应的升级数据进行验证,保证所获得的升级数据的合法性以及准确性,保证升级过程的安全。
155.在本发明的另一实施例中,在本发明的另一实施例中,所述方法还包括:
156.若所述目标固件的第一固件中包含指定引导固件,利用运行的当前引导固件以及所述预设验证过程,对所述升级包中所述指定引导固件对应的升级数据进行验证;在所述指定引导固件对应的升级数据验证通过后,利用本地存储的指定加密文本,对所述指定引导固件对应的升级数据中、所述指定引导固件的目标加密固件进行解密,得到所述指定引导固件,其中,所述目标固件包括所述指定引导固件;
157.利用运行的所述指定引导固件、所述升级包和分区激活状态表,确定所述待升级车载终端的待升级固件;利用预设验证过程,对所述升级包中所述待升级固件对应的升级数据进行验证;并在各升级数据验证通过后,利用本地存储的指定加密文本,对各升级数据中目标加密固件进行解密,得到各待升级固件对应的第一固件,并进行升级。
158.在本发明的另一实施例中,所述待升级车载终端的存储单元包括:出厂分区以及至少两个存储分区;其中,所述出厂分区包括:只读区域以及可读可写区域,所述只读区域用于存储出厂时的引导固件及其备份和应用类固件;所述可读可写区域用于存储分区激活状态表,所述分区激活状态表包含指定当前待升级分区以及待升级的固件的信息;所述至少两个存储分区,用于存储固件。
159.在本发明的另一实施例中,所述待升级车载终端包括一次性可编程存储器,用于存储于各待升级固件对应的指定加密文本以及指定私钥所对应公钥对应的信息。
160.在本发明的另一实施例中,所述云端服务器在基于每一第一固件对应的目标加密固件、目标指纹、加密后指纹及指定私钥所对应公钥,确定升级包的过程中,具体用于
161.针对每一第一固件,将该第一固件对应的目标指纹,添加在该第一固件对应的目标加密固件的尾部;将所述该第一固件对应的加密后指纹,添加在该第一固件对应的目标指纹的尾部;将该第一固件对应的指定私钥所对应公钥,添加在该第一固件对应的加密后指纹的尾部;并生成相应的地址信息,以得到升级包。
162.在本发明的另一实施例中,所述利用运行的当前引导固件、所述升级包和分区激活状态表,确定所述待升级车载终端的待升级固件的步骤,包括:
163.利用运行的当前引导固件、所述升级包和分区激活状态表,确定所述待升级车载终端的当前待升级分区,并确定所述当前待升级分区中的待升级固件。
164.在本发明的另一实施例中,所述进行升级的过程,包括:
165.将待升级固件对应的第一固件,加载至各待升级固件对应的启动位置;将所述当前待升级分区对应的剩余启动次数减一;依据升级启动次序,依次启动加载至各待升级固件对应的启动位置的第一固件;若加载至各待升级固件对应的启动位置的各第一固件启动成功,则确定所述当前待升级分区升级成功,并重置所述当前待升级分区对应的剩余启动次数;若加载至各待升级固件对应的启动位置的任一第一固件启动失败,则判断所述当前待升级分区对应的剩余启动次数是否为零;若不为零,返回所述将所述当前待升级分区对应的剩余启动次数减一的步骤。
166.在本发明的另一实施例中,所述待升级车载终端包含至少两个存储分区以及出厂分区;
167.所述方法还包括:
168.若判断所述当前待升级分区对应的剩余启动次数为零,则判断所述待升级车载终端是否存在所对应剩余启动次数不为零的其他存储分区;若存在,依次启动该所对应剩余启动次数不为零的其他存储分区中的固件;若不存在则启动所述出厂分区中的固件。
169.在本发明的另一实施例中,所述待升级车载终端升级所需的还包括第二固件;
170.所述云端服务器在基于每一第一固件对应的目标加密固件、目标指纹、加密后指纹以及所述指定私钥对应的公钥,确定升级包的过程中,具体用于:
171.利用第三加密算法对所述第二固件进行加密,并基于所述目标固件中每一第一固件对应的目标加密固件、目标指纹、加密后指纹和所述指定私钥对应的公钥,以及加密后的所述第二固件,确定升级包;
172.相应的,所述方法还包括,在所述进行升级之后,利用所述第三加密算法对应的解密算法对加密后的所述第二固件进行解密并验证,得到所述第二固件,并利用所述第二固件进行升级。
173.上述方法实施例与系统实施例相对应,与该系统实施例具有同样的技术效果,具体说明参见系统实施例。方法实施例是基于系统实施例得到的,具体的说明可以参见系统实施例部分,此处不再赘述。本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
174.本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
175.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献