一种安全的嵌入式系统固件分块差分升级方法及系统技术方案

技术编号:37999637 阅读:31 留言:0更新日期:2023-06-30 10:13
本申请公开了一种安全的嵌入式系统固件分块差分升级方法及系统,其中方法步骤包括:确定目标系统在升级中断时,升级中断的位置;基于升级中断的位置,在恢复升级时,继续完成升级。常见的嵌入式系统由于运行内存有限,固件差分升级时需要分块进行。一旦升级过程由于掉电等原因出现中断,可能会出现部分升级的情况,这就要求升级程序再次执行时可以可靠的从中断的地方恢复升级,以免系统“变砖”。本申请公开了一种差分升级框架,结合底层的差分升级算法,只需要额外每个分块4个字节的校验码,就可以保证准确识别升级中断点,确保差分升级的完整性和安全性。完整性和安全性。完整性和安全性。

【技术实现步骤摘要】
一种安全的嵌入式系统固件分块差分升级方法及系统


[0001]本申请涉及系统固件升级领域,具体涉及一种安全的嵌入式系统固件分块差分升级方法及系统。

技术介绍

[0002]由于差分效果好、差分升级包小,差分升级方法已经成为最流行的固件升级方式,尤其是嵌入式设备的固件升级。
[0003]对于普通文件升级,差分升级算法都是一次性把老文件加载内存、读入差分包、执行升级,再写入。但是,由于常见嵌入式系统的运行内存都是小于固件大小,固件升级就需要分块执行,逐块把老固件升级为新版本。
[0004]分块的固件升级一旦遇到中断,比如遇到掉电或其他不可抗力,就可能会出现部分升级的情况:老固件前面有部分的块已经升级为新版本。处于这种中间状态设备一般是不可用的,俗称“变砖”。升级程序必须能够有效的识别这种状态,再次执行时可以准确找到中断的地方恢复升级,确保升级的完整性。

技术实现思路

[0005]本申请结合底层的具体升级算法,只需要额外每个分块新老固件的普通校验码(放在差分升级包的头部),就可以准确识别升级中断点继续升级,杜绝升级失败的可本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种安全的嵌入式系统固件分块差分升级方法,其特征在于,步骤包括:S1.确定目标系统在升级中断时的中断位置;S2.基于所述中断位置,在恢复升级时,继续完成升级。2.根据权利要求1所述的安全的嵌入式系统固件分块差分升级方法,其特征在于,支持嵌入式系统固件分块差分升级方法的差分包包括:底层的升级差分数据和顶层数据;所述顶层数据包括:固件进行分块差分升级时的分块大小、分块数量和每个分块的新老固件的校验码。3.根据权利要求2所述的安全的嵌入式系统固件分块差分升级方法,其特征在于,所述S1中确定所述中断位置的方法包括:S301.设固件一共n个分块,从i=1开始,依次计算第i个分块的校验码;S302.如果第i个分块为老固件,则依次检查剩下的分块,必须全部为老固件,此时框架执行结束,返回i,否则报错退出;S303.如果第i个分块为新固件,跳回S301;S304.如果第i个分块既不是老固件也不是新固件,则检查备份块是否为老固件,剩下的分块也必须都是老固件,如果是老固件,则将备份块拷贝回第i个分块,框架执行结束,返回i,否则报错退出;S305.当老固件所有分块都扫描完成并且都已升级为新固件,则执行本步骤;如果新固件的分块数比老固件多,则返回n+1。4.根据权利要求3所述的安全的嵌入式系统固件分块差分升级方法,其特征在于,在继续完成时,需要确定所述分块的大小,步骤包括:S401.根据设备的运行内存和存储空间约束,计算出最大容许的分块大小,并对设备物理块大小下取整;S402.判定所述固件之间有无冲突发生;S403.如果有冲突发生,所述分块的大小减小一个物理块大小,重复S402;如果没有冲突发生,则运行结束。5.一种安全的嵌入式系统固件分块差分升级系统,其特征在于,包括:监测模块和恢复...

【专利技术属性】
技术研发人员:方艳赵倩张日权
申请(专利权)人:上海对外经贸大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1