CN116166298A - 一种固件升级方法、装置、设备及存储介质 - Google Patents

一种固件升级方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116166298A
CN116166298A CN202310270431.9A CN202310270431A CN116166298A CN 116166298 A CN116166298 A CN 116166298A CN 202310270431 A CN202310270431 A CN 202310270431A CN 116166298 A CN116166298 A CN 116166298A
Authority
CN
China
Prior art keywords
firmware
backup
package
target ecu
firmware package
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.)
Granted
Application number
CN202310270431.9A
Other languages
English (en)
Other versions
CN116166298B (zh
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202310270431.9A priority Critical patent/CN116166298B/zh
Publication of CN116166298A publication Critical patent/CN116166298A/zh
Application granted granted Critical
Publication of CN116166298B publication Critical patent/CN116166298B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供了一种固件方法、装置、设备及存储介质,涉及汽车技术领域,尤其涉及汽车安全技术领域,可应用于车辆OTA场景。具体实现方案为:在识别到ECU固件升级需求的情况下,确定目标ECU的备份固件包和未备份固件包;根据所述备份固件包、所述未备份固件包和所述目标ECU的差分固件包,对所述目标ECU进行固件升级。通过上述技术方案,能够提高固件升级的安全性。

Description

一种固件升级方法、装置、设备及存储介质
技术领域
本公开涉及汽车技术领域,尤其涉及汽车安全技术领域,可应用于车辆OTA场景。
背景技术
在汽车空中下载(Over-the-Air,OTA)更新场景下,不论车辆使用何种电子电气架构(Electrical/Electronic Architecture,EEA),基本都会使用到统一诊断服务(Unified Diagnostic Services,UDS)或者DoIP协议实现电子控制单元(ElectronicControl Unit,ECU)的升级刷写。在升级过程中可能使用整包升级也可能使用差分升级。对于整包升级,云端下发完整ECU固件包,升级时直接对完整ECU固件包进行解包,基于解包后的升级固件包,直接调用UDS(或DoIP)协议刷写ECU固件。
但对于差分包,车端需要先进行差分合成,再调用UDS(或DoIP)协议实现刷写。差分合成过程中需要使用下发下来的差分包以及原始固件包进行合成运算实现。因此一定需要本地存在一个原始版本固件包,通常会采用如下两种方案:一是在本地备份所有ECU的原始固件包并长期存储,这种方式占用空间大,且本地持久存储无法释放;二是使用UDS协议中35、36、37服务,从ECU中读取原始固件包,这种方式安全性存在问题,需要支持车端通过UDS读取ECU中原始固件版,目前绝大部分ECU供应商为了防止固件泄漏,会禁止使用UDS协议35、36、37服务读取原始固件。
发明内容
本公开提供了一种固件升级方法、装置、设备及存储介质。
根据本公开的一方面,提供了一种固件升级方法,该方法包括:
在识别到ECU固件升级需求的情况下,确定目标ECU的备份固件包和未备份固件包;
根据所述备份固件包、所述未备份固件包和所述目标ECU的差分固件包,对所述目标ECU进行固件升级。
根据本公开的另一方面,提供了一种固件升级方法,该方法包括:
响应于OTA管理器发起的未备份数据获取请求,从原始固件数据中确定未备份固件包;
向所述OTA管理器反馈所述未备份固件包,以使所述OTA管理器器根据备份固件包、所述未备份固件包和差分固件包,对目标ECU进行固件升级。
根据本公开的另一方面,提供了一种固件升级装置,该装置包括:
固件包确定模块,用于在识别到ECU固件升级需求的情况下,确定目标ECU的备份固件包和未备份固件包;
固件升级模块,用于根据所述备份固件包、所述未备份固件包和所述目标ECU的差分固件包,对所述目标ECU进行固件升级。
根据本公开的另一方面,提供了一种固件升级装置,该装置包括:
未备份固件包确定模块,用于响应于OTA管理器发起的未备份数据获取请求,从原始固件数据中确定未备份固件包;
未备份固件包发送模块,用于向所述OTA管理器反馈所述未备份固件包,以使所述OTA管理器器根据备份固件包、所述未备份固件包和差分固件包,对目标ECU进行固件升级。
根据本公开的另一方面,提供了一种电子设备,该电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开任一实施例所述固件升级方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行本公开任一实施例所述的固件升级方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据本公开任一实施例所述的固件升级方法。
根据本公开的技术,能够提高固件升级的安全性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例提供的一种固件升级方法的流程图;
图2是根据本公开实施例提供的又一种固件升级方法的流程图;
图3是根据本公开实施例提供的一种固件升级方法的流程图;
图4A是根据本公开实施例提供的又一种固件升级方法的流程图;
图4B是根据本公开实施例提供的一种差分升级所需存储空间示意图;
图4C是根据本公开实施例提供的另一种差分升级所需存储空间示意图;
图4D是根据本公开实施例提供的又一种差分升级所需存储空间示意图;
图5是根据本公开实施例提供的一种固件升级装置的结构示意图;
图6是根据本公开实施例提供的一种固件升级装置的结构示意图;
图7是用来实现本公开实施例的固件升级方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“原始”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
此外,还需要说明的是,本发明的技术方案中,所涉及的原始固件数据、未备份固件包和备份固件包等的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
图1是根据本公开实施例提供的一种固件升级方法的流程图。本实施适用于如何在车辆OTA场景下实现固件升级的情况。该方法可以由固件升级装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成于承载固件升级功能的电子设备中,例如OTA管理器中。如图1所示,本实施例的固件升级方法可以包括:
S101,在识别到ECU固件升级需求的情况下,确定目标ECU的备份固件包和未备份固件包。
本实施例中,ECU固件升级需求是需要对ECU进行固件升级的需求。目标ECU是指需要进行固件升级的ECU。
备份固件包是指OTA管理器本地备份的ECU当前版本的固件数据的一部分固件数据;其中,当前版本是指ECU未升级前的版本。未备份固件包是指OTA管理器本地未备份的ECU当前版本的固件数据的另一部分固件数据,也即ECU当前版本的固件数据除去OTA管理器已经备份的备份固件包的剩余固件数据。需要说明的是,备份固件包和未备份固件包可以组成当前版本下的ECU的原始固件包。
具体的,OTA管理器在识别到对目标ECU的ECU固件升级需求的情况下,从本地获取已预先存储的目标ECU的备份固件包,同时从目标ECU中获取未备份固件包。
S102,根据备份固件包、未备份固件包和目标ECU的差分固件包,对目标ECU进行固件升级。
本实施例中,差分固件包是指云端中ECU的目标版本与当前版本之前的差分包,其中,目标版本为ECU需要更新后的版本。可选的,可以从云端获取目标ECU的差分固件包。
具体的,可以基于预设的差分升级算法,根据目标ECU的备份固件包、未备份固件包和差分固件包,对目标ECU进行固件刷写。
本公开实施例提供的技术方案,通过在识别到ECU固件升级需求的情况下,确定目标ECU的备份固件包和未备份固件包,之后根据备份固件包、未备份固件包和目标ECU的差分固件包,对目标ECU进行固件升级。上述技术方案,在进行ECU固件差分升级时,本地只需备份少量ECU固件数据,且不会持续占用本地过多的存储空间,从而节省了存储空间。
在上述实施例的基础上,作为本公开的一种可选方式,确定目标ECU的备份固件包,包括:对目标ECU的备份固件密文进行解密,得到目标ECU的备份固件包。
其中,备份固件密文是在对备份固件包中的固件数据进行加密后的数据;可选的,OTA管理器在接收到目标ECU发送的备份固件包时,采用预设加密算法,对该备份固件包进行加密存储,以供后续目标ECU固件差分升级是使用。
具体的,可以采用与预设加密算法对应的解密算法,对目标ECU的备份固件密文进行解密,得到解密后的备份固件包。
可以理解的是,通过对备份固件包进行加密存储,差分升级使用过程中对备份固件密文进行解密,保证了备份固件包的安全性,从而确保了固件整体安全性。
在上述实施例的基础上,作为本公开的一种可选方式,确定目标ECU的未备份固件包,包括:基于预设固件抽取方式,从目标ECU中的原始固件包中抽取除备份固件包之外的未备份固件包。
具体的,OTA管理器可以调用UDS协议读取目标ECU的ECU固件;相应的,目标ECU向OTA管理器反馈未备份固件包,具体的,目标ECU基于预设固件抽取方式,从ECU固件数据中抽取出OTA管理器未备份部分数据,生成未备份固件包,并向OTA管理器反馈未备份固件包。
可以理解的是,在固件差分升级时,仅可以通过UDS协议读取到目标ECU的未备份固件包,由于部分信息被抽取,因此若非法对目标ECU进行差分升级时,无法还原出完整的升级包,从而确保了固件整体安全性。
图2是根据本公开实施例提供的又一种固件升级方法的流程图。本实施例在上述实施例的基础上,进一步优化,提供一种可选实施方案。如图2所示,本实施例的固件升级方法可以包括:
S201,在识别到ECU固件备份需求的情况下,获取目标ECU发送的初始固件备份包。
本实施例中,ECU固件备份需求是指ECU固件发生更新后,向OTA管理器发送的固件部分备份需求。初始固件备份包是指目标ECU发送的未经过加密处理的部分固件数据的备份包。
具体的,目标ECU在ECU固件发生更新后,基于预设固件抽取方法,确定初始备份固件包,并向OTA管理器发送初始固件备份包;相应的,OTA管理器在识别到目标ECU固件备份需要时,接收目标ECU发送的初始固件备份包。
S202,对初始固件备份包进行加密,得到目标ECU的备份固件密文,并存储。
具体的,可以采用预设加密算法,对初始备份固件进行加密,得到目标ECU的备份固件密文,并将备份固件密文与目标ECU标识信息进行关联存储。
S203,在识别到ECU固件升级需求的情况下,确定目标ECU的备份固件包和未备份固件包。
S204,根据备份固件包、未备份固件包和目标ECU的差分固件包,对目标ECU进行固件升级。
需要说明的是,S201-S202的顺序可以是在S204之后,也就是说,在对目标ECU进行固件升级后,目标ECU会重新抽取新的初始固件备份包,相应的,OTA管理器会获取新的初始固件备份包,进行加密后存储。
本公开实施例提供的技术方案,通过在识别到ECU固件备份需求的情况下,获取目标ECU发送的初始固件备份包,并对初始固件备份包进行加密,得到目标ECU的备份固件密文,并存储,之后在识别到ECU固件升级需求的情况下,确定目标ECU的备份固件包和未备份固件包,进而根据备份固件包、未备份固件包和目标ECU的差分固件包,对目标ECU进行固件升级。上述技术方案,通过备份ECU固件的部分数据,节省了存储空间;同时为固件差分升级的安全性奠定了基础。
在上述实施例的基础上,作为本公开的一种可选方式,根据备份固件包、未备份固件包和目标ECU的差分固件包,对目标ECU进行固件升级,包括:根据备份固件包和未备份固件包,确定目标ECU的原始固件包;根据原始固件包和目标ECU的差分固件包,确定目标ECU的升级固件包;根据升级固件包,对目标ECU进行固件升级。
其中,原始固件包是指还原的目标ECU未更新前的固件包。升级固件包是指目标ECU需要更新后的固件包。
具体的,可以基于与目标ECU对固件数据抽取相同的抽取方式,对备份固件包和未备份固件包进行整合,还原得到目标ECU的原始固件包,之后对原始固件包和差分固件包进行比较,对原始固件包进行修改、删除等操作,得到目标ECU的升级固件包,进而可以基于升级固件包对目标ECU进行固件升级。
可以理解的是,差分升级时从不同地方获取所需的固件包来对ECU进行固件升级,提升了ECU升级的安全性。
在上述实施例的基础上,作为本公开的一种可选方式,识别固件升级成功后,删除原始固件包。
具体的,OTA管理器在识别到目标ECU的固件升级成功后,可以删除原始固件包;进一步的,还可以删除差分固件包。
可以理解的是,在固件升级完成后,删除本地存储的目标ECU的固件包,可以节省存储空间。
图3是根据本公开实施例提供的一种固件升级方法的流程图。本实施适用于如何在车辆OTA场景下实现固件升级的情况。该方法可以由固件升级装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成于承载固件升级功能的电子设备中,例如ECU中。如图3所示,本实施例的固件升级方法可以包括:
S301,响应于OTA管理器发起的未备份数据获取请求,从原始固件数据中确定未备份固件包。
本实施例中,未备份数据获取请求是指获取目标ECU中未备份的固件数据的请求。原始固件数据是指当前版本的目标ECU中的固件数据。为备份固件包是指未向OTA管理器所备份过的当前版本的目标ECU中的固件数据。
具体的,OTA管理器需要获取目标ECU的原始固件包时,向目标ECU发送未备份数据获取请求;相应的,目标ECU响应于OTA管理器发送的位备份数据获取请求,基于预设固件抽取方式,从原始固件数据中抽取未备份固件数据后,生成未备份固件包。
S302,向OTA管理器反馈未备份固件包,以使OTA管理器器根据备份固件包、未备份固件包和差分固件包,对目标ECU进行固件升级。
本实施例中,备份固件包是指OTA管理器本地备份的ECU当前版本的固件数据的一部分固件数据;其中,当前版本是指ECU未升级前的版本。差分固件包是指云端中ECU的目标版本与当前版本之前的差分包,其中,目标版本为ECU需要更新后的版本。可选的,可以从云端获取目标ECU的差分固件包。
具体的,目标ECU确定未备份固件包后,向OTA管理器反馈未备份固件包;相应的,OTA管理器接收到未备份固件包后,可以基于备份固件包、未备份固件包和差分固件包,对目标ECU进行固件升级。
本公开实施例提供的技术方案,通过响应于OTA管理器发起的未备份数据获取请求,从原始固件数据中确定未备份固件包,之后向OTA管理器反馈未备份固件包,以使OTA管理器器根据备份固件包、未备份固件包和差分固件包,对目标ECU进行固件升级。上述技术方案,在进行ECU固件差分升级时,ECU本地只需上传未备份的ECU固件数据,使得OTA管理器端不会持续占用过多的存储空间,从而节省了存储空间。
在上述实施例的基础上,作为本公开的一种可选方式,从原始固件数据中确定未备份固件包,包括:基于预设固件抽取方式,对原始固件数据进行抽取;根据抽取结果,确定未备份固件包。
具体的,可以基于预设固件抽取方式,对原始固件数据进行抽取,根据抽取结果,确定未备份固件包。例如,可以对原始固件数据每隔一段数据抽取一部分数据,作为待备份数据,之后将除待备份数据之外的数据,作为未备份数据,并生成未备份固件包。又如,还可以按照预设比例,对原始固件数据进行抽取,抽取出未备份过的对应比例的原始固件数据,作为未备份数据,并生成未备份固件包。
需要说明的是,这里的预设固件抽取方式与目标ECU在向OTA管理器备份部分固件数据时所采用的固件抽取方式相同。
可以理解的是,差分升级时从目标ECU中抽取部分之前未备份过的固件数据,确保了ECU固件整体安全性,同时还节省了OTA管理器的存储空间。
图4A是根据本公开实施例提供的又一种固件升级方法的流程图。本实施例在上述实施例的基础上,进一步优化,提供一种可选实施方案。如图4A所示,本实施例的固件升级方法可以包括:
S401,响应于OTA管理器发起的未备份数据获取请求,从原始固件数据中确定未备份固件包。
S402,向OTA管理器反馈未备份固件包,以使OTA管理器器根据备份固件包、未备份固件包和差分固件包,对目标ECU进行固件升级。
S403,在识别到ECU固件更新的情况下,从目标ECU的原始固件数据中确定备份固件包。
S404,将备份固件包发送给OTA管理器。
本实施例中,备份固件包是指OTA管理器本地备份的ECU当前版本的固件数据的一部分固件数据。
具体的,目标ECU识别到本地ECU固件更新后,从目标ECU的原始固件数据中重新收取部分固件数据,得到备份固件包,并将备份固件包发送给OTA管理器。
本公开实施例提供的技术方案,通过响应于OTA管理器发起的未备份数据获取请求,从原始固件数据中确定未备份固件包,并向OTA管理器反馈未备份固件包,以使OTA管理器器根据备份固件包、未备份固件包和差分固件包,对目标ECU进行固件升级,之后在识别到ECU固件更新的情况下,从目标ECU的原始固件数据中确定备份固件包,并将备份固件包发送给OTA管理器。上述技术方案,ECU固件升级完成后,重新抽取部分固件数据进行OTA管理器备份,能够及时更新OTA管理器端的备份数据,从而提升固件升级的效率。
在上述实施例的基础上,作为本公开的一种可选方式,从目标ECU的原始固件数据中确定备份固件包,包括:基于预设固件抽取方式,对原始固件数据进行抽取;根据抽取结果,确定备份固件包。
具体的,可以基于预设固件抽取方式,对原始固件数据进行抽取,根据抽取结果,确定备份固件包。例如,可以对原始固件数据每隔一段数据抽取一部分数据,作为待备份数据,并生成备份固件包。又如,还可以按照预设比例,对原始固件数据进行抽取,抽取出设定比例的原始固件数据,作为待备份数据,并生成备份固件包。需要说明的是,备份固件包所占比例越小,其在OTA管理器中所需的持久化备份空间越少。
需要说明的是,这里的预设固件抽取方式与目标ECU在向OTA管理器发送未备份部分固件数据时所采用的固件抽取方式相同。
可以理解的是,提供不同方式对ECU的原始固件数据进行部分备份,可以灵活根据需求进行固件备份。
一个具体的例子,相关技术中进行差分升级时采用如下两种方案:方案一、OTA管理器本地备份所有ECU原始升级包,并长期存储。当要升级整车多个ECU时,即需要OTA管理器预先保存所有ECU的原始固件包,为方便后续介绍,假设一共5个ECU,整包大小分别为200k、500k、2M、1M以及10M,且假设T-Box为OTA Master程序宿主设备,因此一次差分升级过程中共需要的空间如图4B所示;图4B中所有备份包(原始固件包)、差分包(差分固件包)以及还原出的升级包(升级固件包)均需要同时保存,因此共需要存储空间约44.5M。此方案可以不需要从ECU中读取固件,没有安全风险,但是本地需要多占用19M空间用于存储所有ECU的备份包,并且此空间需要持续占用不能释放。方案二是使用UDS协议从ECU中读取原始固件。此方案OTA管理器本地不存储备份包,当需要进行差分还原时,直接使用UDS协议中35、36、37服务,从ECU中读取原始包,因此本地差分还原时,可以依次还原每个ECU的升级包,还原完成后可以删除原始包,因此最多只需要存储5个备份包中的一个,并且是临时占用空间,使用完成后可释放,因此占用空间最多时需要30.5M,示意图如图4C所示。
如上例,采用本公开的技术方案,OTA管理器本地需要的最大空间如图4D所示。假设使用10%作为比例抽取A部分数据(备份固件包),则本地最多占用空间为31.9M,空间占用方面远小于原始方案一,略高于原始方案二,并且具备很好的安全性,可以确保完整升级包不会被攻击者直接通过UDS协议读取导致泄漏。
图5是根据本公开实施例提供的一种固件升级装置的结构示意图。本实施适用于如何在车辆OTA场景下实现固件升级的情况。该装置可以采用软件和/或硬件的方式实现,并可集成于承载固件升级功能的电子设备中,例如OTA管理器中。如图5所示,本实施例的固件升级装置500可以包括:
固件包确定模块501,用于在识别到ECU固件升级需求的情况下,确定目标ECU的备份固件包和未备份固件包;
固件升级模块502,用于根据备份固件包、未备份固件包和目标ECU的差分固件包,对目标ECU进行固件升级。
本公开实施例提供的技术方案,通过在识别到ECU固件升级需求的情况下,确定目标ECU的备份固件包和未备份固件包,之后根据备份固件包、未备份固件包和目标ECU的差分固件包,对目标ECU进行固件升级。上述技术方案,在进行ECU固件差分升级时,本地只需备份少量ECU固件数据,且不会持续占用本地过多的存储空间,从而节省了存储空间。
进一步地,固件包确定模块501用于:
对目标ECU的备份固件密文进行解密,得到目标ECU的备份固件包。
进一步地,固件包确定模块501用于:
基于预设固件抽取方式,从目标ECU中的原始固件包中抽取除备份固件包之外的未备份固件包。
进一步地,该装置还包括:
初始固件确定模块,用于在识别到ECU固件备份需求的情况下,获取目标ECU发送的初始固件备份包;
固件密文确定模块,用于对初始固件备份包进行加密,得到目标ECU的备份固件密文,并存储。
进一步地,固件升级模块502用于:
根据备份固件包和未备份固件包,确定目标ECU的原始固件包;
根据原始固件包和目标ECU的差分固件包,确定目标ECU的升级固件包;
根据升级固件包,对目标ECU进行固件升级。
进一步地,该装置还包括:
固件包删除模块,用于识别固件升级成功后,删除原始固件包。
图6是根据本公开实施例提供的一种固件升级装置的结构示意图。本实施适用于如何在车辆OTA场景下实现固件升级的情况。该装置可以采用软件和/或硬件的方式实现,并可集成于承载固件升级功能的电子设备中,例如ECU中。如图6所示,本实施例的固件升级装置600可以包括:
未备份固件包确定模块601,用于响应于OTA管理器发起的未备份数据获取请求,从原始固件数据中确定未备份固件包;
未备份固件包发送模块602,用于向OTA管理器反馈未备份固件包,以使OTA管理器器根据备份固件包、未备份固件包和差分固件包,对目标ECU进行固件升级。
本公开实施例提供的技术方案,通过响应于OTA管理器发起的未备份数据获取请求,从原始固件数据中确定未备份固件包,之后向OTA管理器反馈未备份固件包,以使OTA管理器器根据备份固件包、未备份固件包和差分固件包,对目标ECU进行固件升级。上述技术方案,在进行ECU固件差分升级时,ECU本地只需上传未备份的ECU固件数据,使得OTA管理器端不会持续占用过多的存储空间,从而节省了存储空间。
进一步地,未备份固件确定模块601用于:
基于预设固件抽取方式,对原始固件数据进行抽取;
根据抽取结果,确定未备份固件包。
进一步地,该装置还包括:
备份固件包确定模块,用于在识别到ECU固件更新的情况下,从目标ECU的原始固件数据中确定备份固件包;
备份固件包发送模块,用于将备份固件包发送给OTA管理器。
进一步地,备份固件包确定模块用于:
基于预设固件抽取方式,对原始固件数据进行抽取;
根据抽取结果,确定备份固件包。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图7是用来实现本公开实施例的固件升级方法的电子设备的框图,图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,电子设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储电子设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
电子设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许电子设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如固件升级方法。例如,在一些实施例中,固件升级方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到电子设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的固件升级方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行固件升级方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (23)

1.一种固件升级方法,包括:
在识别到电子控制单元ECU固件升级需求的情况下,确定目标ECU的备份固件包和未备份固件包;
根据所述备份固件包、所述未备份固件包和所述目标ECU的差分固件包,对所述目标ECU进行固件升级。
2.根据权利要求1所述的方法,其中,确定目标ECU的备份固件包,包括:
对所述目标ECU的备份固件密文进行解密,得到所述目标ECU的备份固件包。
3.根据权利要求1所述的方法,其中,确定目标ECU的未备份固件包,包括:
基于预设固件抽取方式,从目标ECU中的原始固件包中抽取除备份固件包之外的未备份固件包。
4.根据权利要求2所述的方法,还包括:
在识别到ECU固件备份需求的情况下,获取所述目标ECU发送的初始固件备份包;
对所述初始固件备份包进行加密,得到所述目标ECU的备份固件密文,并存储。
5.根据权利要求1所述的方法,其中,所述根据所述备份固件包、所述未备份固件包和所述目标ECU的差分固件包,对所述目标ECU进行固件升级,包括:
根据所述备份固件包和所述未备份固件包,确定所述目标ECU的原始固件包;
根据所述原始固件包和所述目标ECU的差分固件包,确定所述目标ECU的升级固件包;
根据所述升级固件包,对所述目标ECU进行固件升级。
6.根据权利要求5所述的方法,还包括:
识别固件升级成功后,删除所述原始固件包。
7.一种固件升级方法,包括:
响应于空中下载OTA管理器发起的未备份数据获取请求,从原始固件数据中确定未备份固件包;
向所述OTA管理器反馈所述未备份固件包,以使所述OTA管理器器根据备份固件包、所述未备份固件包和差分固件包,对目标ECU进行固件升级。
8.根据权利要求7所述的方法,其中,所述从原始固件数据中确定未备份固件包,包括:
基于预设固件抽取方式,对所述原始固件数据进行抽取;
根据抽取结果,确定未备份固件包。
9.根据权利要求7所述的方法,还包括:
在识别到ECU固件更新的情况下,从所述目标ECU的原始固件数据中确定备份固件包;
将所述备份固件包发送给OTA管理器。
10.根据权利要求9所述的方法,其中,从所述目标ECU的原始固件数据中确定备份固件包,包括:
基于预设固件抽取方式,对所述原始固件数据进行抽取;
根据抽取结果,确定备份固件包。
11.一种固件升级装置,包括:
固件包确定模块,用于在识别到ECU固件升级需求的情况下,确定目标ECU的备份固件包和未备份固件包;
固件升级模块,用于根据所述备份固件包、所述未备份固件包和所述目标ECU的差分固件包,对所述目标ECU进行固件升级。
12.根据权利要求11所述的装置,其中,所述固件包确定模块用于:
对所述目标ECU的备份固件密文进行解密,得到所述目标ECU的备份固件包。
13.根据权利要求11所述的装置,其中,所述固件包确定模块用于:
基于预设固件抽取方式,从目标ECU中的原始固件包中抽取除备份固件包之外的未备份固件包。
14.根据权利要求12所述的装置,还包括:
初始固件确定模块,用于在识别到ECU固件备份需求的情况下,获取所述目标ECU发送的初始固件备份包;
固件密文确定模块,用于对所述初始固件备份包进行加密,得到所述目标ECU的备份固件密文,并存储。
15.根据权利要求11所述的装置,其中,所述固件升级模块用于:
根据所述备份固件包和所述未备份固件包,确定所述目标ECU的原始固件包;
根据所述原始固件包和所述目标ECU的差分固件包,确定所述目标ECU的升级固件包;
根据所述升级固件包,对所述目标ECU进行固件升级。
16.根据权利要求15所述的装置,还包括:
固件包删除模块,用于识别固件升级成功后,删除所述原始固件包。
17.一种固件升级装置,包括:
未备份固件包确定模块,用于响应于OTA管理器发起的未备份数据获取请求,从原始固件数据中确定未备份固件包;
未备份固件包发送模块,用于向所述OTA管理器反馈所述未备份固件包,以使所述OTA管理器器根据备份固件包、所述未备份固件包和差分固件包,对目标ECU进行固件升级。
18.根据权利要求17所述的装置,其中,所述未备份固件确定模块用于:
基于预设固件抽取方式,对所述原始固件数据进行抽取;
根据抽取结果,确定未备份固件包。
19.根据权利要求17所述的装置,还包括:
备份固件包确定模块,用于在识别到ECU固件更新的情况下,从所述目标ECU的原始固件数据中确定备份固件包;
备份固件包发送模块,用于将所述备份固件包发送给OTA管理器。
20.根据权利要求19所述的装置,其中,所述备份固件包确定模块用于:
基于预设固件抽取方式,对所述原始固件数据进行抽取;
根据抽取结果,确定备份固件包。
21.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-10中任一项所述的固件升级方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1-10中任一项所述的固件升级方法。
23.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-10中任一项所述的固件升级方法。
CN202310270431.9A 2023-03-16 2023-03-16 一种固件升级方法、装置、设备及存储介质 Active CN116166298B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310270431.9A CN116166298B (zh) 2023-03-16 2023-03-16 一种固件升级方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310270431.9A CN116166298B (zh) 2023-03-16 2023-03-16 一种固件升级方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116166298A true CN116166298A (zh) 2023-05-26
CN116166298B CN116166298B (zh) 2024-03-01

Family

ID=86411478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310270431.9A Active CN116166298B (zh) 2023-03-16 2023-03-16 一种固件升级方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116166298B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101377744A (zh) * 2008-09-24 2009-03-04 深圳华为通信技术有限公司 一种终端设备软件升级恢复方法及装置
US20190235971A1 (en) * 2018-01-29 2019-08-01 Rubrik, Inc. Creation of Virtual Machine Packages Using Incremental State Updates
CN110134418A (zh) * 2019-05-10 2019-08-16 上海擎感智能科技有限公司 基于空间下载技术的整车升级方法及装置、存储介质和终端
CN112559020A (zh) * 2020-12-08 2021-03-26 百度在线网络技术(北京)有限公司 文件升级方法、装置、设备和介质
CN112667266A (zh) * 2021-01-22 2021-04-16 百度在线网络技术(北京)有限公司 固件升级方法、装置、设备和存储介质
CN113190260A (zh) * 2021-05-07 2021-07-30 武汉云智安核信息技术有限公司 一种基于差分备份的国产操作系统补丁升级方法及系统
US20210334083A1 (en) * 2020-04-22 2021-10-28 Beijing xiaoma zhixing technology co.LTD Method and Apparatus for Upgrading Firmware of Transfer Device on Mobile Carrier, and Non-Transitory Storage Medium
CN114265613A (zh) * 2021-12-21 2022-04-01 红石阳光(北京)科技股份有限公司 一种整车所有电控单元固件差分升级方法及系统
CN114666323A (zh) * 2022-03-23 2022-06-24 山推工程机械股份有限公司 基于空中下载技术ota的升级方法、装置及存储介质
CN114675865A (zh) * 2020-12-10 2022-06-28 炬芯科技股份有限公司 空中下载技术升级方法、装置、存储介质及终端设备
CN115248694A (zh) * 2021-04-28 2022-10-28 中兴通讯股份有限公司 一种集群协同升级方法、设备以及可读存储介质
EP4092524A1 (en) * 2021-05-19 2022-11-23 Shanghai Abup Technology Co., Ltd Ota differential upgrade method and system of master-slave architecture
WO2022268127A1 (zh) * 2021-06-23 2022-12-29 华为技术有限公司 一种ota升级方法、装置及计算机可读存储介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101377744A (zh) * 2008-09-24 2009-03-04 深圳华为通信技术有限公司 一种终端设备软件升级恢复方法及装置
US20190235971A1 (en) * 2018-01-29 2019-08-01 Rubrik, Inc. Creation of Virtual Machine Packages Using Incremental State Updates
CN110134418A (zh) * 2019-05-10 2019-08-16 上海擎感智能科技有限公司 基于空间下载技术的整车升级方法及装置、存储介质和终端
US20210334083A1 (en) * 2020-04-22 2021-10-28 Beijing xiaoma zhixing technology co.LTD Method and Apparatus for Upgrading Firmware of Transfer Device on Mobile Carrier, and Non-Transitory Storage Medium
CN112559020A (zh) * 2020-12-08 2021-03-26 百度在线网络技术(北京)有限公司 文件升级方法、装置、设备和介质
CN114675865A (zh) * 2020-12-10 2022-06-28 炬芯科技股份有限公司 空中下载技术升级方法、装置、存储介质及终端设备
CN112667266A (zh) * 2021-01-22 2021-04-16 百度在线网络技术(北京)有限公司 固件升级方法、装置、设备和存储介质
CN115248694A (zh) * 2021-04-28 2022-10-28 中兴通讯股份有限公司 一种集群协同升级方法、设备以及可读存储介质
CN113190260A (zh) * 2021-05-07 2021-07-30 武汉云智安核信息技术有限公司 一种基于差分备份的国产操作系统补丁升级方法及系统
EP4092524A1 (en) * 2021-05-19 2022-11-23 Shanghai Abup Technology Co., Ltd Ota differential upgrade method and system of master-slave architecture
WO2022268127A1 (zh) * 2021-06-23 2022-12-29 华为技术有限公司 一种ota升级方法、装置及计算机可读存储介质
CN114265613A (zh) * 2021-12-21 2022-04-01 红石阳光(北京)科技股份有限公司 一种整车所有电控单元固件差分升级方法及系统
CN114666323A (zh) * 2022-03-23 2022-06-24 山推工程机械股份有限公司 基于空中下载技术ota的升级方法、装置及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JUHYUN PARK 等: "New flash memory acquisition methods based on firmware update protocols for LG Android smartphones", 《DIGITAL INVESTIGATION》, vol. 25, pages 42 - 54, XP085409675, DOI: 10.1016/j.diin.2018.04.002 *
刘洋 等: "一种使用LoRa通信的OTA差分升级方法", 《物联网技术》, vol. 12, no. 6, pages 41 - 44 *
张漳: "基于文件匹配的轻量级差分增量备份系统", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 10, pages 138 - 37 *
邓力 等: "一种改良安全机制的嵌入式远程升级系统的研究", 《电子测量技术》, vol. 40, no. 8, pages 207 - 211 *

Also Published As

Publication number Publication date
CN116166298B (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
CN109213611B (zh) 跨进程通讯方法、装置、终端及存储介质
US8935689B2 (en) Concurrent embedded application update and migration
CN110688662A (zh) 一种敏感数据脱敏及逆脱敏方法、电子设备
CN109154968B (zh) 用于组织内的安全且高效的通信的系统和方法
EP3007066A1 (en) Method for using shared device in apparatus capable of operating two operating systems
CN112987942B (zh) 键盘输入信息的方法、装置、系统、电子设备和存储介质
CN103942121A (zh) 一种数据还原系统及移动终端
CN110633074A (zh) 一种软件开发工具包的使用控制方法及装置
CN110795741A (zh) 对数据进行安全性处理的方法和装置
CN113794706B (zh) 数据的处理方法、装置、电子设备及可读存储介质
CN110545542A (zh) 基于非对称加密算法的主控密钥下载方法、装置和计算机设备
CN113886870A (zh) 数据处理方法、装置、设备和存储介质
CN117786726A (zh) 一种源码文件处理方法、装置、电子设备和存储介质
CN116166298B (zh) 一种固件升级方法、装置、设备及存储介质
CN115390883B (zh) 一种车辆安全启动信息更新方法、装置、设备及存储介质
CN113992345B (zh) 网页敏感数据加解密方法、装置、电子设备及存储介质
CN113609156B (zh) 数据的查询与写入方法、装置、电子设备及可读存储介质
CN107315970B (zh) 一种敏感数据的交互方法及装置
CN115333851A (zh) 自动驾驶数据的传输方法、装置和电子设备
CN111104363B (zh) 一种fpga云平台使用方法、装置、设备、介质
CN112612426A (zh) 删除数据的方法、装置、电子设备、及存储介质
CN113923167A (zh) 联邦学习中数据传输优化方法
CN115033315A (zh) 一种页面流程的控制方法、装置、电子设备和存储介质
CN116318727B (zh) 一种ecu访问方法、装置、设备及存储介质
CN114222005B (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
GR01 Patent grant
GR01 Patent grant