一种固件升级方法、装置、设备及介质与流程

摘要: 本申请涉及设备固件升级,具体而言,涉及一种固件升级方法、装置、设备及介质。背景技术:1、随着嵌入式系统在各行各业的广泛部署,固件升级已成为设备生命周期管理中的关...
一种固件升级方法、装置、设备及介质与流程

本申请涉及设备固件升级,具体而言,涉及一种固件升级方法、装置、设备及介质。

背景技术:

1、随着嵌入式系统在各行各业的广泛部署,固件升级已成为设备生命周期管理中的关键环节。通过固件升级,不仅可以修复已知漏洞、增强设备安全性,还可以引入新功能、改善用户体验。常规固件升级方案中,目标设备需缓存完整固件才能进行校验和写入,但是对于采用分板式架构的嵌入式系统,例如运动相机分板云台产品,各控制板ram空间极小、无法缓存完整固件,导致常规的整包校验、按包独立解密和写入即生效的升级方式无法直接适用。

技术实现思路

1、本申请实施例的目的在于提供一种固件升级方法、装置、设备及介质,用以解决了现有技术存在的上述问题,可在无需缓存完整固件镜像的前提下,实现了待升级控制板固件的安全、连续升级。

2、第一方面,本发明提供一种固件升级方法,应用于固件升级系统的待升级控制板中,所述方法包括:

3、当接收到任一包含文件位置标识的升级密文分包时,根据所述升级密文分包的文件位置标识,对所述升级密文分包进行解密,得到固件信息段和/或固件二进制段;

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、本申请在无需缓存完整固件镜像的前提下,实现了待升级控制板固件的安全、连续升级,有效保障了升级过程的完整性与设备运行安全;本申请通过在密文分包中携带文件位置标识并基于该标识恢复解密位置,使得目标控制板无需缓存完整密文文件即可逐包解密,且重传、补包时解密结果一致,避免了常规分包升级中因重传导致的解密上下文错位;本申请通过将写入权限与固件信息校验结果绑定,使得固件二进制段只有在固件信息完整且校验通过后才被允许写入应用分区,避免了因固件信息错误或签名无效而将无效数据提前写入应用分区造成的状态污染;本申请通过状态标识控制固件二进制段的写入时机,使得目标控制板无需在ram中缓存完整的固件二进制文件即可完成固件的流式写入,单次写入仅需与单个分包有效载荷长度相当的缓存空间。

1.一种固件升级方法,其特征在于,应用于固件升级系统的待升级控制板中,所述方法包括:

2.如权利要求1所述的方法,其特征在于,所述固件升级系统还包括:上位机和转发节点;

3.如权利要求2所述的方法,其特征在于,根据所述升级密文分包的文件位置标识,对所述升级密文分包进行解密,得到固件信息段和/或固件二进制段,包括:

4.如权利要求1所述的方法,其特征在于,在得到固件信息段和/或固件二进制段之后,所述方法还包括:

5.如权利要求1所述的方法,其特征在于,将所述固件二进制段写入所述待升级控制板的应用分区,包括:

6.如权利要求5所述的方法,其特征在于,将所述固件二进制段写入所述应用分区的目标地址处,包括:

7.如权利要求6所述的方法,其特征在于,所述固件信息包括预期摘要;

8.一种固件升级装置,其特征在于,所述装置包括:

9.一种电子设备,其特征在于,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法。