CN111831308A - 快充设备的固件更新方法、程序、快充设备及存储介质 - Google Patents
快充设备的固件更新方法、程序、快充设备及存储介质 Download PDFInfo
- Publication number
- CN111831308A CN111831308A CN202010296159.8A CN202010296159A CN111831308A CN 111831308 A CN111831308 A CN 111831308A CN 202010296159 A CN202010296159 A CN 202010296159A CN 111831308 A CN111831308 A CN 111831308A
- Authority
- CN
- China
- Prior art keywords
- firmware
- quick charging
- charging equipment
- firmware updating
- code
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
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
本发明提供了快充设备的固件更新方法,包括:当快充设备或其固件上电运行时,执行与所述快充设备的固件相匹配的初始化进程;检测针对所述快充设备的固件更新信号,在检测到所述固件更新信号时输出是否进行固件更新的问询提示信息;响应于固件更新指令,启动针对所述快充设备的固件更新流程;接收并存储待更新的固件更新程序;对所述固件更新程序进行合法性校验与检查处理;当所述固件更新程序通过合法性与有效性检测时,执行所述固件更新程序的写入与更新处理。本发明还提供固件更新程序、快充设备及存储介质。本发明能够实现保证快充设备的固件的及时更新,防止恶意固件程序对快充设备的影响,保证用户的快充设备的安全使用。
Description
技术领域
本发明涉及快速充电技术,尤其涉及快充设备的固件更新方法、程序、快 充设备处理器、快充设备及存储介质。
背景技术
随着快充技术的不断发展,快速充电功能也越来越多的应用于各类电子设 备中(简称快充设备)。但是,相关技术中,现有快充设备固件更新存在设计缺 陷,可能会导致快充设备的安全问题。例如:这些现有的固件更新方案均不能保 证恶意攻击者通过刷入其修改过的固件程序,并通过恶意修改过的固件程序导 致充电设备的异常工作,对被充电设备造成永久的电气损害。
由于这些固件更新的实现方案均存在安全隐患,会对使用快速充电协议的 设备造成安全威胁,因此需要提出一种新的固件更新方法用于解决前序的安全 问题,从而使得被刷入的固件不可被仿冒和修改,解决固件软件安全引起的硬 件损坏缺陷。
发明内容
有鉴于此,本发明实施例提供一种快充设备的固件更新方法、程序、快充 设备处理器、快充设备及存储介质,能够实现在快充设备的固件处理过程中, 对固件更新程序进行合法性校验与检查处理,并对对固件的快速充电功能进行 支持,扩大快充设备的固件的快速充电功能的安全使用范围,保证快充设备的 固件的及时更新,防止恶意固件程序对快充设备的影响,保证用户的快充设备 的安全使用。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种快充设备的固件更新方法,包括:
当快充设备或其固件上电运行时,执行与所述快充设备的固件相匹配的初 始化进程;
检测针对所述快充设备的固件更新信号,在检测到所述固件更新信号时输 出是否进行固件更新的问询提示信息;
响应于固件更新指令,启动针对所述快充设备的固件更新流程;
接收并存储待更新的固件更新程序;
对所述固件更新程序进行合法性校验与检查处理;
当所述固件更新程序通过合法性与有效性检测时,执行所述固件更新程序 的写入与更新处理。
上述方案中,所述方法还包括:
将所述快充设备的标识、所述引导加载程序代码、固件更新信息、快充协 议信息发送至区块链网络,以使
所述区块链网络的节点将所述快充设备的标识、所述引导加载程序代码、 固件更新信息、快充协议信息填充至新区块,且当对所述新区块共识一致时, 将所述新区块追加至区块链的尾部。
上述方案中,所述方法还包括:
接收所述区块链网络中的其他节点的数据同步请求;
响应于所述数据同步请求,对所述其他节点的权限进行验证;
当所述其他节点的权限通过验证时,控制当前节点与所述其他节点之间进 行数据同步,以实现所述其他节点获取所述快充设备的标识、所述引导加载程 序代码、固件更新信息、快充协议信息。
上述方案中,所述方法还包括:
响应于查询请求,解析所述查询请求以获取对应的用户标识;
根据所述用户标识,获取区块链网络中的目标区块内的权限信息;
对所述权限信息与所述用户标识的匹配性进行校验;
当所述权限信息与所述用户标识相匹配时,在所述区块链网络中获取相应 的所述快充设备的标识、所述引导加载程序代码、固件更新信息、快充协议信 息;
响应于所述查询请求,将所获取的相应的所述快充设备的标识、所述引导 加载程序代码、固件更新信息、快充协议信息向相应的客户端进行推送,以实 现所述客户端获取所述区块链网络中所保存的相应的所述快充设备的标识、所 述引导加载程序代码、固件更新信息、快充协议信息。
本发明实施例还提供了一种快充设备的固件更新程序,包括:
硬件初始化模块,用于当快充设备或其固件上电运行时,执行与所述快充 设备的固件相匹配的初始化进程;
固件更新信号检测模块,用于检测针对所述快充设备的固件更新信号,在 检测到所述固件更新信号时输出是否进行固件更新的问询提示信息;
固件更新触发模块,用于响应于固件更新指令,启动针对所述快充设备的 固件更新流程;
固件更新存储模块,用于接收并存储待更新的固件更新程序;
合法性校验与检查模块,用于对所述固件更新程序进行合法性校验与检查 处理;
程序写入与更新模块,用于当所述固件更新程序通过合法性与有效性检测 时,执行所述固件更新程序的写入与更新处理。
上述方案中,所述合法性校验与检查模块,用于采用公私钥数据签名算法 对所述固件更新程序进行签名和校验
上述方案中,述程序写入与更新模块,用于当所述固件更新程序未通过所 述合法性与有效性检测时,清除所述固件更新程序或固件更新状态,并重启所 述快充设备,执行所述快充设备的原始固件的快充功能。
上述方案中,所述装置还包括:
快充功能模块,用于在完成所述检测针对所述快充设备的固件更新信号后, 并且未检测到所述固件更新信号时,执行所述快充设备的快速充电功能。
上述方案中,
所述快充功能模块,用于从所述快充设备的芯片或存储介质中读取快速充 电功能代码;其中,所述芯片或存储介质中预先烧录或存储有执行快速充电功 能的引导加载程序代码;
对所述快速充电功能代码进行可信校验处理;
在所述快速充电功能代码通过可信校验处理后,执行所述快充设备的快速 充电功能。
上述方案中,
所述快充功能模块,用于当所述快充设备为适配器时,根据所述适配器的 软件存储路径,向对应的存储设备发送下载请求,所述下载请求包含所述快速 充电功能的适配器的软件标识;
接收所述存储设备根据所述适配器的软件标识下发与所述适配器相适配的 快速充电功能代码。
上述方案中,
所述合法性校验与检查模块,用于通过所述引导加载程序代码所携带的签 名认证算法对所述快充设备的快速充电功能代码进行检测;
当所述快速充电功能代码未通过可信校验处理时,停止继续执行所述述快 充设备的快速充电功能,并通过所述快充设备进行示警。
上述方案中,所述装置还包括:
软件编辑模块,用于编写带有签名验证功能的引导加载程序代码;
编写用于实现对所述快充设备执行快充功能的快充设备功能代码;
将编写好的带有签名验证功能的引导加载程序代码以及快充设备功能代码 进行开发板刷写处理,得到经刷写处理后的引导加载程序开发板;
对所述经刷写处理后的引导加载程序开发板的签名验证功能以及快充设备 功能进行测试处理;
将经过测试且功能正常的所述带有签名验证功能的引导加载程序代码烧写 到芯片中;
对所述带有签名验证功能的引导加载程序代码进行存储区域锁定处理;
将所述经过测试且功能正常的所述快充设备功能代码烧写到芯片中。
上述方案中,
所述软件编辑模块,用于确定所述带有签名验证功能的引导加载程序代码 在所述快充设备的固件的存储介质中的存储位置;
对所述存储位置的存储介质参数进行适配,以调整所述存储位置的存储介 质的可读性;
通过编程器对述存储位置的存储介质进行存储区域锁定处理,以实现所述 存储区域的只读性。
上述方案中,
所述软件编辑模块,用于根据所述快充设备的固件的快充功能代码的版本 信息,对所述引导加载程序代码所携带的签名认证算法的种类进行调整;或者,
根据所述快充设备的使用环境,对所述引导加载程序代码所携带的签名认 证算法的种类进行调整。
本发明实施例还提供了一种快充设备处理器,其连接于一存储器,该存储 器上存储有多个可执行指令,当该多个可执行指令执行时使得该处理器执行前 序的快充设备的固件更新方法。
本发明实施例还提供了一种快充设备,所述快充设备包括:
存储器,用于存储可执行指令;其中,所述可执行指令包括快充设备引导 加载程序;
处理器,用于运行所述存储器存储的可执行指令时,实现前序的快充设备 的固件更新方法。
本发明实施例还提供了一种计算机可读存储介质,存储有可执行指令,其 特征在于,所述可执行指令被处理器执行时前序的快充设备的固件更新方法, 或者,前序的快充设备的固件更新方法。
本发明实施例具有以下有益效果:
本发明实施例通过当快充设备或其固件上电运行时,执行与所述快充设备 的固件相匹配的初始化进程;在检测到所述固件更新信号时输出是否进行固件 更新的问询提示信息;响应于固件更新指令,启动针对所述快充设备的固件更 新流程;接收并存储待更新的固件更新程序;当所述固件更新程序通过合法性 与有效性检测时,执行所述固件更新程序的写入与更新处理。由此,能够实现 在快充设备引导加载程序的制备过程中,充分利用引导加载程序代码,对电子 设备的快速充电功能进行支持,扩大快充设备的固件的快速充电功能的使用范 围,还能保证快充设备的固件的及时更新,防止恶意固件程序对快充设备的影 响,保证用户的快充设备的安全使用。
附图说明
图1为本发明实施例提供的快充设备的固件更新方法的使用场景示意图;
图2为本发明实施例提供的快充设备的组成结构示意图;
图3为本发明实施例提供的快充设备的固件更新方法一个可选的流程示意 图;
图4为本发明实施例提供的快充设备的固件更新方法一个可选的流程示意 图;
图5为本发明实施例提供的快充电动汽车的固件更新方法一个可选的流程 示意图;
图6是本发明实施例提供的快充设备制备流程处理装置的架构示意图;
图7是本发明实施例提供的区块链网络中区块链的结构示意图;
图8是本发明实施例提供的区块链网络的功能架构示意图;
图9为本发明实施例提供的快充设备的固件更新方法一个可选的流程示意 图;
图10为本发明实施例提供的快充设备的固件更新方法一个可选的流程示意 图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发 明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普 通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本 发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集, 但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集, 并且可以在不冲突的情况下相互结合。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词 和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)快充技术:即快速充电技术的简称,指基于USB Type-C、接口、Lightning 接口等的充电技术,主要用来实现对用电设备的快速充电和/或供电。此类技术 多用在笔记本、手机等使用锂电池供电的设备中。可在较短的时间内完成充电 或提供大功率的供电。
2)快速充电协议:是快速充电技术的核心,其规定了供电设备和受电设备 之间协商电力供应的一套协议。
3)固件:是运行在芯片内部的代码,用于实现快速充电协议的二进制代码。
4)USB:通用串行总线,是目前最常用的外部设备接口。
5)Type-C:一种USB接口类型,具有更多的引脚,并可以承载更多的功能, 快速充电协议通常基于该接口进行通讯。
6)PD协议:即Power Delivery协议的简称,是一种快速充电协议,由USB 组织设计,开发和公布,其支持高达100W的直流供电能力,并且支持传输数据。
7)VDM PD:协议中用于传输数据的消息,分为SVDM和UVDM两种类 型。
8)公钥数字签名技术:是指使用公开密钥密码学方法对数据进行加密的技 术,使用私钥对的数据进行加密,可以使用公钥解密,该数据可被校验但不能 篡改。这种签名技术在数学上已经被证明是安全的。
9)引导加载程序代码:又称引导加载程序(Bootloader)、引导模式、启动 加载等,指一种在芯片启动时运行的代码,通常用于初始化硬件环境,加载固 件运行的代码,通常它不需要被更新。
10)响应于:用于表示所执行的操作所依赖的条件或者状态,当满足所依 赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定 的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的 限制。
11)交易(Transaction):等同于计算机术语“事务”,交易包括了需要提交 到区块链网络执行的操作,并非单指商业语境中的交易,鉴于在区块链技术中 约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
例如,部署(Deploy)交易用于向区块链网络中的节点安装指定的智能合约 并准备好被调用;调用(Invoke)交易用于通过调用智能合约在区块链中追加交 易的记录,并对区块链的状态数据库进行操作,包括更新操作(包括增加、删 除和修改状态数据库中的键值对)和查询操作(即查询状态数据库中的键值对)。
12)区块链(Block chain):是由区块(Block)形成的加密的、链式的交易 的存储结构。
例如,每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含 前一个区块中所有交易的哈希值,从而基于哈希值实现区块中交易的防篡改和 防伪造;新产生的交易被填充到区块并经过区块链网络中节点的共识后,会被 追加到区块链的尾部从而形成链式的增长。
13)区块链网络(Block chain Network):通过共识的方式将新区块纳入区 块链的一系列的节点的集合。
14)账本(Ledger):是区块链(也称为账本数据)和与区块链同步的状态 数据库的统称。
其中,区块链是以文件***中的文件的形式来记录交易;状态数据库是以 不同类型的键(Key)值(Value)对的形式来记录区块链中的交易,用于支持对 区块链中交易的快速查询。
15)智能合约(Smart Contracts):也称为链码(Chain code)或应用代码, 部署在区块链网络的节点中的程序,节点执行接收的交易中所调用的智能合约, 来对账本数据库的键值对数据进行更新或查询的操作。
16)共识(Consensus):是区块链网络中的一个过程,用于在涉及的多个节 点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部, 实现共识的机制包括工作量证明(Po W,Proof of Work)、权益证明(PoS,P roof of Stake)、股份授权证明(DPo S,Delegated Proof-of-Stake)、消逝时间 量证明(Po ET,Proof of Elapsed Time)等。
图1为本发明实施例提供的快充设备的固件更新方法的使用场景示意图, 参见图1,终端(包括快充设备10-1和具有快充功能的适配器10-2)上设置有 能够执行快充功能的不同固件,其中,快充设备10-1可以过网络300从相应的 服务器200中获取不同的固件更新程序,具有快充功能的适配器10-2可以通过 更换不同的存储介质实现获取不同的固件更新程序,其中,网络300连接服务 器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链 路实现数据传输,具体来说,作为快充设备的终端10-1和具有快充功能的适配 器10-2可以包括不同的固件,能够支持不同版本的快速充电协议,以实现快速充电功能,例如终端10-1中的电子设备的固件的目标功能可以为快速充电,那 么固件的目标功能也就决定了10-1中的电子设备(例如手机或笔记本电脑)是 带有快速充电功能的电子设备,能够支持50W的电流充电;同样的,10-2中 的电子设备还可以是带有快速充电功能的电子设备(例如执行快充功能的电能 源汽车),能够支持380W的电流充电。其中不同的电子设备固件也就决定了对 应的引导加载代码不相同。具体来说,快充设备的固件更新方法包括:当快充 设备或其固件上电运行时,执行与所述快充设备的固件相匹配的初始化进程; 检测针对所述快充设备的固件更新信号,在检测到所述固件更新信号时输出是 否进行固件更新的问询提示信息;响应于固件更新指令,启动针对所述快充设 备的固件更新流程;接收并存储待更新的固件更新程序;对所述固件更新程序 进行合法性校验与检查处理;当所述固件更新程序通过合法性与有效性检测时, 执行所述固件更新程序的写入与更新处理。
下面对本发明实施例的快充设备的结构做详细说明,快充设备可以各种形 式来实施,图2为本发明实施例提供的快充设备的组成结构示意图,可以理解, 图2仅仅示出了快充设备的示例性结构而非全部结构,根据需要可以实施图2 示出的部分结构或全部结构。
本发明实施例提供的快充设备包括:至少一个处理器201、存储器202、用 户接口203和至少一个充电接口204。快充设备中的各个组件通过总线***205 耦合在一起。可以理解,总线***205用于实现这些组件之间的连接通信。总 线***205除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。 但是为了清楚说明起见,在图2中将各种总线都标为总线***205。
其中,用户接口203可以包括显示器、键盘、鼠标、轨迹球、点击轮、按 键、按钮、触感板或者触摸屏等。
可以理解,存储器202可以是易失性存储器或非易失性存储器,也可包括 易失性和非易失性存储器两者。本发明实施例中的存储器202能够存储数据以 支持终端(如10-1)的操作。这些数据的示例包括:用于在终端(如10-1)上 操作的任何计算机程序,如操作***和应用程序。其中,操作***包含各种系 统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理 基于硬件的任务。应用程序可以包含各种应用程序。
在一些实施例中,本发明实施例提供的快充设备的固件处理装置可以采用 软硬件结合的方式实现,作为示例,本发明实施例提供的快充设备可以是采用 硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的快充设备 的固件更新方法。例如,硬件译码处理器形式的处理器可以采用一个或多个应 用专用集成电路(ASIC,ApplicationSpecific Integrated Circuit)、DSP、可编程 逻辑器件(PLD,Programmable LogicDevice)、复杂可编程逻辑器件(CPLD, Complex Programmable Logic Device)、现场可编程门阵列(FPGA, Field-Programmable Gate Array)或其他电子元件。
作为本发明实施例提供的快充设备采用软硬件结合实施的示例,本发明实 施例所提供的快充设备可以直接体现为由处理器201执行的软件模块组合,软 件模块可以位于存储介质中,存储介质位于存储器202,处理器201读取存储器 202中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器201以 及连接到总线205的其他组件)完成本发明实施例提供的快充设备的固件更新 方法。
作为示例,处理器201可以是一种集成电路芯片,具有信号的处理能力, 例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他 可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用 处理器可以是微处理器或者任何常规的处理器等。
作为本发明实施例提供的快充设备采用硬件实施的示例,本发明实施例所 提供的装置可以直接采用硬件译码处理器形式的处理器201来执行完成,例如, 被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、 DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器 件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA, Field-Programmable GateArray)或其他电子元件执行实现本发明实施例提供的快 充设备的固件更新方法。
本发明实施例中的存储器202用于存储各种类型的数据以支持快充设备的 操作。这些数据的示例包括:用于在快充设备上操作的任何可执行指令,如可 执行指令,实现本发明实施例的从快充设备的固件更新方法的程序可以包含在 可执行指令中。
在另一些实施例中,本发明实施例提供的快充设备可以采用软件方式实现, 图2示出了存储在存储器202中的快充设备,其可以是程序和插件等形式的软 件,并包括一系列的模块,作为存储器202中存储的程序的示例,可以包括快 充设备的固件更新程序,快充设备的固件更新程序中包括以下的软件模块:
硬件初始化模块2081,用于当快充设备或其固件上电运行时,执行与所述 快充设备的固件相匹配的初始化进程;
固件更新信号检测模块2082,用于检测针对所述快充设备的固件更新信号, 在检测到所述固件更新信号时输出是否进行固件更新的问询提示信息;
固件更新触发模块2083,用于响应于固件更新指令,启动针对所述快充设 备的固件更新流程;
固件更新存储模块2084,用于接收并存储待更新的固件更新程序;
合法性校验与检查模块2085,用于对所述固件更新程序进行合法性校验与 检查处理;
程序写入与更新模块2086,用于当所述固件更新程序通过合法性与有效性 检测时,执行所述固件更新程序的写入与更新处理。
结合图2继续说明本发明实施例提供的快充设备的固件更新方法,参见图3, 图3为本发明实施例提供的快充设备的固件更新方法一个可选的流程示意图, 可以理解地,图3所示的步骤可以由快充设备执行。下面针对图3示出的步骤 进行说明。
步骤301:当快充设备或其固件上电运行时,执行与所述快充设备的固件相 匹配的初始化进程。
其中,当用户使用快充设备时,由于固件版本可能已经发生更新,因此快 充设备上电运行时,可以执行与所述快充设备的固件相匹配的初始化进程;同 样的,在工厂,快充设备的电路板生产出来以后,进入工厂测试流程,通常会 在第一个工站相应的固件,这个固件主要的目的是为了工厂测试,验证和校准。 测试和验证电路板以及组装完成后的电子设备整机的各项电气性能,校准射频 参数和各种传感器的参数,因此,当固件上电运行时,也可以执行与所述快充 设备的固件相匹配的初始化进程。
步骤302:检测针对所述快充设备的固件更新信号,在检测到所述固件更新 信号时输出是否进行固件更新的问询提示信息。
步骤303:响应于固件更新指令,启动针对所述快充设备的固件更新流程。
步骤304:接收并存储待更新的固件更新程序。
具体来说,接收并存储待更新的固件更新程序,可以根据快充设备所处的 使用环境的不同进行不同的调整,例如,可以通过空中下载技术OTA(Over-the -Air Technology)的方式利用专用的无线网络和从存放固件的服务器中获取并 更新固件;也可以在生产过程中,通过通过在电子设备外壳上设置隐藏触点, 实现更新快充设备的固件。
步骤305:对所述固件更新程序进行合法性校验与检查处理。
在本发明的一些实施例中,对固件更新程序进行合法性校验与检查处理, 可以通过以下方式实现:
采用公私钥数据签名算法对所述固件更新程序进行签名和校验。其中,签 名算法可以选择非对称加密RSA算法(RSA algorithm)和ECDSA两种算法中 的任意一种。如选择非对称加密RSA算法(RSA algorithm),可以根据快充设 备的使用环境优先1024bit及以上的非对称加密算法。
步骤306:当所述固件更新程序通过合法性与有效性检测时,执行所述固件 更新程序的写入与更新处理。
其中,在快充设备的存储器(memory)中设置一个备份分区,分区的大小可 以根据未来更新的固件大小(预留一定的空间,防止后续OTA时,备份分区的大 小不够,无法装下用新的固件),把快充设备出厂的用旧的版本的固件打包到初 始固件中,在执行所述固件更新程序的写入与更新处理时,把更新的固件刷到 存储器(memory)的备份分区。进一步地,每一个版本的固件可以配置一个版本 号,当后续有新版本的固件需要执行所述固件更新程序的写入与更新处理时, 新的用户固件的版本号需要比当前的用户固件的版本号新,以保证快充设备的 固件工作效率。
在本发明的一些实施例中,所述方法还包括:
当所述固件更新程序未通过所述合法性与有效性检测时,清除所述固件更 新程序或固件更新状态,并重启所述快充设备,执行所述快充设备的原始固件 的快充功能。其中,当执行所述快充设备的快速充电功能时,可以通过所述快 充设备的充电接口以第一电流对所述快充设备进行充电。
其中,所述第一电流与所述快充设备所支持的快充协议相匹配,例如,快 充协议版本可以分别支持50W和100W的快速充电,以适配不同功率的快充设 备,或者,通过所述快充设备的充电接口以第二电流对所述快充设备进行充电, 其中,所述第二电流与所述快充设备的类型相匹配,例如电动汽车的固件支持 作为快充设备的电动汽车以380W的功率进行快速充电。
在本发明的一些实施例中,所述方法还包括:
当所述快充设备的固件支持快速充电功能时,所述引导加载程序代码为携 带有签名认证算法功能的引导加载程序代码,以实现所述快速充电功能被触发 前,对所述快充设备的固件安全性进行检测。其中,结合前序图1所示的使用 环境,作为快充设备可以包括不同的固件,固件所支持的快速充电协议也可以 不相同,例如的快充设备的固件的快速充电功能可以为功率为380W的快速充电 协议,也可以仅支持50W的快速充电协议。其中不同的快充设备固件也就决定 了对应的引导加载程序代码不相同。通过引导加载程序代码对快充设备的固件 安全性进行检测,则能够有效保证快充设备的安全运行。
结合图2继续说明本发明实施例提供的快充设备的固件更新方法,参见图4, 图4为本发明实施例提供的快充设备的固件更新方法一个可选的流程示意图, 可以理解地,图4所示的步骤可以由快充设备执行,以实现制备本发明所提供 的快充设备。下面针对图4示出的步骤进行说明。
步骤401:编写带有签名验证功能的引导加载程序代码。
其中,引导加载程序是代码,允许更新用户应用程序代码。可以使用替代 下载通道(例如USB记忆棒或网络端口)获取新代码。在引导ROM执行之后, 执行引导加载程序并在需要时执行更新,然后执行最终用户应用程序。
具体来说,引导加载程序由许多部分组成,包括启动画面。要开始启动, 引导加载程序可能会直接将一个新映像刷写到相应的分区中,也可能会使用 recovery开始重新刷写过程,该过程与OTA的操作过程一致。一些设备制造商 会创建多部分引导加载程序,然后将它们组合到一个bootloader.img文件中。 在刷写时,引导加载程序会提取各个引导加载程序并刷写所有这些引导加载程 序。同时,引导加载程序会在将执行工作移到内核之前先验证boot分区和 recovery分区的完整性,并显示启动状态部分中指定的警告。
步骤402:编写用于实现对所述快充设备执行快充功能的快充设备功能代 码。
其中,执行快充功能的快充设备功能代码可以实现通过所述快充设备的充 电接口以第一电流对所述快充设备进行充电,其中,所述第一电流与所述快充 设备所支持的快充协议(例如手机快充协议)相匹配;或者,
通过所述快充设备的充电接口以第二电流对所述快充设备进行充电,其中, 所述第二电流与所述快充设备的类型(例如电动汽车)相匹配。
步骤403:将编写好的带有签名验证功能的引导加载程序代码以及快充设备 功能代码进行开发板刷写处理,得到经刷写处理后的引导加载程序开发板。
步骤404:对所述经刷写处理后的引导加载程序开发板的签名验证功能以及 快充设备功能进行测试处理。
步骤405:将所述经过测试且功能正常的所述带有签名验证功能的引导加载 程序代码烧写到芯片中。
步骤406:对所述带有签名验证功能的引导加载程序代码进行存储区域锁定 处理。
在本发明的一些实施例中对所述带有签名验证功能的引导加载程序代码进 行存储区域锁定处理,可以通过以下方式实现:
确定所述带有签名验证功能的引导加载程序代码在所述快充设备的固件的 存储介质中的存储位置;对所述存储位置的存储介质参数进行适配,以调整所 述存储位置的存储介质的可读性;通过编程器对述存储位置的存储介质进行存 储区域锁定处理,以实现所述存储区域的只读性。其中,其中,通过对存储位 置的存储介质参数进行适配,调整所述存储位置的存储介质的可读性,可以保 证将引导加载程序代码所在的存储区域设置为“不可再次写入”,并同时开启不 可将代码读取到外部的保护(该保护在不同的芯片中的保护形式有所不同,如 STM32的Read Out Protection)。该步骤可以确定代码不会被制造商以外的人员 更新和覆盖。
步骤407:将所述经过测试且功能正常的所述快充设备功能代码烧写到芯片 中。
在本发明的一些实施例中,所述方法还包括:
根据所述快充设备的固件的快充功能代码的版本信息,对所述引导加载程 序代码所携带的签名认证算法的种类进行调整;或者,根据所述快充设备的使 用环境,对所述引导加载程序代码所携带的签名认证算法的种类进行调整。由 此,可以有效地扩大引导加载程序代码所携带的签名认证算法的多样性,并与 快充设备的使用环境相适配,避免引导加载程序代码所携带的签名认证算法与 快充设备的固件的快充功能代码的版本信息不匹配影响用户的正常使用。
在本发明的一些实施例中,所述方法还包括:
根据所述快充设备的软件存储路径,向对应的存储设备发送下载请求,所 述下载请求包含所述快充设备的软件标识;接收所述存储设备根据所述快充设 备的软件标识下发的所述快充设备的软件。具体来说,可以基于所述适配器的 种类,建立快充设备与所述存储设备之间的不同的传输通道;通过所述不同传 输通道的多个下行端口分别收取所述存储设备根据所述快充设备的软件标识下 发的数据。其中,当生产线中大规模生产快速充电功能的快充设备时,可以选 择一个传输通道并使用不同的传输协议(例如FTP协议),从传输设备下载根据 快充设备的软件标识而下发的对应快充设备的固件、配置数据,以及通过第二 传输通道向存储设备发送具有快充设备的物理地址和软件标识的下载请求,如此,将快充设备的软件数据和物理地址、软件标识等分为两个传输通道来传输, 从而可以提高效率;和/或,采用网络交换设备,在建立的多个传输通道的基础 上,利用网络交换设备的多个下行端口收取存储设备根据快充设备的软件标识 下发的软件数据。
继续结合图2,说明本发明实施例提供的快充设备的固件更新方法,参见图 5,图5为本发明实施例提供的快充电动汽车的固件更新方法一个可选的流程示 意图,可以理解地,图5所示的步骤可以由运行快充设备的固件更新程序的电 动汽车执行,下面针对图5示出的步骤进行说明。
步骤501:所述快充电动汽车的固件上电运行,执行初始化进程。
其中,快充电动汽车的固件位于带有快充功能的电动汽车的行车电脑中, 以对电动汽车的充电和耗电过程进行监控,同时还能够获取区块链网络中的固 件版本信息进行固件更新。
步骤502:响应于所述初始化进程,基于固件更新信号触发所述固件所携带 的引导加载程序代码。
步骤503:基于所述引导加载程序代码,对所述快充电动汽车的固件安全性 进行检测,判断是否通过检测,如果是执行步骤504,否则执行步骤505。
步骤504:执行与所述快充电动汽车相匹配的功率为380W快速充电功能。
步骤505:拒绝执行快速充电功能,并触发警报。
在本发明的一些实施例中,基于所述引导加载程序代码,对所述快充设备 的固件安全性进行检测,包括:
当所述快充设备的固件需要更新时,通过所述引导加载程序代码所携带的 签名认证算法对所述固件的更新信息进行验证;基于所述固件的更新信息的验 证结果,对所述快充设备的固件进行更新处理;或者,删除所述快充设备的固 件更新信息,并对所述快充设备的固件进行重启。其中,如果快充设备的固件 需要更新的内容非正规渠道获取的,或者携带有危险信息时,由于会对快充设 备的固件的快速充电功能产生不良影响,通过所述引导加载程序代码所携带的 签名认证算法对所述固件的更新信息进行验证,能够有效保证快充设备的安全 运行。
在本发明的一些实施例中,所述方法还包括:
当所述引导加载程序代码未检测出所述快充设备的固件更新信息时,通过 所述引导加载程序代码所携带的签名认证算法对所述快充设备的固件的实时固 件代码进行检测;根据所述快充设备的固件的实时固件代码的检查结果,执行 所述快充设备的固件的快速充电功能;或者,停止执行所述述快充设备的固件 的快速充电功能,并通过所述快充设备进行示警。
其中,本发明实施例可结合云技术或区块链网络技术实现,云技术(Cloudtechnology)是指在广域网或局域网内将硬件、软件及网络等系列资源统一起来, 实现数据的计算、储存、处理和共享的一种托管技术,也可理解为基于云计算 商业模式应用的网络技术、信息技术、整合技术、管理平台技术及应用技术等 的总称。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、 图片类网站和更多的门户网站,因此云技术需要以云计算作为支撑。
需要说明的是,云计算是一种计算模式,它将计算任务分布在大量计算机 构成的资源池上,使各种应用***能够根据需要获取计算力、存储空间和信息 服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限 扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算 的基础能力提供商,会建立云计算资源池平台,简称云平台,一般称为基础设 施即服务(IaaS,Infrastructure as a Service),在资源池中部署多种类型的虚拟资源, 供外部客户选择使用。云计算资源池中主要包括:计算设备(可为虚拟化机器, 包含操作***)、存储设备和网络设备。
参见图6,图6是本发明实施例提供的快充设备制备流程处理装置的架构示 意图,包括区块链网络200(示例性示出了共识节点210-1至共识节点210-3)、 认证中心300、业务主体400和业务主体500,下面分别进行说明。
区块链网络200的类型是灵活多样的,例如可以为公有链、私有链或联盟 链中的任意一种。以公有链为例,任何业务主体的快充设备例如用户终端和服 务器,都可以在不需要授权的情况下接入区块链网络200;以联盟链为例,业务 主体在获得授权后其下辖的快充设备(例如终端/服务器)可以接入区块链网络 200,此时,成为区块链网络200中的客户端节点。
在一些实施例中,客户端节点可以只作为区块链网络200的观察者,即提 供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)功能, 对于区块链网络200的共识节点210的功能,例如排序功能、共识服务和账本 功能等,客户端节点可以缺省或者有选择性(例如,取决于业务主体的具体业 务需求)地实施。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移 到区块链网络200中,通过区块链网络200实现数据和业务处理过程的可信和 可追溯。
区块链网络200中的共识节点接收来自不同业务主体(例如图1中示出的 业务主体400和业务主体500)的客户端节点(例如,图1中示出的归属于业务 主体400的客户端节点410、以及归属于快充设备的业务主体500的客户端节点510)提交的交易,执行交易以更新账本或者查询账本,执行交易的各种中间结 果或最终结果可以返回业务主体的客户端节点中显示。
例如,客户端节点410/510可以订阅区块链网络200中感兴趣的事件,例如 区块链网络200中特定的组织/通道中发生的交易,由共识节点210推送相应的 交易通知到客户端节点410/510,从而触发客户端节点410/510中相应的业务逻 辑。
下面以多个业务主体接入区块链网络以实现所述快充设备的制备流程以及 所述快充设备的生产方案的管理为例,说明区块链网络的示例性应用。
参见图6,管理环节涉及的多个业务主体,如业务主体400可以是基于人工 智能的快充设备制备流程处理装置,业务主体500可以是带有快充设备固件更 新功能的显示***,从认证中心300进行登记注册获得各自的数字证书,数字 证书中包括业务主体的公钥、以及认证中心300对业务主体的公钥和身份信息 签署的数字签名,用来与业务主体针对交易的数字签名一起附加到交易中,并 被发送到区块链网络,以供区块链网络从交易中取出数字证书和签名,验证消 息的可靠性(即是否未经篡改)和发送消息的业务主体的身份信息,区块链网 络会根据身份进行验证,例如是否具有发起交易的权限。业务主体下辖的快充 设备(例如终端或者服务器)运行的客户端都可以向区块链网络200请求接入 而成为客户端节点。
业务主体400的客户端节点410用于当快充设备或其固件上电运行时,执 行与所述快充设备的固件相匹配的初始化进程;检测针对所述快充设备的固件 更新信号,在检测到所述固件更新信号时输出是否进行固件更新的问询提示信 息;响应于固件更新指令,启动针对所述快充设备的固件更新流程;接收并存 储待更新的固件更新程序;对所述固件更新程序进行合法性校验与检查处理; 当所述固件更新程序通过合法性与有效性检测时,执行所述固件更新程序的写 入与更新处理,将所述快充设备的标识、所述引导加载程序代码、固件更新信 息、快充协议信息发送至区块链网络200。
其中,将所述快充设备的标识、所述引导加载程序代码、固件更新信息、 快充协议信息发送至区块链网络200,可以预先在客户端节点410设置业务逻辑, 当形成相应的所述快充设备的制备流程以及所述快充设备的生产方案时,客户 端节点410将所述快充设备的标识、所述引导加载程序代码、固件更新信息、 快充协议信息自动发送至区块链网络200,也可以由业务主体400的业务人员在 客户端节点410中登录,手动打包将所述快充设备的标识、所述引导加载程序 代码、固件更新信息、快充协议信息,并将其发送至区块链网络200。在发送时, 客户端节点410根据将所述快充设备的标识、所述引导加载程序代码、固件更 新信息、快充协议信息生成对应更新操作的交易,在交易中指定了实现更新操 作需要调用的智能合约、以及向智能合约传递的参数,交易还携带了客户端节 点410的数字证书、签署的数字签名(例如,使用客户端节点410的数字证书 中的私钥,对交易的摘要进行加密得到),并将交易广播到区块链网络200中的 共识节点210。
区块链网络200中的共识节点210中接收到交易时,对交易携带的数字证 书和数字签名进行验证,验证成功后,根据交易中携带的业务主体400的身份, 确认业务主体400是否是具有交易权限,数字签名和权限验证中的任何一个验 证判断都将导致交易失败。验证成功后签署节点210自己的数字签名(例如, 使用节点210-1的私钥对交易的摘要进行加密得到),并继续在区块链网络200 中广播。
区块链网络200中的共识节点210接收到验证成功的交易后,将交易填充 到新的区块中,并进行广播。区块链网络200中的共识节点210广播的新区块 时,会对新区块进行共识过程,如果共识成功,则将新区块追加到自身所存储 的区块链的尾部,并根据交易的结果更新状态数据库,执行新区块中的交易: 对于提交更新将所述快充设备的标识、所述引导加载程序代码、固件更新信息、 快充协议信息的交易,在状态数据库中添加包括将所述快充设备的标识、所述 引导加载程序代码、固件更新信息、快充协议信息的键值对。
业务主体500的业务人员在客户端节点510中登录,输入所述快充设备的 制备流程以及所述快充设备的生产方案或者虚拟资源查询请求,客户端节点51 0根据所述快充设备的制备流程以及所述快充设备的生产方案或者虚拟资源查 询请求生成对应更新操作/查询操作的交易,在交易中指定了实现更新操作/查询 操作需要调用的智能合约、以及向智能合约传递的参数,交易还携带了客户端 节点510的数字证书、签署的数字签名(例如,使用客户端节点510的数字证 书中的私钥,对交易的摘要进行加密得到),并将交易广播到区块链网络200中 的共识节点210。
区块链网络200中的共识节点210中接收到交易,对交易进行验证、区块 填充及共识一致后,将填充的新区块追加到自身所存储的区块链的尾部,并根 据交易的结果更新状态数据库,执行新区块中的交易:对于提交的更新某一将 所述快充设备的标识、所述引导加载程序代码、固件更新信息、快充协议信息 的交易,根据人工识别结果更新状态数据库中该所述快充设备的制备流程以及 所述快充设备的生产方案对应的键值对;对于提交的查询某个所述快充设备的 制备流程以及所述快充设备的生产方案的交易,从状态数据库中查询所述快充 设备的制备流程以及所述快充设备的生产方案对应的键值对,并返回交易结果。
值得说明的是,在图6中示例性地示出了将所述快充设备的标识、所述引 导加载程序代码、固件更新信息、快充协议信息直接上链的过程,但在另一些 实施例中,对于所述快充设备的制备流程以及所述快充设备的生产方案的数据 量较大的情况,客户端节点410可将所述快充设备的制备流程以及所述快充设 备的生产方案的哈希以及相应的所述快充设备的制备流程以及所述快充设备的 生产方案的哈希成对上链,将原始的所述快充设备的制备流程以及所述快充设 备的生产方案以及相应的所述快充设备的制备流程以及所述快充设备的生产方 案存储于分布式文件***或数据库。客户端节点510从分布式文件***或数据 库获取到所述快充设备的制备流程以及所述快充设备的生产方案以及相应的所述快充设备的制备流程以及所述快充设备的生产方案后,可结合区块链网络20 0中对应的哈希进行校验,从而减少上链操作的工作量。
作为区块链的示例,参见图7,图7是本发明实施例提供的区块链网络200 中区块链的结构示意图,每个区块的头部既可以包括区块中所有交易的哈希值, 同时也包含前一个区块中所有交易的哈希值,新产生的交易的记录被填充到区 块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式 的增长,区块之间基于哈希值的链式结构保证了区块中交易的防篡改和防伪造。
下面说明本发明实施例提供的区块链网络的示例性的功能架构,参见图8, 图8是本发明实施例提供的区块链网络的功能架构示意图,包括应用层201、共 识层202、网络层203、数据层204和资源层205,下面分别进行说明。
资源层205封装了实现区块链网路200中的各个节点210的计算资源、存 储资源和通信资源。
数据层204封装了实现账本的各种数据结构,包括以文件***中的文件实 现的区块链,键值型的状态数据库和存在性证明(例如区块中交易的哈希树)。
网络层203封装了点对点(P2P,Point to Point)网络协议、数据传播机制 和数据验证机制、接入认证机制和业务主体身份管理的功能。
其中,P2P网络协议实现区块链网络200中节点210之间的通信,数据传播 机制保证了交易在区块链网络200中的传播,数据验证机制用于基于加密学方 法(例如数字证书、数字签名、公/私钥对)实现节点210之间传输数据的可靠 性;接入认证机制用于根据实际的业务场景对加入区块链网络200的业务主体 的身份进行认证,并在认证通过时赋予业务主体接入区块链网络200的权限; 业务主体身份管理用于存储允许接入区块链网络200的业务主体的身份、以及 权限(例如能够发起的交易的类型)。
共识层202封装了区块链网络200中的节点210对区块达成一致性的机制 (即共识机制)、交易管理和账本管理的功能。共识机制包括POS、POW和DP OS等共识算法,支持共识算法的可插拔。
交易管理用于验证节点210接收到的交易中携带的数字签名,验证业务主 体的身份信息,并根据身份信息判断确认其是否具有权限进行交易(从业务主 体身份管理读取相关信息);对于获得接入区块链网络200的授权的业务主体而 言,均拥有认证中心颁发的数字证书,业务主体利用自己的数字证书中的私钥 对提交的交易进行签名,从而声明自己的合法身份。
账本管理用于维护区块链和状态数据库。对于取得共识的区块,追加到区 块链的尾部;执行取得共识的区块中的交易,当交易包括更新操作时更新状态 数据库中的键值对,当交易包括查询操作时查询状态数据库中的键值对并向业 务主体的客户端节点返回查询结果。支持对状态数据库的多种维度的查询操作, 包括:根据区块向量号(例如交易的哈希值)查询区块;根据区块哈希值查询 区块;根据交易向量号查询区块;根据交易向量号查询交易;根据业务主体的 账号(向量号)查询业务主体的账号数据;根据通道名称查询通道中的区块链。
应用层201封装了区块链网络能够实现的各种业务,包括交易的溯源、存 证和验证等。由此,当快充设备的生产商更换不同的生产线时,通过从区块链 网络中获取快充设备的标识、所述引导加载程序代码、固件更新信息、快充协 议信息,可以迅速的进入生产,提升快充设备的生产效率。
下面继续结合图1以电子设备的快速充电功能应用环境为例,对本发明所 提供的快充设备的固件更新方法进行说明,其中,在介绍本发明所提供的快充 设备制备流程处理方法之前,首先对相关技术中的快速充电设备进行介绍,其 中,快速充电是近期发展起来的新技术,目前在移动设备充电领域非常广泛, 与之对应的就是各种纷繁复杂的快充协议。快充协议是用来实现充电端和受电 端进行通讯,并完成电力协商的而设计的。通过使用快充协议,充电端可提供 一组供受电端选择的电压-电流组合的挡位,受电端则可以通过协议选择其中一 个挡位对自己供电。快充协议的提出大大提高了充电设备设计的灵活性,受电 端可以选择最适合自己的功率挡位进行充电,同时也大大提高了充电效率。
设计上,快充协议是在软件层面实现的,通过编写相应的控制程序,充电 设备和受电设备均可以使用快充协议进行通讯。而这部分软件则是运行在两端 设备充电管理芯片中的固件程序。
其中参相关技术中,快速充电设备的制备过程可以分为三部分工作,硬件 设计,软件设计和实际生产,具体包括以下阶段:
1)硬件设计阶段:进行快速充电硬件设计;测试硬件功能;测试软件功能 是否正常。
2)软件设计阶段:编译固件代码;刷写固件到开发板;测试软件功能是否 正常。
3)生产阶段:硬件PCB设计和制作,最终将固件烧写到芯片中。
其中,硬件设计包含对产品外观和内部电路和器件的设计和选择。软件设 计部分,主要是对快充设备充电功能的软件开发和支持,包含对快充协议的实 现,当前充电状态的检测,输入/输出电压和电流的控制,接入线缆的检测等功 能均是在软件层面实现。
其中,实际生产部分,是在完成软件和硬件的设计之后,厂商着手开始进 行产品的批量化生产,这个过程中,厂商会完成实际产品PCB板,外壳的制作, 固件的灌装等操作。最后将各个器件焊接并组装在一起,形成最终的快速充电 设备。通过前序生产过程所生产的快速充电设备为了实现能够灵活的修改了更 新实现快充协议的固件程序,快充协议在设计上是可以传输数据的。多数OEM 厂商在编写固件的样例代码的时候,都会通过快充协议的数据通道实现一个固 件更新的功能。在一些其他的实现上,也才有采用自定私有协议对固件进行更 新的设计。
其中,快充设备固件的更新技术实现可以通过以下方式:
1、通过PD协议的VDM消息传输固件;2、通过Type-C接口中冗余的引 脚,引出SWD引脚,并通过SWD调试协议对固件进行刷写;3、通过在Type-C 接口中冗余的引脚实现一个私有协议通讯,实现固件的更新和刷写。
但是,无论采用前述哪一种快充设备固件的更新技术均不能保证恶意攻击 者刷入其自己修改过的固件程序。这些恶意修改过的固件程序可导致充电设备 的异常工作,并可对被充电设备造成永久的电气损害。
为了克服上述缺陷,当快充设备的生产商启动生产进程时,可以通过从区 块链网络中获取快充设备的标识、所述引导加载程序代码、固件更新信息、快 充协议信息,可以迅速的进入生产,其中,快充设备制备流程处理方法包括3 个不同阶段,下面依次介绍。
其中,参考图9,图9为本发明实施例提供的快充设备的固件更新方法一个 可选的流程示意图,具体包括以下步骤:
1)软件设计阶段:
步骤901:触发与快速充电设备相匹配的快速充电部分功能开发进程。
步骤902:触发编写带有签名验证的引导加载程序代码的编辑进程。
步骤903:确定快充设备的快速充电功能的功能代码。
步骤904:触发测试引导加载程序代码的功能的进程。
步骤905:检测引导加载程序代码的功能是否正常,如果是,执行步骤906, 否则执行步骤902。
步骤906:检测快充设备快速充电功能是否正常,如果是,执行步骤911, 否则执行步骤903。
2)硬件设计阶段:
步骤907:触发快充设备快速充电功能的硬件设计;
步骤908:对快速充电功能的快充设备的硬件功能进行测试。
步骤909:测试快速充电功能的快充设备的软件功能是否正常,如果是执行 步骤910,否则,执行步骤907。
步骤910:触发快速充电功能的快充设备的硬件PCB设计和制作进程。
3)代码保护阶段的制备进程:
步骤911:烧写引导加载程序代码到芯片中。
步骤912:锁定引导加载程序代码的存储区域。
步骤913:烧写功能代码到芯片中。
4)生产阶段:
步骤914:设备工厂生产完,成快充设备的制备。
其中,软件设计阶段分为两部分进程:bootloader开发进程和功能代码开发 进程。分开以后,可以有效的去除代码功能的耦合。可以进行独立的维护和扩 展。
进一步地,当快充设备生产线基于图9所示的快充设备制备流程处理方法 完成快充设备的生产时,参考图10,图10为本发明实施例提供的快充设备的固 件更新方法一个可选的流程示意图;包括以下步骤:
步骤1001:快充设备的芯片上电运行所存储的引导加载程序代码。
步骤1002:执行快充设备的硬件初始化进程。
其中,Bootloader代码是芯片启动时运行的代码,在设计上仅提供少数有限 的功能。这样可以保证最小的开发量和最低的bug/漏洞存在的可能性。Bootloader 代码包含的功能有初始化硬件环境,载入和运行功能代码,校验要更新的功能 代码,和更新写入新的功能代码。
步骤1003:检测快充设备的固件更新信号。
步骤1004:判断是否进行固件更新,如果是,执行步骤1005,否则,执行 步骤1006。
步骤1005:等待接受快充设备的固件更新。
步骤1006:从快充设备的存储介质中读取功能代码。
步骤1007:完成接收快充设备的固件。
Bootloader启动的时候对硬件环境初始化,初始化完成后,会检查是否存在 硬件/软件上设置的固件更新信号,如果有,则进入固件更新进程。在固件更新 进程中,bootloader可以实现接收固件更新代码的功能也可不实现,这里对应的 是上述步骤中步骤1005“等待接受快充设备的固件更新”和步骤1006“从快 充设备的存储介质中读取功能代码”这两个步骤,这两个功能是可选的。如 bootloader不实现该功能,需在功能代码中实现接受固件并存储的功能。在获得 更新的固件后,bootloader需要对该更新固件的合法性进行校验和检查。这里建 议采用公私钥数字签名算法进行签名和校验。其中,签名算法可以选择RSA和 ECDSA两种算法中的任意一种。如选择RSA算法,优先2048bit及以上。
步骤1008:校验快充设备的固件是否有效,如果是,执行步骤1009,否则, 执行步骤1010。
步骤1009:将更新内容写入快充设备的固件。
步骤1010:清除固件更新信号并重启快充设备的芯片。
进一步地,如果更新固件的合法性校验通过,则进入“写入固件”进程, 只有通过校验才能够真正对应用固件更新,这样可以保证设备只运行合法和可 信任的固件代码。如更新固件的合法性校验未通过,bootloader需要清除固件更 新的状态,并保持原始固件不变,并在下次运行时直接运行原始的固件。
步骤1011:判断功能代码校验是否有效,如果是,执行步骤1012,否则, 执行步骤1013。
步骤1012:执行快充设备的快速充电功能,以实现设备正常运行。
步骤1013:拒绝执行不可信代码,触发警报。
Bootloader在未检测到固件更新信号时,需默认载入存储介质保存的固件代 码,并对该代码进行校验,如果校验通过,则使用直接运行该固件代码,此时 快充设备的功能会正常运行。如此时校验未通过,则拒绝运行该固件代码。未 保证固件代码的运行效率,建议此处的校验算法可以采用较为轻量级的校验算 法。例如;功能代码启动阶段的校验算法,可以考虑采用CRC32,CRC16或者 校验和等算法等轻量级的算法。
下面继续集合前序实施例所示的代码保护进程进行介绍,本发明实施例提 供的快充设备制备流程处理方法一个可选的流程示意图;其中代码保护阶段的 制备进程代码保护阶段分为三个步骤:
1)烧写引导加载程序代码;2)锁定引导加载程序代码;3)烧写功能代码。
具体来说,烧写引导加载程序代码(bootloader)这一步是将编写好的固件 通过编程器烧写到产品量产使用的芯片中,此步骤需将bootloader烧写到芯片内 置的存储介质中,防止被读出。
锁定bootloader这一步是通过设置芯片的安全位,将bootloader所在的存储 区域设置为“不可再次写入”,并同时开启不可将代码读取到外部的保护(该保 护在不同的芯片中的保护形式有所不同,如STM32的ReadOutProtection)。该 步骤可以确定bootloader代码不会被厂商以外的人员更新和覆盖。
烧写功能代码这一步是将功能代码烧写到芯片中,具体来说,可以烧写到 芯片内置的存储区域,也可以烧写在外部的存储介质中,可根据硬件的具体设 计而定。该步骤主要是为了烧写设备的功能代码,这部分代码在设计上是可更 新的。
有益技术效果:
本发明实施例通过当快充设备或其固件上电运行时,执行与所述快充设备 的固件相匹配的初始化进程;在检测到所述固件更新信号时输出是否进行固件 更新的问询提示信息;响应于固件更新指令,启动针对所述快充设备的固件更 新流程;接收并存储待更新的固件更新程序;当所述固件更新程序通过合法性 与有效性检测时,执行所述固件更新程序的写入与更新处理。由此,能够实现 在快充设备引导加载程序的制备过程中,充分利用引导加载程序代码,对电子 设备的快速充电功能进行支持,扩大快充设备的固件的快速充电功能的使用范 围,还能够保证快充设备的固件的及时更新,防止恶意固件程序对快充设备的 影响,保证用户的快充设备的安全使用。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围, 凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含 在本发明的保护范围之内。
Claims (14)
1.一种快充设备的固件更新方法,其特征在于,所述方法包括:
当快充设备或其固件上电运行时,执行与所述快充设备的固件相匹配的初始化进程;
检测针对所述快充设备的固件更新信号,在检测到所述固件更新信号时输出是否进行固件更新的问询提示信息;
响应于固件更新指令,启动针对所述快充设备的固件更新流程;
接收并存储待更新的固件更新程序;
对所述固件更新程序进行合法性校验与检查处理;
当所述固件更新程序通过合法性与有效性检测时,执行所述固件更新程序的写入与更新处理。
2.根据权利要求1所述的方法,其特征在于,对固件更新程序进行合法性校验与检查处理,包括:
采用公私钥数据签名算法对所述固件更新程序进行签名和校验。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
当所述固件更新程序未通过所述合法性与有效性检测时,清除所述固件更新程序或固件更新状态,并重启所述快充设备,执行所述快充设备的原始固件的快充功能。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在完成所述检测针对所述快充设备的固件更新信号后,并且未检测到所述固件更新信号时,执行所述快充设备的快速充电功能。
5.根据权利要求3或4所述的方法,其特征在于,所述执行所述快充设备的快速充电功能包括:
从所述快充设备的芯片或存储介质中读取快速充电功能代码;其中,所述芯片或存储介质中预先烧录或存储有执行快速充电功能的引导加载程序代码;
对所述快速充电功能代码进行可信校验处理;
在所述快速充电功能代码通过可信校验处理后,执行所述快充设备的快速充电功能。
6.根据权利要求5所述的方法,其特征在于,所述从所述快充设备的芯片或存储介质中读取快速充电功能代码,包括:
当所述快充设备为适配器时,根据所述适配器的软件存储路径,向对应的存储设备发送下载请求,所述下载请求包含所述快速充电功能的适配器的软件标识;
接收所述存储设备根据所述适配器的软件标识下发与所述适配器相适配的快速充电功能代码。
7.根据权利要求5所述的方法,其特征在于,所述对所述快速充电功能代码进行可信校验处理,包括:
通过所述引导加载程序代码所携带的签名认证算法对所述快充设备的快速充电功能代码进行检测;
当所述快速充电功能代码未通过可信校验处理时,停止继续执行所述述快充设备的快速充电功能,并通过所述快充设备进行示警。
8.根据权利要求5所述的方法,其特征在于,所述引导加载程序代码通过以下方法实现:
编写带有签名验证功能的引导加载程序代码;
编写用于实现对所述快充设备执行快充功能的快充设备功能代码;
将编写好的带有签名验证功能的引导加载程序代码以及快充设备功能代码进行开发板刷写处理,得到经刷写处理后的引导加载程序开发板;
对所述经刷写处理后的引导加载程序开发板的签名验证功能以及快充设备功能进行测试处理;
将经过测试且功能正常的所述带有签名验证功能的引导加载程序代码烧写到芯片中;
对所述带有签名验证功能的引导加载程序代码进行存储区域锁定处理;
将所述经过测试且功能正常的所述快充设备功能代码烧写到芯片中。
9.根据权利要求8所述的方法,其特征在于,所述对所述带有签名验证功能的引导加载程序代码进行存储区域锁定处理,包括:
确定所述带有签名验证功能的引导加载程序代码在所述快充设备的固件的存储介质中的存储位置;
对所述存储位置的存储介质参数进行适配,以调整所述存储位置的存储介质的可读性;
通过编程器对述存储位置的存储介质进行存储区域锁定处理,以实现所述存储区域的只读性。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
根据所述快充设备的固件的快充功能代码的版本信息,对所述引导加载程序代码所携带的签名认证算法的种类进行调整;或者,
根据所述快充设备的使用环境,对所述引导加载程序代码所携带的签名认证算法的种类进行调整。
11.一种快充设备的固件更新程序,其特征在于,所述固件更新程序包括:
硬件初始化模块,用于当快充设备或其固件上电运行时,执行与所述快充设备的固件相匹配的初始化进程;
固件更新信号检测模块,用于检测针对所述快充设备的固件更新信号,在检测到所述固件更新信号时输出是否进行固件更新的问询提示信息;
固件更新触发模块,用于响应于固件更新指令,启动针对所述快充设备的固件更新流程;
固件更新存储模块,用于接收并存储待更新的固件更新程序;
合法性校验与检查模块,用于对所述固件更新程序进行合法性校验与检查处理;
程序写入与更新模块,用于当所述固件更新程序通过合法性与有效性检测时,执行所述固件更新程序的写入与更新处理。
12.一种快充设备处理器,其特征在于,所述快充设备处理器其连接于一存储器,该存储器上存储有多个可执行指令,当该多个可执行指令执行时使得该处理器执行权利要求1至10任一项所述的快充设备的固件更新方法。
13.一种快充设备,其特征在于,所述快充设备包括:
存储器,用于存储可执行指令;其中,所述可执行指令包括快充设备引导加载程序;
处理器,用于运行所述存储器存储的可执行指令时,实现权利要求1至10任一项所述的快充设备的固件更新方法。
14.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时实现权利要求1至10任一项所述的快充设备的固件更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010296159.8A CN111831308A (zh) | 2020-04-15 | 2020-04-15 | 快充设备的固件更新方法、程序、快充设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010296159.8A CN111831308A (zh) | 2020-04-15 | 2020-04-15 | 快充设备的固件更新方法、程序、快充设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111831308A true CN111831308A (zh) | 2020-10-27 |
Family
ID=72913392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010296159.8A Pending CN111831308A (zh) | 2020-04-15 | 2020-04-15 | 快充设备的固件更新方法、程序、快充设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111831308A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732308A (zh) * | 2020-12-31 | 2021-04-30 | 广州万协通信息技术有限公司 | 一种模块细粒度化的固件升级方法、设备及存储介质 |
CN113220330A (zh) * | 2021-05-25 | 2021-08-06 | 杭州海康威视数字技术股份有限公司 | 电子设备的管理方法及装置 |
CN114168176A (zh) * | 2021-12-15 | 2022-03-11 | 四川启睿克科技有限公司 | 一种基于区块链的跨厂商设备升级***及方法 |
CN114584322A (zh) * | 2022-03-31 | 2022-06-03 | 浙江地芯引力科技有限公司 | 连接装置秘钥认证模式切换方法、装置、连接装置及介质 |
WO2023216845A1 (zh) * | 2022-05-09 | 2023-11-16 | 乐鑫信息科技(上海)股份有限公司 | 嵌入式设备固件更新方法、嵌入式设备、开发端设备 |
TWI823311B (zh) * | 2022-03-29 | 2023-11-21 | 新唐科技股份有限公司 | 用於更新韌體的方法及資料結構產品 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120060039A1 (en) * | 2010-03-05 | 2012-03-08 | Maxlinear, Inc. | Code Download and Firewall for Embedded Secure Application |
CN104166565A (zh) * | 2014-08-11 | 2014-11-26 | 成都瑞博慧窗信息技术有限公司 | 一种智能显示终端固件升级方法 |
CN105870982A (zh) * | 2015-11-20 | 2016-08-17 | 乐视致新电子科技(天津)有限公司 | 一种智能充电方法及***、智能充电桩 |
CN106097587A (zh) * | 2016-08-04 | 2016-11-09 | 刘世和 | 基于云平台、多租户的分布式电动车充电管理***及方法 |
US20180173182A1 (en) * | 2016-12-16 | 2018-06-21 | General Electric Company | Uninterruptable verification and control upgrade for real-time control system |
WO2018138789A1 (ja) * | 2017-01-25 | 2018-08-02 | 三菱電機株式会社 | 組み込み装置及びファームウェア更新方法 |
CN109918105A (zh) * | 2019-02-21 | 2019-06-21 | 福建星云电子股份有限公司 | 一种充电桩软件自动在线升级方法及*** |
CN110196727A (zh) * | 2019-06-06 | 2019-09-03 | 北京牛电信息技术有限责任公司 | 电动车辆软件更新方法、装置、手持设备及存储介质 |
-
2020
- 2020-04-15 CN CN202010296159.8A patent/CN111831308A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120060039A1 (en) * | 2010-03-05 | 2012-03-08 | Maxlinear, Inc. | Code Download and Firewall for Embedded Secure Application |
CN104166565A (zh) * | 2014-08-11 | 2014-11-26 | 成都瑞博慧窗信息技术有限公司 | 一种智能显示终端固件升级方法 |
CN105870982A (zh) * | 2015-11-20 | 2016-08-17 | 乐视致新电子科技(天津)有限公司 | 一种智能充电方法及***、智能充电桩 |
CN106097587A (zh) * | 2016-08-04 | 2016-11-09 | 刘世和 | 基于云平台、多租户的分布式电动车充电管理***及方法 |
US20180173182A1 (en) * | 2016-12-16 | 2018-06-21 | General Electric Company | Uninterruptable verification and control upgrade for real-time control system |
WO2018138789A1 (ja) * | 2017-01-25 | 2018-08-02 | 三菱電機株式会社 | 組み込み装置及びファームウェア更新方法 |
CN109918105A (zh) * | 2019-02-21 | 2019-06-21 | 福建星云电子股份有限公司 | 一种充电桩软件自动在线升级方法及*** |
CN110196727A (zh) * | 2019-06-06 | 2019-09-03 | 北京牛电信息技术有限责任公司 | 电动车辆软件更新方法、装置、手持设备及存储介质 |
Non-Patent Citations (5)
Title |
---|
DONUT: "Overcome MD5-RSA Signature verification", 《HTTPS://CRYPTO.STACKEXCHANGE.COM/QUESTIONS/68727/OVERCOME-MD5-RSA-SIGNATURE-VERIFICATION》 * |
ITSENSING: "如何用MD5值检查软件的合法性", 《HTTPS://BBS.CSDN.NET/TOPICS/30477165?LIST=82748》 * |
WUYEYOULANJIAN: "文件***——程序包管理概述及rpm包合法性验证", 《HTTPS://BLOG.51CTO.COM/WUYELAN/1545895》 * |
小北瓜: "对设备升级时,如何通过核对MD5哈希值来校验软件的合法性", 《HTTPS://FORUM.HUAWEI.COM/ENTERPRISE/ZH/THREAD-319445.HTML》 * |
小安: "Google OpenTitan,硬件安全的泰坦之箭", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/97569701》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732308A (zh) * | 2020-12-31 | 2021-04-30 | 广州万协通信息技术有限公司 | 一种模块细粒度化的固件升级方法、设备及存储介质 |
CN112732308B (zh) * | 2020-12-31 | 2024-05-31 | 广州万协通信息技术有限公司 | 一种模块化的固件升级方法、设备及存储介质 |
CN113220330A (zh) * | 2021-05-25 | 2021-08-06 | 杭州海康威视数字技术股份有限公司 | 电子设备的管理方法及装置 |
CN114168176A (zh) * | 2021-12-15 | 2022-03-11 | 四川启睿克科技有限公司 | 一种基于区块链的跨厂商设备升级***及方法 |
TWI823311B (zh) * | 2022-03-29 | 2023-11-21 | 新唐科技股份有限公司 | 用於更新韌體的方法及資料結構產品 |
CN114584322A (zh) * | 2022-03-31 | 2022-06-03 | 浙江地芯引力科技有限公司 | 连接装置秘钥认证模式切换方法、装置、连接装置及介质 |
CN114584322B (zh) * | 2022-03-31 | 2023-08-22 | 浙江地芯引力科技有限公司 | 连接装置秘钥认证模式切换方法、装置、连接装置及介质 |
WO2023216845A1 (zh) * | 2022-05-09 | 2023-11-16 | 乐鑫信息科技(上海)股份有限公司 | 嵌入式设备固件更新方法、嵌入式设备、开发端设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111831308A (zh) | 快充设备的固件更新方法、程序、快充设备及存储介质 | |
CN109542518B (zh) | 芯片和启动芯片的方法 | |
US10395039B2 (en) | Customer-owned trust of device firmware | |
KR101066727B1 (ko) | 컴퓨팅 장치의 보안 부팅 | |
US9378372B2 (en) | Secure download and security function execution method and apparatus | |
US8560823B1 (en) | Trusted modular firmware update using digital certificate | |
CN111264044B (zh) | 芯片、生成私钥的方法和可信证明的方法 | |
US7953225B2 (en) | Mobile wireless communications device with software installation and verification features and related methods | |
US20090327741A1 (en) | System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid) | |
EP3458999A1 (en) | Self-contained cryptographic boot policy validation | |
US20110258426A1 (en) | Booting and configuring a subsystem securely from non-local storage | |
US11206141B2 (en) | Merging multiple compute nodes with trusted platform modules utilizing provisioned node certificates | |
CN111066016B (zh) | 应用证书 | |
CN109492352B (zh) | 一种设备标识组合引擎的实现方法及装置 | |
CN111052117B (zh) | 在没有多元化创作的情况下安全地定义操作***组成 | |
US20220224546A1 (en) | Software integrity protection method and apparatus, and software integrity verification method and apparatus | |
CN112714158A (zh) | 事务处理方法、中继网络、跨链网关、***、介质和设备 | |
CN114003915A (zh) | 基于芯片的安全启动方法及装置 | |
WO2023124420A1 (zh) | 应用签名方法、***、交易终端及服务平台 | |
CN115329321A (zh) | 一种固件的启动方法、芯片及计算设备 | |
JP2023525576A (ja) | ソフトウェア更新のための認証キーの制御範囲 | |
US20090172376A1 (en) | Methods, apparatuses, and computer program products for providing a secure predefined boot sequence | |
US11989305B2 (en) | Automated update of a customized secure boot policy | |
WO2018233638A1 (zh) | Ai软件***安全状态的确定方法及装置 | |
CN117494232B (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 |