一种固件升级校验的启动控制方法、装置、设备和介质与流程
本发明涉及嵌入式系统,具体涉及一种固件升级校验的启动控制方法、装置、计算机设备和存储介质。
背景技术:
1、在嵌入式系统(如可穿戴设备、车载系统、物联网设备等)中,固件升级是修复漏洞、增加功能或优化性能的常用手段,通常采用空中下载(ota)或本地升级方式进行。为保证系统安全,固件升级完成后,需要在系统启动阶段对固件进行完整性校验,以确认固件数据未被篡改或损坏。现有技术中,一种常见的处理方式是在系统启动时,先对固件全部区域执行完整性校验,待全部校验完成后再启动操作系统及应用模块;另一种方式则允许系统在校验尚未完成的期间,直接启动操作系统或应用模块,校验任务在后台继续执行。
2、然而,上述两种方式均存在明显不足。对于前一种方式,由于固件数据量通常较大,校验过程耗时较长,导致系统启动时间大幅增加,影响用户体验。对于后一种方式,系统在固件完整性未经确认的情况下即投入运行,存在安全风险窗口,恶意代码或损坏数据可能在此期间被执行。
3、进一步地,现有技术在系统启动过程中,仅能依据“校验是否全部完成”这一单一条件来控制功能模块的可用性,缺乏基于校验过程状态的细粒度控制能力,无法针对不同功能模块所依赖的固件区域,在校验过程中动态、有区别地释放运行权限。此外,现有校验状态记录方式多采用简单的任务计数或完成标志,无法表达固件校验在地址空间上的连续覆盖关系,难以支撑上述细粒度的权限控制需求。
技术实现思路
1、有鉴于此,本发明实施例提供一种固件升级校验的启动控制方法、装置、计算机设备和存储介质,以至少解决现有技术中存在的问题。
2、本发明实施例提供以下技术方案:
3、本发明实施例提供一种固件升级校验的启动控制方法,应用于嵌入式系统固件升级后的系统启动阶段,包括:
4、将待校验的固件升级数据划分为多个校验任务单元,每个所述校验任务单元对应固件地址空间内的一个连续数据区间;
5、在所述系统启动阶段,执行所述校验任务单元,并生成和更新固件校验覆盖位图,所述固件校验覆盖位图中的每个比特位对应一固件数据块,所述比特位的第一取值表示对应所述固件数据块已完成校验,第二取值表示对应所述固件数据块未完成校验;
6、根据所述嵌入式系统内的各功能模块与固件地址区间之间的依赖映射关系,确定每一所述功能模块正常运行所依赖的固件地址范围;
7、基于所述依赖映射关系以及当前的所述固件校验覆盖位图,对所述功能模块所依赖的固件地址区间进行校验覆盖连续性判断:若所述固件地址区间对应的所有所述比特位均为所述第一取值,则判定所述功能模块满足运行条件,否则判定为不满足运行条件;
8、根据所述连续性判断的结果,对所述功能模块的运行权限进行实时控制。
9、优选地,所述固件校验覆盖位图中的每个比特位对应一个固定大小的固件数据块;在生成所述固件校验覆盖位图的过程中,同步记录每个固件数据块所对应的起始地址与结束地址。
10、优选地,对所述功能模块所依赖的固件地址区间进行校验覆盖连续性判断的具体规则为:
11、当所述功能模块所依赖的所述固件地址区间对应的所有比特位均为所述第一取值,且所述固件地址区间内不存在未校验的空洞区间时,判定所述功能模块满足运行条件。
12、优选地,根据所述连续性判断的结果,对所述功能模块的运行权限进行实时控制,包括:
13、在所述功能模块为基础模块、且所述连续性判断结果为满足运行条件时,优先释放所述功能模块的运行权限;
14、在所述功能模块为非关键模块、且所述连续性判断结果为满足运行条件时,按预设顺序逐步释放所述功能模块的运行权限;
15、当所述固件校验覆盖位图中所有比特位均为第一取值时,释放全部功能模块的所有运行权限;
16、其中,所述运行权限的控制类型包括允许运行、限制运行和禁止运行。
17、优选地,在系统启动过程中,所述校验任务单元的执行与所述功能模块的运行并行进行,所述功能模块的运行权限由所述固件校验覆盖位图的实时状态进行动态控制。
18、优选地,所述固件校验覆盖位图中的所有比特位均为第一取值时,判定固件校验全部完成,系统进入完全可信运行状态,解除对所有功能模块的运行权限限制。
19、优选地,在划分校验任务单元之前,还包括:
20、系统上电后执行cpu初始化、内存初始化以及存储设备初始化,使系统进入固件可访问、代码可执行的就绪状态。
21、本发明实施例还提供了一种固件升级校验的启动控制装置,应用于嵌入式系统固件升级后的系统启动阶段,包括:
22、校验任务划分模块,用于将待校验的固件升级数据划分为多个校验任务单元,每个所述校验任务单元对应固件地址空间内的一个连续数据区间;
23、位图生成维护模块,用于在所述系统启动阶段,执行所述校验任务单元,并生成和更新固件校验覆盖位图,所述固件校验覆盖位图中的每个比特位对应一固件数据块,所述比特位的第一取值表示对应所述固件数据块已完成校验,第二取值表示对应所述固件数据块未完成校验;
24、依赖关系模块,用于建立并根据所述嵌入式系统内的各功能模块与固件地址区间之间的依赖映射关系,确定每一所述功能模块正常运行所依赖的固件地址范围;
25、覆盖连续性判断模块,用于基于所述依赖映射关系以及当前的所述固件校验覆盖位图,对所述功能模块所依赖的固件地址区间进行校验覆盖连续性判断:若所述固件地址区间对应的所有所述比特位均为所述第一取值,则判定所述功能模块满足运行条件,否则判定为不满足运行条件;
26、权限控制模块,用于根据所述连续性判断的结果,对所述功能模块的运行权限进行实时控制。
27、本发明实施例还提供了一种计算机设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如上任一项所述方法的步骤。
28、本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述方法的步骤。
29、与现有技术相比,本发明实施例采用的上述至少一个技术方案能够达到的技术效果至少包括:
30、本发明的一种固件升级校验的启动控制方法,通过将固件升级数据划分为多个连续校验单元并以比特位图结构化记录各区块校验状态,结合功能模块与固件地址区间的依赖映射关系进行覆盖连续性判断,据此动态管控各功能模块的运行权限;该方案打破了传统方案需全量固件校验完成后方可启动系统的串行约束,实现校验执行与系统功能启动的并行推进,从而有效降低系统启动延迟。
1.一种固件升级校验的启动控制方法,应用于嵌入式系统固件升级后的系统启动阶段,其特征在于,包括:
2.根据权利要求1所述的启动控制方法,其特征在于,所述固件校验覆盖位图中的每个比特位对应一个固定大小的固件数据块;在生成所述固件校验覆盖位图的过程中,同步记录每个固件数据块所对应的起始地址与结束地址。
3.根据权利要求1所述的启动控制方法,其特征在于,对所述功能模块所依赖的固件地址区间进行校验覆盖连续性判断的具体规则为:
4.根据权利要求1所述的启动控制方法,其特征在于,根据所述连续性判断的结果,对所述功能模块的运行权限进行实时控制,包括:
5.根据权利要求1-4任一所述的启动控制方法,其特征在于,在系统启动过程中,所述校验任务单元的执行与所述功能模块的运行并行进行,所述功能模块的运行权限由所述固件校验覆盖位图的实时状态进行动态控制。
6.根据权利要求1-4任一所述的启动控制方法,其特征在于,所述固件校验覆盖位图中的所有比特位均为第一取值时,判定固件校验全部完成,系统进入完全可信运行状态,解除对所有功能模块的运行权限限制。
7.根据权利要求1-4任一所述的固件升级校验的启动控制方法,其特征在于,在划分校验任务单元之前,还包括:
8.一种固件升级校验的启动控制装置,应用于嵌入式系统固件升级后的系统启动阶段,其特征在于,包括:
9.一种计算机设备,包括处理器和存储器,其特征在于,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com