发明内容
本申请实施例提供一种车辆升级包处理方法和装置,以降低OTA服务器的负荷。
第一方面,本申请实施例提供一种车辆升级包处理方法,包括:第一终端从服务器接收一个或多个第一数据块,第一数据块用于车辆升级;第一终端从第二终端获取一个或多个第二数据块,第二数据块用于车载系统升级,第二数据块是服务器发送给第二终端的;第一终端根据第一数据块和第二数据块,得到车辆升级包。即服务器可以将车辆升级包分块,得到多个数据块,然后将多个数据块下发给多个终端,之后,每个终端可以根据点对点(peer to peer,P2P)的方式,根据该终端已经接收的数据块,以及该终端从其他终端中获取的数据块,得到车辆升级包,在该过程中,每个终端不需要都从OTA服务器获取完整的车辆升级包,因此能够降低OTA服务器的负载。
在一种可能的设计中,第一数据块和第二数据块均为加密后的数据块,且第一数据块的数据块长度和至少一个第二数据块的数据块长度均为加密算法的分组长度的整数倍。通过将车辆升级包分为分组长度整数倍的数据块,能够确保解封装者对加密报文的处理总消耗相同的时间,从而有效抵御计时攻击,使得加密报文的机密性保护和完整性保护得到保障。
在一种可能的设计中,第一终端根据第一数据块和至少一个第二数据块,得到车辆升级包,包括:第一终端在第一时间开始解密第一数据块;第一终端在第二时间接收第二数据块,第一时间在第二时间之前;或,第一终端在第三时间开始解密第二数据块,第一终端在第四时间接收第一数据块,第三时间在第四时间之前。本申请实施例中,第一终端是边接收数据块边解密的过程,因此相较于第一终端完成所有的数据块接收后再统一解密的方法,本申请实施例的方法可以提升解密效率和减少升级包的下载时间。
在一种可能的设计中,第一数据块和第二数据块均包括:生成车辆系统升级的升级包的服务器的签名;第一终端在第一时间开始解密第一数据块,包括:在第一终端确认第一数据块的签名为车辆系统升级的升级包的服务器的签名的情况下,第一终端在第一时间开始解密第一数据块;第一终端在第三时间开始解密第二数据块,包括:在第一终端确认第二数据块的签名为车辆系统升级的升级包的服务器的签名的情况下,第一终端在第三时间开始解密第二数据块。则若第一数据块和第二数据块携带的签名不是OTA服务器的签名,则可以丢弃,并重新获取包含OTA服务器的签名的第一数据块和第二数据块,从而避免第一终端接收到其他设备发送的不安全的数据块,提升数据块传输的安全性。
在一种可能的设计中,服务器中保存有车辆升级包被分块后的数据块与接收数据块的终端的关联关系;第一终端从第二终端获取一个或多个第二数据块,包括:第一终端根据关联关系,向第二终端发送数据块获取请求;第一终端接收第二终端响应于数据块获取请求返回的一个或多个第二数据块。则第一终端可以根据服务器提供的上述关联关系,精准的从相应的第二终端获取第二数据块。
在一种可能的设计中,服务器为代理服务器,车辆升级包为代理服务器从空中下载OTA服务器获取的;第一终端为车辆。则代理服务器可以协助车辆进行升级,降低OTA服务器的负荷。
在一种可能的设计中,第一终端为充电桩。
在一种可能的设计中,还包括:充电桩接收车辆发送的升级包获取请求;在车辆通过充电桩的安全验证的情况下,充电桩根据升级包获取请求向车辆返回车辆升级包。从而,车辆可以实现边充电边下载车辆升级包,可以理解,因为车辆充电时一方面车辆通常处于静止状态,通常可以有较好的网络环境,另一方面,因为车辆与充电辅助设备连接,也可以避免因为车辆电量不足造成车载升级包下载中断等现象发生,可以较好地提升用户进行车辆升级的体验
在一种可能的设计中,第一终端从服务器接收第一数据块,包括:在第一终端通过服务器的安全认证的情况下,第一终端从服务器接收第一数据块。第一终端与服务器进行安全认证之后再接收第一数据块,可以提升第一终端接收的第一数据块的安全性。
第二方面,本申请实施例提供一种车辆升级包处理方法,包括:服务器对车辆升级包分块,得到多个数据块;服务器将多个数据块分发给至少一个终端;每个终端用于根据该终端所接收的数据块,以及至少一个终端中其他终端的数据块,得到车辆升级包。
在一种可能的设计中,服务器对车辆升级包分块,得到多个数据块包括:服务器根据加密算法对车辆升级包加密,以及将加密后的车辆升级包分块得到多个数据块。
在一种可能的设计中,服务器为代理服务器,服务器对车辆升级包分块之前,还包括:代理服务器从空中下载OTA服务器获取车辆升级包。
在一种可能的设计中,代理服务器从空中下载OTA服务器获取车辆升级包,包括:代理服务器向空中下载OTA服务器发送车载升级包获取请求;车载升级包获取请求包括:车辆的操作系统类型和版本;在代理服务器通过OTA服务器的安全验证的情况下,代理服务器接收OTA服务器发送的车辆升级包;其中,车辆升级包为OTA服务器根据车辆的操作系统类型和版本生成的。
在一种可能的设计中,服务器将多个数据块分发给至少一个终端之后,还包括:服务器记录车辆升级包被分块后的数据块与接收数据块的终端的关联关系。
第三方面,本申请实施例提供一种第一终端,包括:接收模块,用于从服务器接收一个或多个第一数据块,第一数据块用于车辆升级;处理模块,用于第一终端从第二终端获取一个或多个第二数据块,第二数据块用于车载系统升级,第二数据块是服务器发送给第二终端的;以及,根据第一数据块和第二数据块,得到车辆升级包。
在一种可能的设计中,第一数据块和第二数据块均为加密后的数据块,且第一数据块的数据块长度和至少一个第二数据块的数据块长度均为加密算法的分组长度的整数倍。
在一种可能的设计中,处理模块,具体用于在第一时间开始解密第一数据块;在第二时间接收第二数据块,第一时间在第二时间之前;或,在第三时间开始解密第二数据块,在第四时间接收第一数据块,第三时间在第四时间之前。
在一种可能的设计中,第一数据块和第二数据块均包括:生成车辆系统升级的升级包的服务器的签名;处理模块,具体还用于:在确认第一数据块的签名为车辆系统升级的升级包的服务器的签名的情况下,在第一时间开始解密第一数据块;在确认第二数据块的签名为车辆系统升级的升级包的服务器的签名的情况下,在第三时间开始解密第二数据块。
在一种可能的设计中,服务器中保存有车辆升级包被分块后的数据块与接收数据块的终端的关联关系;处理模块具体还用于:根据关联关系,向第二终端发送数据块获取请求;接收第二终端响应于数据块获取请求返回的一个或多个第二数据块。
在一种可能的设计中,服务器为代理服务器,车辆升级包为代理服务器从空中下载OTA服务器获取的;第一终端为车辆。
在一种可能的设计中,第一终端为充电桩。
在一种可能的设计中,还包括:接收模块,还用于接收车辆发送的升级包获取请求;处理模块,还用于在车辆通过充电桩的安全验证的情况下,根据升级包获取请求向车辆返回车辆升级包。
在一种可能的设计中,接收模块,具体用于:在第一终端通过服务器的安全认证的情况下,第一终端从服务器接收第一数据块。
第四方面,本申请实施例提供一种服务器,包括:处理模块,用于对车辆升级包分块,得到多个数据块;发送模块,用于将多个数据块分发给至少一个终端;每个终端用于根据该终端所接收的数据块,以及至少一个终端中其他终端的数据块,得到车辆升级包。
在一种可能的设计中,处理模块具体用于:根据加密算法对车辆升级包加密,以及将加密后的车辆升级包分块得到多个数据块。
在一种可能的设计中,服务器为代理服务器,处理模块还用于:从空中下载OTA服务器获取车辆升级包。
在一种可能的设计中,处理模块具体用于:向空中下载OTA服务器发送车载升级包获取请求;车载升级包获取请求包括:车辆的操作系统类型和版本;在代理服务器通过OTA服务器的安全验证的情况下,接收OTA服务器发送的车辆升级包;其中,车辆升级包为OTA服务器根据车辆的操作系统类型和版本生成的。
在一种可能的设计中,处理模块,还用于记录车辆升级包被分块后的数据块与接收数据块的终端的关联关系。
第五方面,本申请实施例提供一种车辆升级包处理装置,该车辆升级包处理装置可以为第一终端中的芯片或者芯片上系统,包括处理器和接口电路,接口电路用于接收代码指令并传输至处理器;处理器用于运行代码指令,以执行如第一方面或第一方面的任一种可能的设计的方法。
第六方面,本申请实施例提供一种车辆升级包处理装置,该车辆升级包处理装置可以为服务器中的芯片或者芯片上系统,包括处理器和接口电路,接口电路用于接收代码指令并传输至处理器;处理器用于运行代码指令,以执行如第二方面或第二方面的任一种可能的设计的方法。
第七方面,本申请实施例提供一种车辆升级包处理装置,包括存储器和处理器,处理器执行存储器中的程序指令,用于实现如第一方面或第一方面的任一种可能的设计的方法。
第八方面,本申请实施例提供一种车辆升级包处理装置,包括存储器和处理器,处理器执行存储器中的程序指令,用于实现如第二方面或第二方面的任一种可能的设计的方法。
第九方面,本申请实施例提供一种可读计算机存储介质,可读计算机存储介质用于存储计算机程序,计算机程序用于实现如第一方面或第一方面的任一种可能的设计的方法。
第十方面,本申请实施例提供一种可读计算机存储介质,可读计算机存储介质用于存储计算机程序,计算机程序用于实现如第二方面或第二方面的任一种可能的设计的方法。
第十一方面,本申请实施例提供一种车辆升级包处理系统,包括第三方面及对应的可行实施方式的通信装置以及第四方面及对应的可行实施方式的通信装置。
应当理解的是,本申请的第二方面至第十一方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
具体实施方式
下面将结合附图对本实施例的实施方式进行详细描述。
本申请实施例提供的车辆升级包处理方法可以应用于图1的网络系统,该系统中可以包括服务器11、第一终端121和第二终端122,第二终端122的数量可以为一个也可以为多个。
其中,服务器11可以是用于下发车辆升级包的OTA服务器,也可以是已从OTA服务器中获取了车辆升级包的车队服务器或其他任意可能的服务器,本申请实施例对此不作具体限定。第一终端121可以是任意形式的车辆,第一终端121也可以是任意形式的车辆辅助设备(例如车辆充电桩等),第一终端121也可以是移动终端(例如手机、平板、可穿戴设备等),本申请实施例对此不作具体限定。第二终端122可以是任意形式的车辆,第二终端122也可以是任意形式的车辆辅助设备(例如车辆充电桩等),第二终端122也可以是移动终端(例如手机、平板、可穿戴设备等),本申请实施例对此不作具体限定。第一终端121与第二终端122可以是相同类型的设备,例如第一终端121与第二终端122均为车辆或车辆辅助设备或移动终端等。第一终端121与第二终端122也可以是不同类型的设备,例如第一终端121为车辆,第二终端122为车辆辅助设备或移动终端等,本申请实施例对此不作具体限定。在后续的实施例中将详细介绍服务器11、第一终端121以及第二终端122为各种具体设备时的车辆升级包处理方式,在此不再赘述。
第一终端121和第二终端122均与服务器11之间建立通信连接,例如,第一终端121和第二终端122均可通过超文本传输协议(hyper text tansfer protocol,HTTP)或基于安全套接字层的超文本传输协议(hyper text transfer trotocol over secure socketlayer,HTTPS)等协议与服务器11之间建立通信连接,本申请实施例对此不做任何限制。
第一终端121与第二终端122之间可通过任意形式的通信连接实现P2P通信,示例性的,第一终端121与第二终端122之间可以通过无线传输实现P2P通信,例如蓝牙(bluetooth)传输、无载波通信(ultra wide band,UWB)、或红外传输等。
或者,第一终端121与第二终端122之间也可以通过有线传输实现P2P通信,本申请实施例对此不作具体限定。
或者,第一终端121和第二终端122可以基于索引服务器实现P2P通信,该索引服务器可以是服务器11也可以是其他任意的服务器。示例性的,该索引服务器中可以存储有包括资源列表,该资源列表中包括第一终端121与第一终端121中的资源标识的关联关系,以及第二终端122与第二终端122中的资源标识的关联关系,在第一终端121希望获取某一资源时,第一终端121从该索引服务器中获取各终端中的资源列表,从资源列表中确定包括该资源的标识的终端为第二终端122,则第一终端121进一步可以通过上述的有线通信或无线通信从第二终端122中获取该资源。
图2为本申请实施例提供的一种车辆升级包处理方法的流程示意图,如图2所示,该方法包括:
步骤S101:第一终端从服务器接收一个或多个第一数据块,第一数据块用于车辆升级。
本申请实施例中,服务器可以是OTA服务器,也可以是除OTA服务器外的其他服务器。在服务器为OTA服务器时,服务器可以生成用于车辆升级的升级包。在服务器为其他服务器时,服务器可以先从OTA服务器中获取用于车辆升级的升级包。
服务器可以将一用于车辆升级的完整升级包分块得到多个数据块,可以理解,根据升级包具体针对的设备,各升级包可以对应有设备编号和升级包序号,在分块时,服务器可以根据各数据块在升级包中的位置等对数据块进行标识,使得后续可以根据该多个数据块的标识对数据块进行整合重新得到该完整升级包,本申请实施例对数据块的具体标识方式和标识内容不作具体限定。一个实施例中,一个数据块可以是一个完整的数据包。
示例性的,在一种具体实现中,分块后每个数据块的头部可以包括版本号、升级包序号i、设备编号j及该数据块在升级包i中的次序k中的一个或多个。比如,目前乘用车的汽车电子控制单元(electronic control unit,ECU)种类在25~100个左右,因此升级包的种类通常不超过256,相应的,升级包序号i的总个数也不超过256,可以设置升级包序号i在数据块中占1字节。适应的,汽车的种类通常也不超过256,因此设备编号(如汽车的ECU编号)j也可以占1字节。数据块在升级包i中的次序k与升级包的大小和升级方式相关,例如,升级包越大,k越大,或者,采用差分升级方式时k越小,采用整包升级的方式时,k越大,示例性的k可以占1~3字节,本申请实施例对此不作具体限定。
得到多个数据块后,服务器可以将该多个数据块分发给多个终端,本申请实施例中以多个终端中的第一终端作为执行主体,多个终端中除第一终端外的其他终端为第二终端为例进行说明,第一终端和第二终端也可能是除所述多个终端之外的终端。第一终端接收到的数据块为第一数据块,第一数据块的数量可以是一个,也可是多个。第二终端接收到的数据块为第二数据块,第二数据块的数量可以是一个,也可是多个。全部的第一数据块和全部的第二数据块可以组成该完整升级包,当然也可能存在类似于冗余的封装,在解析部分数据包的情况下也可以组成完整的升级包。这里的第一数据块也可以是指一类数据块,第二数据块指另一类数据块,不同类型的数据块的传输路径可以不同,例如经由不同的设备到达目的端。
可选的,在一种具体实现中,第一终端可以向服务器发送升级请求,升级请求中可以包括第一终端的基本信息,基本信息可以包括软件信息和/或硬件信息或车辆型号(如车辆的唯一标识码(vehicle identification number,VIN)),服务器可以响应于升级请求,向第一终端发送与该升级请求中的基本信息匹配的一个或多个第一数据块。在所述第一终端发送升级请求前,所述第一终端还可以先接收升级通知。发送升级请求的触发条件可以有多种,例如:根据第一终端中设置的定时时刻触发发送升级请求,或根据用户在第一终端中的车载娱乐系统(in vehicle Infotainment,IVI)的屏幕中点击升级控件触发发送升级请求,或通过与第一终端通信的手机等移动设备的应用程序的触发发送升级请求、或在第一终端的网络环境符合升级需求时自动发送升级请求(或称静默升级)等。
可选的,在步骤S101之前,第一终端与服务器之间可以先进行双向认证,以建立安全通信。示例性的,第一终端与服务器之间可以采用公钥基础设施(public keyinfrastructure,PKI)的方式进行双向认证,比如,第一终端可以在PKI中查证服务器的数字证书,实现对第一终端对服务器的认证,服务器可以在PKI中查证第一终端的数字证书,实现对服务器对第一终端的认证。可以理解,第一终端和服务器之间还可以根据实际的应用场景,采用其他方式进行双向认证,本申请实施例对此不作具体限定。
步骤S102:第一终端从第二终端获取一个或多个第二数据块,第二数据块用于车辆升级,第二数据块是服务器发送给第二终端的。
本申请实施例中,第一终端可以通过上述描述的任意P2P方式从第二终端获取一个或多个第二数据块。第二终端的数量可以是一个,也可以是多个,本申请实施例对第二终端的数量不作限制。举例说明,在第二终端的数量为一个的情况下,第一终端从一个第二终端中获取一个或多个第二数据块。在第二终端的数量为多个的情况下,第一终端从一个或多个第二终端中获取一个或多个第二数据块。
需要说明的是,本申请实施例中,步骤S102和步骤S101的顺序可以互换,即第一终端可以先获取一个或多个第一数据块,再获取一个或多个第二数据块。第一终端也可以先获取一个或多个第二数据块,再获取一个或多个第一数据块,本申请实施例对此不作具体限定,
可选的,服务器在向多个终端分发数据块时,服务器保存各数据块与接收各数据块的终端的关联关系;步骤S102的一种具体实现可以是:第一终端根据该关联关系,向第二终端发送数据块获取请求;第一终端接收第二终端响应于数据块获取请求返回的至少一个第二数据块。
本申请实施例中,各数据块可以唯一对应一个数据块标识,数据块标识可以是编号、名称等标识,各终端可以唯一对应一个终端标识,终端标识可以是终端的设备序列号、终端的通信地址等标识,当然对于不同的终端,各终端所采用的终端标识的具体形式可以不同,对于不同的数据块,各数据块所采用的数据块标识可以不同。针对每个数据块,服务器中可以保存该数据块的标识与接收该数据块的终端的标识的关联关系,则第一终端可以依据该关联关系,判定第一终端中已经接收的数据块(如一个或多个第一数据块),以及第一终端还缺失的数据块(如一个或多个第二数据块),以及第一终端缺失的数据块所关联的第二终端的标识,进而第一终端可以根据第二终端的标识,向第二终端发送数据获取请求,并接收第二终端返回的一个或多个第二数据块,示例性的,在第二终端的数量为多个时,第一终端可以根据该关联关系分别向每个第二终端发送数据块获取请求,并接收每个第二终端返回的一个或多个第二数据块。服务器也可以通过简单的技术方式验证,或者以其他校验方式保证数据块不缺失、或保证数据块可以达到正常升级的条件。
可选的,在步骤S102之前,第一终端与第二终端之间可以先进行双向认证,以建立安全通信。示例性的,第一终端与第二终端之间可以采用PKI的方式进行双向认证,比如,第一终端可以在PKI中查证第二终端的数字证书,实现第一终端对第二终端的认证,第二终端可以在PKI中查证第一终端的数字证书,实现第二终端对第一终端的认证。可以理解,第一终端和第二终端之间还可以根据实际的应用场景,采用其他方式进行双向认证,本申请实施例对此不作具体限定。
步骤S103:第一终端根据第一数据块和第二数据块,得到车辆升级包。
本申请实施例中,第一终端在获取到全部的第二数据块后,可以根据第二数据块的标识,以及第一数据块的标识,可以按照数据块中先后次序等将第一数据块和第二数据块整合得到车辆升级包。
本申请实施例中,车辆升级包可以是用于车辆中的单个部件的系统、软件升级的升级包,也可以是用于车辆中多个部件或整车部件的系统、软件升级,本申请实施例对此不作具体限定。
综上所述,本申请实施例中,服务器可以将车辆升级包分块,得到多个数据块,然后将多个数据块下发给多个终端,之后,终端可以根据P2P的方式从其他终端中获取数据块,并根据该终端已经接收的数据块,以及该终端从其他终端中获取的数据块,得到车辆升级包,在该过程中,每个终端不需要都从OTA服务器获取完整的车辆升级包,因此能够降低OTA服务器的负载。
可选的,第一数据块和第二数据块均可以是加密后的数据块。
本申请实施例中,服务器在对车辆升级包分块时,可以先对车辆升级包加密,在将加密后的车辆升级包分块,得到加密的第一数据块和加密的第二数据块。或者,服务器在对车辆升级包分块时,可以先将车辆升级包进行分块,得到一个或多个第一数据块,以及一个或多个第二数据块,之后再对每个第一数据块和每个第二数据块分别进行加密。本申请实施例对加密的具体实现不作具体限定。为了保证数据块的完整性,第一数据块和第二数据块可以分别存储在各个终端中,也可以是集中存储在其中的终端,例如第一终端和/或第二终端;或者是第一数据块和第二数据块所包含的信息可以分别存储在各个终端中,也可以是集中存储在其中的终端,例如第一终端和/或第二终端。
本申请实施例中,服务器对得到加密的数据块所采用的加密算法可以是对称加密算法,也可以是非对称加密算法,或其他任意的加密算法,本申请实施例对加密算法不作具体限定,可以理解,对于采用不同加密方法加密得到的数据块,可以在数据块中携带加密算法的标识,在解密时,可以根据加密算法的标识,采取相应的解密算法,本申请实施例对此不作具体限定。
本申请实施例中,通过对第一数据块和第二数据块的加密,可以防止非法用户获得升级包,保证分割的数据块传输过程的机密性,从而在保证OTA升级包快速传输的同时,还能保证OTA数据包的传输安全。
在本申请实施例的一种可选实现方式中,第一数据块的数据块长度和至少一个第二数据块的数据块长度均为对称加密算法的分组长度的整数倍。
本申请实施例中,输入对称加密算法的车辆升级包的长度可以是该加密算法分组长度的整数倍,例如分组长度可以为8字节、16字节或128字节等。而车辆升级包的长度通常是随机的,可能不满足分组长度整数倍的条件,因此可以将车辆升级包增加填充部分,使其总长度达到分组长度的整数倍,进而将车辆升级包分块为多个长度为加密算法的分组长度的整数倍的数据块,例如,分组长度为128字节时,第一数据块和第二数据块的长度均可以为128*n,n为自然数。
本申请实施例中,通过将车辆升级包分为分组长度整数倍的数据块,能够确保解封装者对加密报文的处理总消耗相同的时间,从而有效抵御计时攻击,使得加密报文的机密性保护和完整性保护得到保障。
一种可选的实现方式中,在第一终端连接OTA服务器时,第一终端可以从OTA服务器获取到第一数据块和第二数据块的分组长度,以及加密数据块的密钥及密钥的有效时间,则第一终端可以在密钥的有效时间内根据密钥对第一数据块和第二数据块进行解密。
可选的,在第一数据块的数据块长度和至少一个第二数据块的数据块长度均为加密算法的分组长度的整数倍时,第一终端对第一数据块和第二数据块的解密方式可以是:
第一终端每接收到一个数据块(包括第一数据块或第二数据块),立即对该接收到的数据块进行解密,则在第一终端接收到最后一个数据块时,第一终端可能已经完成了对之前接收到的数据块的解密,则第一终端只需要等待解密最后一个数据块的时间,就可以完成所有数据块的解密,即本申请实施例中,第一终端是边接收数据块边解密的过程,因此相较于第一终端完成所有的数据块接收后再统一解密的方法,本申请实施例的方法可以提升解密效率和减少升级包的下载时间。
可以理解,第一终端也可以在完成所有的数据块(包括第一数据块或第二数据块)的接收后,对所有的数据块进行统一解密,本申请实施例对此不作具体限定。
可选的,第一数据块和第二数据块中均包括:生成车辆系统升级的升级包的服务器的签名。示例性的,OTA服务器在对完整的车辆系统升级的升级包进行分块之前,可以对升级包进行签名或对升级包的内容进行基于公钥密码的数字签名,该签名可以是OTA服务器对应的标识,例如签名可以是OTA服务器的设备标识、或运营该OTA服务器的运营商的标识等,或者,签名还可以包括该车辆的运营商的标识等,并在分块时,将签名添加在第一数据块和第二数据块中,使得第一终端在获取到第一数据块和第二数据块时,可以根据第一数据块和第二数据块中携带的签名确定第一数据块和第二数据块是否为第一终端所允许的OTA服务器发送的,可以理解,若第一数据块和第二数据块携带的签名不是OTA服务器的签名,则可以丢弃,并重新获取包含OTA服务器的签名的第一数据块和第二数据块,从而避免第一终端接收到其他设备发送的不安全的数据块,提升数据块传输的安全性。
适应的,在第一数据块和第二数据块中均包括生成车辆升级的升级包的服务器的签名,在第一终端确认第一数据块的签名为车辆升级包下载的服务器的签名的情况下,第一终端在第一时间开始解密第一数据块,在第二时间接收第二数据块,第一时间在第二时间之前;或在第一终端确认第二数据块的签名为车辆升级包下载服务器的签名的情况下,第一终端在第三时间开始解密第二数据块,在第四时间接收第一数据块,第三时间在第四时间之前。
示例性的,图3为本申请实施例提供的车辆升级包处理方法可以应用的一种具体升级系统。如图3所示,该升级系统包括:服务器30、第一终端31和第二终端32,其中,第二终端32的数量为三个,分别编号为第二终端320、第二终端321和第二终端322。
本申请实施例中,服务器30可以是OTA服务器。服务器30也可以是代理服务器,例如代理服务器可以是为车队服务的服务器等,在服务器30为代理服务器时,代理服务器可以先与OTA服务器之间通过双向认证,建立安全通信,之后,代理服务器将车辆的硬件和软件信息发送给OTA服务器,OTA服务器生成车辆升级包后,可以将车辆升级包下发给代理服务器,可以理解,OTA服务器也可以将车辆升级包分块后,下发给多个代理服务器,多个代理服务器通过上述的P2P方式获取到车辆升级包,本申请实施例对此不作具体限定。
本申请实施例中,第一终端和第二终端可以均为车辆,如图4示出了车辆中车载设备的逻辑框架示意图,可以理解,图4中的车载设备可以是车辆所包括的全部的车载设备或部分的车载设备。这些车载设备可以被分成若干个域,每个域包括一个或多个车载设备,每个域有一个域管理员,域管理员也可以称为域控制器。例如,移动数据中心(mobile datacenter,MDC)和一个或多个传感器(sensor)以及全球定位系统(global positioningsystem,GPS)等属于一个域,MDC是这个域的域控制器。整车控制单元(vehicle controlunit,VCU)和一个或多个电子控制单元(electronic control unit,ECU)以及无线电能传输(wireless power transmission,WPT)等属于一个域,VCU是这个域的域控制器。人机接口(human machine interface,HMI)和一个或多个ECU等属于一个域,HMI是这个域的域控制器。车身控制域(body control module,BCM)和一个或多个ECU、以及被动进入被动启动(passive entry passive start,PEPS)等属于一个域,BCM是这个域的域控制器。域控制器与网关(gateway,GW)连接,网关又连接了车载自动诊断系统(on-board diagnostics,OBD)和车联网车载通信终端(telematics box,T-Box)等设备。例如,域控制器可以通过网关与T-Box等设备通信,域内设备可以通过域控制器与网关等设备通信。
一种可选的实现方式中,车辆通过T-Box下载车辆升级包,并判断车辆升级包的来源,确定该车辆升级包为OTA服务器下发之后,可以根据升级包的对应的设备编号转发给车辆内相应的车载设备,对于计算和存储能力比较大的车载设备(如MDC,HMI等)可以自己进行组包,这样可以减少T-Box的存储资源的消耗,组包后车内车载部件可以进一步进行升级包的签名验证,在确定该车辆升级包为OTA服务器下发之后,进行升级安装等操作,从而可以提升升级数据包的可靠性。
本申请实施例中,以第一终端为第一车辆,第二终端为第二车辆为例,如图5所示,车辆升级包处理方法的一种可选的具体实现步骤可以是:
步骤S301:第一车辆从服务器获取一个或多个第一数据块,以及,第二车辆从服务器获取一个或多个第二数据块。
步骤S302:第一车辆从第二车辆获取一个或多个第二数据块。
步骤S303:第一车辆根据获取的第一数据块和第二数据块,得到车辆升级包。
本申请实施例中,服务器对车辆升级包的分块方法,以及第一车辆获取第一数据块和第二数据块的方法可以参照图2对应的实施例的记载,在此不作赘述。
在本申请实施例的一种可选应用场景中,如图3所示,服务器30是车队服务器,车队服务器提前从OTA服务器中获取该车队服务器所服务的车队(例如包括第一车辆31、第二车辆320、第二车辆321和第二车辆322)所需的车辆升级包,进而在车队例行检修期间、无线保真(Wireless-Fidelity,Wi-Fi)等联网情况下,第一车辆31、第二车辆320、第二车辆321和第二车辆322链接车队服务器,当收到升级包下载通知时,车队服务器与第一车辆31、第二车辆320、第二车辆321和第二车辆322进行双向认证(如基于PKI的认证方式),认证通过后,将升级包的加密密钥k加密(利用车辆的公钥加密)后下发给第一车辆31、第二车辆320、第二车辆321和第二车辆322,示例的,第一车辆31下载车辆升级包的第一部分,第二车辆320下载车辆升级包的第二部分,第二车辆321下载车辆升级包的第三部分;则第一车辆31可以从第二车辆320下载车辆升级包的第二部分,以及从第二车辆321下载车辆升级包的第三部分,进而利用密钥k解密得到完整的车辆升级包。
可以理解,第二车辆320也可以从第一车辆31和第二车辆321中得到完整的车辆升级包,第二车辆321也可以从第一车辆31和第二车辆320中得到完整的车辆升级包。
则当第一车辆31、第二车辆320或第二车辆321得到完整的车辆升级包后,第二车辆322就能第一车辆31、第二车辆320或第二车辆321,本申请实施例对各车辆下载车辆升级包的具体过程不做限定。
本申请实施例中,车队服务器作为代理服务器,从而车辆可以在检修等过程实现便捷的车辆升级。
可选的,为了进一步提升车辆升级包的稳定性,避免将不正确的车辆升级包下发给多个车辆,可以在步骤S301之前,先对车辆升级包的性能进行测试,示例的,可以先通过一个车辆A从服务器30中获取车辆升级包,之后车辆A根据车辆升级包进行更新,如果更新成功,车辆A发送更新成功的消息给服务器30,则进一步执行步骤S301及之后的步骤,从而可以提升车辆升级成功的概率。
示例性的,图6为本申请实施例提供的车辆升级包处理方法可以应用的一种具体升级系统。如图6所示,该升级系统包括:服务器60、第一终端61和第二终端62,其中,第二终端62的数量为三个,分别编号为第二终端620、第二终端621和第二终端622。
本申请实施例中,服务器60可以是OTA服务器。服务器60也可以是代理服务器,在服务器60为代理服务器时,代理服务器可以先与OTA服务器之间通过双向认证,建立安全通信,之后,代理服务器将车辆辅助设备所服务的车辆的硬件和软件信息发送给OTA服务器,OTA服务器生成车辆升级包后,可以将车辆升级包下发给代理服务器,可以理解,OTA服务器也可以将车辆升级包分块后,下发给多个代理服务器,多个代理服务器通过上述的P2P方式获取到车辆升级包,本申请实施例对此不作具体限定。
本申请实施例中,以第一终端为第一车辆辅助设备,第二终端为第二车辆辅助设备为例,第二车辆辅助设备可以是为车辆充电的设备(例如充电桩等),或移动终端等,如图7所示,车辆升级包处理方法的一种可选的具体实现步骤可以是:
步骤S701:第一车辆辅助设备从服务器获取一个或多个第一数据块,以及,第二车辆辅助设备从服务器获取一个或多个第二数据块。
步骤S702:第一车辆辅助设备从第二车辆辅助设备获取一个或多个第二数据块。
步骤S703:第一车辆辅助设备根据获取的第一数据块和第二数据块,得到车辆升级包。
本申请实施例中,服务器对车辆升级包的分块方法,以及第一车辆辅助设备获取第一数据块和第二数据块的方法可以参照图2对应的实施例的记载,在此不作赘述。
在本申请实施例的一种可选应用场景中,如图6所示,服务器60是OTA服务器,OTA服务器中生成车辆升级包,进而通知第一车辆辅助设备61、第二车辆辅助设备620、第二车辆辅助设备621和第二车辆辅助设备622有车辆升级包需要下载,OTA服务器与第一车辆辅助设备61、第二车辆辅助设备620、第二车辆辅助设备621和第二车辆辅助设备622进行双向认证(如基于PKI的认证方式),认证通过后,将用密钥k加密的数据块下发给第一车辆辅助设备61、第二车辆辅助设备620、第二车辆辅助设备621和第二车辆辅助设备622,示例的,第一车辆辅助设备61下载车辆升级包的第一部分,第二车辆辅助设备620下载车辆升级包的第二部分,第二车辆辅助设备621下载车辆升级包的第三部分;则第一车辆辅助设备61可以从第二车辆辅助设备620下载车辆升级包的第二部分,以及从第二车辆辅助设备621下载车辆升级包的第三部分,进而利用密钥k解密得到完整的车辆升级包。
可以理解,第二车辆辅助设备620也可以从第一车辆辅助设备61和第二车辆辅助设备621中得到完整的车辆升级包,第二车辆辅助设备621也可以从第一车辆辅助设备61和第二车辆辅助设备620中得到完整的车辆升级包。
则当第一车辆辅助设备61、第二车辆辅助设备620或第二车辆辅助设备621得到完整的车辆升级包后,第二车辆辅助设备622就能从第一车辆辅助设备61、第二车辆辅助设备620或第二车辆辅助设备621得到车辆升级包,本申请实施例对各车辆辅助设备下载车辆升级包的具体过程不做限定。
在本申请实施例中,示例性的,车辆63收到升级通知后,可以与OTA服务器建立链接,获取到车辆升级包的加密密钥k,在车辆63通过第一车辆辅助设备61、第二车辆辅助设备620、第二车辆辅助设备621或第二车辆辅助设备622进行充电时,第一车辆辅助设备61、第二车辆辅助设备620、第二车辆辅助设备621或第二车辆辅助设备622可以接收车辆发送的升级包获取请求,并与车辆进行双向认证,之后,第一车辆辅助设备61、第二车辆辅助设备620、第二车辆辅助设备621或第二车辆辅助设备622可以将加密的车辆升级包发送给车辆,车辆63通过密钥k解密该加密的车辆升级包,得到车辆升级包,从而,车辆63可以实现边充电边下载车辆升级包,可以理解,因为车辆充电时一方面车辆通常处于静止状态,通常可以有较好的网络环境,另一方面,因为车辆与充电辅助设备连接,也可以避免因为车辆电量不足造成车载升级包下载中断等现象发生,可以较好地提升用户进行车辆升级的体验。
可选的,为了进一步提升车辆升级包的稳定性,避免将不正确的车辆升级包下发给多个车辆,可以在步骤S701之前,先对车辆升级包的正确性进行测试,示例的,可以先通过一个车辆A从第一车辆辅助设备61、第二车辆辅助设备620、第二车辆辅助设备621或第二车辆辅助设备622获取车辆升级包,之后车辆A根据车辆升级包进行更新,如果更新成功,车辆A发送更新成功的消息给第一车辆辅助设备61、第二车辆辅助设备620、第二车辆辅助设备621或第二车辆辅助设备622,则进一步执行步骤S701及之后的步骤,从而可以提升车载系统升级成功的概率。
图8为本申请实施例提供的一种第一终端的结构示意图,包括接收模块801和处理模块802,其中,接收模块,用于从服务器接收一个或多个第一数据块,第一数据块用于车辆升级;处理模块,用于第一终端从第二终端获取一个或多个第二数据块,第二数据块用于车载系统升级,第二数据块是服务器发送给第二终端的;以及,根据第一数据块和第二数据块,得到车辆升级包。
在一种可能的设计中,第一数据块和第二数据块均为加密后的数据块,且第一数据块的数据块长度和至少一个第二数据块的数据块长度均为加密算法的分组长度的整数倍。
在一种可能的设计中,处理模块,具体用于在第一时间开始解密第一数据块;在第二时间接收第二数据块,第一时间在第二时间之前;或,在第三时间开始解密第二数据块,在第四时间接收第一数据块,第三时间在第四时间之前。
在一种可能的设计中,第一数据块和第二数据块均包括:生成车辆系统升级的升级包的服务器的签名;处理模块,具体还用于:在确认第一数据块的签名为车辆系统升级的升级包的服务器的签名的情况下,在第一时间开始解密第一数据块;在确认第二数据块的签名为车辆系统升级的升级包的服务器的签名的情况下,在第三时间开始解密第二数据块。
在一种可能的设计中,服务器中保存有车辆升级包被分块后的数据块与接收数据块的终端的关联关系;处理模块具体还用于:根据关联关系,向第二终端发送数据块获取请求;接收第二终端响应于数据块获取请求返回的一个或多个第二数据块。
在一种可能的设计中,服务器为代理服务器,车辆升级包为代理服务器从空中下载OTA服务器获取的;第一终端为车辆。
在一种可能的设计中,第一终端为充电桩。
在一种可能的设计中,还包括:接收模块,还用于接收车辆发送的升级包获取请求;处理模块,还用于在车辆通过充电桩的安全验证的情况下,根据升级包获取请求向车辆返回车辆升级包。
在一种可能的设计中,接收模块,具体用于:在第一终端通过服务器的安全认证的情况下,第一终端从服务器接收第一数据块。
本实施例的装置对应地可用于执行上述方法实施例中第一终端执行的步骤,其实现原理和技术效果类似,此处不再赘述。
图9为本申请实施例提供的一种第一终端的结构示意图,包括处理模块901和发送模块902,其中,处理模块,用于对车辆升级包分块,得到多个数据块;发送模块,用于将多个数据块分发给至少一个终端;每个终端用于根据该终端所接收的数据块,以及至少一个终端中其他终端的数据块,得到车辆升级包。
在一种可能的设计中,处理模块具体用于:根据加密算法对车辆升级包加密,以及将加密后的车辆升级包分块得到多个数据块。
在一种可能的设计中,服务器为代理服务器,处理模块还用于:从空中下载OTA服务器获取车辆升级包。
在一种可能的设计中,处理模块具体用于:向空中下载OTA服务器发送车载升级包获取请求;车载升级包获取请求包括:车辆的操作系统类型和版本;在代理服务器通过OTA服务器的安全验证的情况下,接收OTA服务器发送的车辆升级包;其中,车辆升级包为OTA服务器根据车辆的操作系统类型和版本生成的。
在一种可能的设计中,处理模块,还用于记录车辆升级包被分块后的数据块与接收数据块的终端的关联关系。
本实施例的装置对应地可用于执行上述方法实施例中服务器执行的步骤,其实现原理和技术效果类似,此处不再赘述。
图10为本申请提供的车辆升级包处理装置的硬件结构示意图。请参见图10,该车辆升级包处理装置包括:存储器1001、处理器1002和通信接口1003,其中,存储器1001、处理器1002和通信接口1003可以通信;示例性的,存储器1001、处理器1002和通信接口1003可以通过通信总线1004通信,所述存储器1001用于存储计算机程序,所述处理器1002执行所述计算机程序实现上述方法实施例所示的方法。
可选的,通信接口1003还可以包括发送器和/或接收器。
可选的,上述处理器可以是中央处理单元(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本申请提供一种可读计算机存储介质,所述可读计算机存储介质用于存储计算机程序,所述计算机程序用于实现上述方法实施例所示的方法。
本申请还一种通信系统,包括如图8所述的第一终端和如图9所述的服务器。
本申请提供一种系统芯片,该系统芯片用于支持通信装置实现本申请实施例所示的功能(例如,第一终端从服务器接收一个或多个第一数据块,第一数据块用于车辆升级;第一终端从第二终端获取一个或多个第二数据块,第二数据块用于车载系统升级,第二数据块是服务器发送给第二终端的;第一终端根据第一数据块和第二数据块,得到车辆升级包),该芯片具体用于芯片系统,该芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。当实现上述方法的为第一设备内的芯片时,芯片包括处理单元,进一步的,芯片还可以包括通信单元,所述处理单元例如可以是处理器,当芯片包括通信单元时,所述通信单元例如可以是输入/输出接口、管脚或电路等。处理单元执行本申请实施例中各个处理模块所执行的全部或部分动作,通信单元可执行相应的接收或发送动作,在另一具体的实施例中,本申请中的接收设备的处理模块可以是芯片的处理单元,控制设备的接收模块或发送模块是芯片的通信单元。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。