利索能及
我要发布
收藏
专利号: 2020114948880
申请人: 杭州海康威视数字技术股份有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-08-04
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种引导加载程序升级方法,其特征在于,所述引导加载程序安装于电子设备中,所述引导加载程序包括:第一程序和第二程序,所述第一程序用于引导所述电子设备的操作系统内核启动以及调用所述第二程序,所述第二程序用于实现除启动所述操作系统内核外的其他功能,所述方法包括:

在所述第一程序或所述操作系统内核处于工作状态的情况下,若需要对所述引导加载程序进行升级,获得所述第二程序的升级文件;

基于所述升级文件对所述第二程序进行升级,以实现对所述引导加载程序升级。

2.根据权利要求1所述的方法,其特征在于,所述第二程序包括主程序和所述主程序的备份程序,所述主程序当前处于可调用状态,所述备份程序当前处于不可调用状态,所述基于所述升级文件对所述第二程序进行升级,包括:基于所述升级文件对所述备份程序进行升级;

在所述备份程序升级失败的情况下,拷贝所述主程序覆盖升级失败的备份程序,并返回所述基于所述升级文件对所述备份程序进行升级的步骤;

在所述备份程序升级成功的情况下,将升级成功的备份程序设置为可调用状态,并将所述主程序设置为不可调用状态,基于所述升级文件对所述主程序进行升级;

在所述主程序升级失败的情况下,重新对所述主程序进行升级。

3.根据权利要求2所述的方法,其特征在于,所述重新对所述主程序进行升级,包括:重新基于所述升级文件对所述主程序进行升级;或拷贝升级后的备份程序覆盖升级失败的主程序。

4.根据权利要求2所述的方法,其特征在于,按照以下过程对待升级程序进行升级,其中,所述待升级程序为所述主程序或备份程序:基于所述升级文件对所述待升级程序进行升级,其中,在升级成功之前,所述待升级程序的开始升级标志被设置为表征开始升级,所述待升级程序的升级完成标志被设置为表征未升级完成;

在升级成功的情况下,设置所述升级完成标志表征升级完成,并设置所述升级开始标志表征升级结束;

通过以下方式判断所述待升级程序是否升级成功:在检测到所述待升级程序的升级完成标志表征升级完成、且升级开始标志表征升级结束的情况下,确定所述待升级程序升级成功;

在检测到所述待升级程序的升级开始标志表征开始升级、或升级完成标志表征未升级完成的情况下,确定所述待升级程序升级失败。

5.根据权利要求1‑4中任一项所述的方法,其特征在于,所述第二程序的运行文件的文件头中携带校验信息,所述校验信息包括预设的校验信息起始标识、数据长度、校验参考值,所述方法还包括:

在所述运行文件的文件头中查找所述校验信息起始标识,从查找到的校验信息起始标识后,读取所述数据长度和校验参考值;

自所述文件头后第一个字符开始,读取所述数据长度的数据;

按照预设的校验方式计算所读取的数据的校验值,在所述校验值与所述校验参考值一致的情况下,确定所述运行文件校验通过;

在所述第一程序调用所述第二程序时,若所述运行文件校验通过,则通过执行所述运行文件的方式运行所述第二程序。

6.根据权利要求5所述的方法,其特征在于,所述第二程序具有命令解析接口,在所述引导加载程序运行过程中,所述第一程序与所述第二程序之间通过所述命令解析接口进行数据交互;

所述第一程序用于获得待执行命令,并对所述待执行命令进行解析,在解析成功的情况下执行所述待执行命令,在解析失败的情况下通过所述命令解析接口将所述待执行命令发送至所述第二程序;

所述第二程序用于对接收到的待执行命令进行解析,在解析成功的情况下执行所接收的待执行命令。

7.根据权利要求6所述的方法,其特征在于,所述引导加载程序中还包括待执行脚本,所述第一程序具体用于接收用户输入的待执行命令或读取所述待执行脚本中的待执行命令;

在需要对所述引导加载程序进行升级时,所述方法还包括:获得所述待执行脚本的脚本升级文件,基于所获得的脚本升级文件对所述待执行脚本进行升级。

8.一种引导加载程序升级装置,其特征在于,所述引导加载程序安装于电子设备中,所述引导加载程序包括:第一程序和第二程序,所述第一程序用于引导所述电子设备的操作系统内核启动以及调用所述第二程序,所述第二程序用于实现除启动所述操作系统内核外的其他功能,所述装置包括:

文件获得模块,用于在所述第一程序或所述操作系统内核处于工作状态的情况下,若需要对所述引导加载程序进行升级,获得所述第二程序的升级文件;

程序升级模块,用于基于所述升级文件对所述第二程序进行升级,以实现对所述引导加载程序升级。

9.根据权利要求8所述的装置,其特征在于,所述第二程序包括主程序和所述主程序的备份程序,所述主程序当前处于可调用状态,所述备份程序当前处于不可调用状态,所述程序升级模块,包括:

第一升级单元,用于基于所述升级文件对所述备份程序进行升级;

第二升级单元,用于在所述备份程序升级失败的情况下,拷贝所述主程序覆盖升级失败的备份程序,并返回所述基于所述升级文件对所述备份程序进行升级的步骤;

第三升级单元,用于在所述备份程序升级成功的情况下,将升级成功的备份程序设置为可调用状态,并将所述主程序设置为不可调用状态,基于所述升级文件对所述主程序进行升级;

第四升级单元,用于在所述主程序升级失败的情况下,重新对所述主程序进行升级;

所述第四升级单元,具体用于:

在所述主程序升级失败的情况下,重新基于所述升级文件对所述主程序进行升级;或在所述主程序升级失败的情况下,拷贝升级后的备份程序覆盖升级失败的主程序;

所述装置还包括升级设置模块,用于按照以下过程对待升级程序进行升级,其中,所述待升级程序为所述主程序或备份程序:基于所述升级文件对所述待升级程序进行升级,其中,在升级成功之前,所述待升级程序的开始升级标志被设置为表征开始升级,所述待升级程序的升级完成标志被设置为表征未升级完成;

在升级成功的情况下,设置所述升级完成标志表征升级完成,并设置所述升级开始标志表征升级结束;

所述装置还包括升级判断模块,用于通过以下方式判断所述待升级程序是否升级成功:

在检测到所述待升级程序的升级完成标志表征升级完成、且升级开始标志表征升级结束的情况下,确定所述待升级程序升级成功;

在检测到所述待升级程序的升级开始标志表征开始升级、或升级完成标志表征未升级完成的情况下,确定所述待升级程序升级失败;

所述第二程序的运行文件的文件头中携带校验信息,所述校验信息包括预设的校验信息起始标识、数据长度、校验参考值,所述装置还包括文件校验模块,用于:在所述运行文件的文件头中查找所述校验信息起始标识,从查找到的校验信息起始标识后,读取所述数据长度和校验参考值;

自所述文件头后第一个字符开始,读取所述数据长度的数据;

按照预设的校验方式计算所读取的数据的校验值,在所述校验值与所述校验参考值一致的情况下,确定所述运行文件校验通过;

在所述第一程序调用所述第二程序时,若所述运行文件校验通过,则通过执行所述运行文件的方式运行所述第二程序;

所述第二程序具有命令解析接口,在所述引导加载程序运行过程中,所述第一程序与所述第二程序之间通过所述命令解析接口进行数据交互;

所述第一程序用于获得待执行命令,并对所述待执行命令进行解析,在解析成功的情况下执行所述待执行命令,在解析失败的情况下通过所述命令解析接口将所述待执行命令发送至所述第二程序;

所述第二程序用于对接收到的待执行命令进行解析,在解析成功的情况下执行所接收的待执行命令;

所述引导加载程序中还包括待执行脚本,所述第一程序具体用于接收用户输入的待执行命令或读取所述待执行脚本中的待执行命令;

所述装置还包括脚本升级模块,用于:在需要对所述引导加载程序进行升级时,获得所述待执行脚本的脚本升级文件,基于所获得的脚本升级文件对所述待执行脚本进行升级。

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

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现权利要求1‑7任一所述的方法。

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