CN112527371B - 一种引导加载程序升级方法、装置、电子设备及存储介质 - Google Patents
一种引导加载程序升级方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112527371B CN112527371B CN202011494888.0A CN202011494888A CN112527371B CN 112527371 B CN112527371 B CN 112527371B CN 202011494888 A CN202011494888 A CN 202011494888A CN 112527371 B CN112527371 B CN 112527371B
- Authority
- CN
- China
- Prior art keywords
- program
- upgrading
- upgrade
- upgraded
- file
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 230000006870 function Effects 0.000 claims abstract description 31
- 238000012795 verification Methods 0.000 claims description 87
- 230000008569 process Effects 0.000 claims description 24
- 238000004891 communication Methods 0.000 claims description 18
- 230000015654 memory Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 11
- 230000003993 interaction Effects 0.000 claims description 6
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Abstract
本申请实施例提供了一种引导加载程序升级方法、装置、电子设备及存储介质,涉及计算机技术领域,包括:所述引导加载程序安装于电子设备中,所述引导加载程序包括:第一程序和第二程序,所述第一程序用于引导所述电子设备的操作系统内核启动以及调用所述第二程序,所述第二程序用于实现除启动所述操作系统内核外的其他功能,所述方法包括:在所述第一程序或所述操作系统内核处于工作状态的情况下,若需要对所述引导加载程序进行升级,获得所述第二程序的升级文件;基于所述升级文件对所述第二程序进行升级,以实现对所述引导加载程序升级。应用本申请实施例提供的引导加载程序升级方案,可以降低升级引导加载程序的风险。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种引导加载程序升级方法、装置、电子设备及存储介质。
背景技术
Uboot(Universal Boot Loader,通用Bootloader)是一种主要用于嵌入式系统的引导加载程序,用于在操作系统内核运行之前为操作系统准备正确的运行环境,例如,初始化硬件设备、初始化内存、初始化时钟、启动操作系统内核等。除此之外,Uboot还可以用于启动开机画面、读取USB(Universal Serial Bus,通用串行总线)设备、下载数据等。
现有技术中,Uboot在安装到电子设备上后,通常需要对电子设备中安装的Uboot进行升级。由于Uboot中包含运行操作系统内核的关键程序,一旦Uboot的升级过程出现问题,则会导致整个操作系统无法启动。可见,现有技术中存在升级Uboot风险较大的问题。
发明内容
本申请实施例的目的在于提供一种引导加载程序升级方法、装置、电子设备及存储介质,以降低升级引导加载程序的风险。具体技术方案如下:
第一方面,本申请实施例提供了一种引导加载程序升级方法,所述引导加载程序安装于电子设备中,所述引导加载程序包括:第一程序和第二程序,所述第一程序用于引导所述电子设备的操作系统内核启动以及调用所述第二程序,所述第二程序用于实现除启动所述操作系统内核外的其他功能,所述方法包括:
在所述第一程序或所述操作系统内核处于工作状态的情况下,若需要对所述引导加载程序进行升级,获得所述第二程序的升级文件;
基于所述升级文件对所述第二程序进行升级,以实现对所述引导加载程序升级。
本申请的一个实施例中,所述第二程序包括主程序和所述主程序的备份程序,所述主程序当前处于可调用状态,所述备份程序当前处于不可调用状态,所述基于所述升级文件对所述第二程序进行升级,包括:
基于所述升级文件对所述备份程序进行升级;
在所述备份程序升级失败的情况下,拷贝所述主程序覆盖升级失败的备份程序,并返回所述基于所述升级文件对所述备份程序进行升级的步骤;
在所述备份程序升级成功的情况下,将升级成功的备份程序设置为可调用状态,并将所述主程序设置为不可调用状态,基于所述升级文件对所述主程序进行升级;
在所述主程序升级失败的情况下,重新对所述主程序进行升级。
本申请的一个实施例中,所述重新对所述主程序进行升级,包括:
重新基于所述升级文件对所述主程序进行升级;或
拷贝升级后的备份程序覆盖升级失败的主程序。
本申请的一个实施例中,按照以下过程对待升级程序进行升级,其中,所述待升级程序为所述主程序或备份程序:
基于所述升级文件对所述待升级程序进行升级,其中,在升级成功之前,所述待升级程序的开始升级标志被设置为表征开始升级,所述待升级程序的升级完成标志被设置为表征未升级完成;
在升级成功的情况下,设置所述升级完成标志表征升级完成,并设置所述升级开始标志表征升级结束;
通过以下方式判断所述待升级程序是否升级成功:
在检测到所述待升级程序的升级完成标志表征升级完成、且升级开始标志表征升级结束的情况下,确定所述待升级程序升级成功;
在检测到所述待升级程序的升级开始标志表征开始升级、或升级完成标志表征未升级完成的情况下,确定所述待升级程序升级失败。
本申请的一个实施例中,所述第二程序的运行文件的文件头中携带校验信息,所述校验信息包括预设的校验信息起始标识、数据长度、校验参考值,所述方法还包括:
在所述运行文件的文件头中查找所述校验信息起始标识,从查找到的校验信息起始标识后,读取所述数据长度和校验参考值;
自所述文件头后第一个字符开始,读取所述数据长度的数据;
按照预设的校验方式计算所读取的数据的校验值,在所述校验值与所述校验参考值一致的情况下,确定所述运行文件校验通过;
在所述第一程序调用所述第二程序时,若所述运行文件校验通过,则通过执行所述运行文件的方式运行所述第二程序。
本申请的一个实施例中,所述第二程序具有命令解析接口,在所述引导加载程序运行过程中,所述第一程序与所述第二程序之间通过所述命令解析接口进行数据交互;
所述第一程序用于获得待执行命令,并对所述待执行命令进行解析,在解析成功的情况下执行所述待执行命令,在解析失败的情况下通过所述命令解析接口将所述待执行命令发送至所述第二程序;
所述第二程序用于对接收到的待执行命令进行解析,在解析成功的情况下执行所接收的待执行命令。
本申请的一个实施例中,所述引导加载程序中还包括待执行脚本,所述第一程序具体用于接收用户输入的待执行命令或读取所述待执行脚本中的待执行命令;
在需要对所述引导加载程序进行升级时,所述方法还包括:
获得所述待执行脚本的脚本升级文件,基于所获得的脚本升级文件对所述待执行脚本进行升级。
第二方面,本申请实施例提供了一种引导加载程序升级装置,所述引导加载程序安装于电子设备中,所述引导加载程序包括:第一程序和第二程序,所述第一程序用于引导所述电子设备的操作系统内核启动以及调用所述第二程序,所述第二程序用于实现除启动所述操作系统内核外的其他功能,所述装置包括:
文件获得模块,用于在所述第一程序或所述操作系统内核处于工作状态的情况下,若需要对所述引导加载程序进行升级,获得所述第二程序的升级文件;
程序升级模块,用于基于所述升级文件对所述第二程序进行升级,以实现对所述引导加载程序升级。
本申请的一个实施例中,所述第二程序包括主程序和所述主程序的备份程序,所述主程序当前处于可调用状态,所述备份程序当前处于不可调用状态,所述程序升级模块,包括:
第一升级单元,用于基于所述升级文件对所述备份程序进行升级;
第二升级单元,用于在所述备份程序升级失败的情况下,拷贝所述主程序覆盖升级失败的备份程序,并返回所述基于所述升级文件对所述备份程序进行升级的步骤;
第三升级单元,用于在所述备份程序升级成功的情况下,将升级成功的备份程序设置为可调用状态,并将所述主程序设置为不可调用状态,基于所述升级文件对所述主程序进行升级;
第四升级单元,用于在所述主程序升级失败的情况下,重新对所述主程序进行升级。
本申请的一个实施例中,所述第四升级单元,具体用于:
在所述主程序升级失败的情况下,重新基于所述升级文件对所述主程序进行升级;或
在所述主程序升级失败的情况下,拷贝升级后的备份程序覆盖升级失败的主程序。
本申请的一个实施例中,所述装置还包括升级设置模块,用于按照以下过程对待升级程序进行升级,其中,所述待升级程序为所述主程序或备份程序:
基于所述升级文件对所述待升级程序进行升级,其中,在升级成功之前,所述待升级程序的开始升级标志被设置为表征开始升级,所述待升级程序的升级完成标志被设置为表征未升级完成;
在升级成功的情况下,设置所述升级完成标志表征升级完成,并设置所述升级开始标志表征升级结束。
本申请的一个实施例中,所述装置还包括升级判断模块,用于通过以下方式判断所述待升级程序是否升级成功:
在检测到所述待升级程序的升级完成标志表征升级完成、且升级开始标志表征升级结束的情况下,确定所述待升级程序升级成功;
在检测到所述待升级程序的升级开始标志表征开始升级、或升级完成标志表征未升级完成的情况下,确定所述待升级程序升级失败。
本申请的一个实施例中,所述第二程序的运行文件的文件头中携带校验信息,所述校验信息包括预设的校验信息起始标识、数据长度、校验参考值,所述装置还包括文件校验模块,用于:
在所述运行文件的文件头中查找所述校验信息起始标识,从查找到的校验信息起始标识后,读取所述数据长度和校验参考值;
自所述文件头后第一个字符开始,读取所述数据长度的数据;
按照预设的校验方式计算所读取的数据的校验值,在所述校验值与所述校验参考值一致的情况下,确定所述运行文件校验通过;
在所述第一程序调用所述第二程序时,若所述运行文件校验通过,则通过执行所述运行文件的方式运行所述第二程序。
本申请的一个实施例中,所述第二程序具有命令解析接口,在所述引导加载程序运行过程中,所述第一程序与所述第二程序之间通过所述命令解析接口进行数据交互;
所述第一程序用于获得待执行命令,并对所述待执行命令进行解析,在解析成功的情况下执行所述待执行命令,在解析失败的情况下通过所述命令解析接口将所述待执行命令发送至所述第二程序;
所述第二程序用于对接收到的待执行命令进行解析,在解析成功的情况下执行所接收的待执行命令。
本申请的一个实施例中,所述引导加载程序中还包括待执行脚本,所述第一程序具体用于接收用户输入的待执行命令或读取所述待执行脚本中的待执行命令。
本申请的一个实施例中,所述装置还包括脚本升级模块,用于:
在需要对所述引导加载程序进行升级时,获得所述待执行脚本的脚本升级文件,基于所获得的脚本升级文件对所述待执行脚本进行升级。
第三方面,本申请实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时第一方面任一所述的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的引导加载程序升级方法。
本申请实施例有益效果:
本申请实施例提供的引导加载程序升级方案中,引导加载程序安装于电子设备中,引导加载程序包括:第一程序和第二程序,第一程序用于引导电子设备的操作系统内核启动以及调用第二程序,第二程序用于实现除启动操作系统内核外的其他功能,在第一程序或操作系统内核处于工作状态的情况下,若需要对引导加载程序进行升级,获得第二程序的升级文件;基于升级文件对第二程序进行升级,以实现对引导加载程序升级。这样只针对引导加载程序中用于实现其他功能的第二程序进行升级,而不会对用于引导操作系统内核启动的第一程序进行升级,从而可以避免引导加载程序升级过程中上述引导内核启动的功能出现问题,保证电子设备的操作系统可以启动。由此可见,应用本申请实施例提供的引导加载程序升级方案,可以降低升级引导加载程序的风险。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本申请实施例提供的一种引导加载程序升级方法的流程示意图;
图2为本申请实施例提供的一种第二程序升级方法的流程示意图;
图3为本申请实施例提供的一种校验方法的流程示意图;
图4为本申请一种命令执行方法的流程示意图;
图5为本申请实施例提供的一种引导加载程序升级装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了降低升级引导加载程序的风险,本申请实施例提供了一种引导加载程序升级方法、装置、电子设备及存储介质,下面分别进行介绍。
参见图1,图1为本申请实施例提供的一种引导加载程序升级方法的流程示意图。
引导加载程序安装于电子设备中,上述电子设备可以是NVR(Network VideoRecorder,网络视频录像机)、DVR(Digital Video Recorder,硬盘录像机)、PDA(PersonalDigital Assistant,个人数字助手)、电子计算机、手机、平板电脑等设备。电子设备中可以配置有不同的计算机系统结构,如PPC(PowerPC,精简指令集架构的中央处理器)、ARM、AVR32、MIPS、x86、68k、Nios、MicroBlaze等,基于上述不同的计算机系统结构,电子设备中可以部署有不同的操作系统,如Linux系统、Unix系统、Windows系统、Android系统等。
上述引导加载程序包括:第一程序和第二程序,第一程序用于引导电子设备的操作系统内核启动以及调用第二程序;第二程序用于实现除启动操作系统内核外的其他功能。
具体的,上述引导加载程序主要用于引导电子设备的操作系统内核启动,即引导电子设备启动操作系统,是电子设备启动后第一个运行的程序,在电子设备的操作系统启动后,上述引导加载程序即进入非工作状态。上述引导加载程序可以是Uboot程序、Breed程序等。
本申请实施例中,上述引导加载程序包括第一程序和第二程序。第一程序主要用于引导电子设备的操作系统内核启动,具体功能可以包括初始化内存、初始化硬盘、初始化时钟、初始化硬件设备等,除此之外第一程序还可以调用第二程序,例如,可以通过do_go命令来调用第二程序。第二程序用于实现其他功能,如启动开机画面、读取USB设备、下载数据等。第二程序还可以用于实现第三方定制的功能。
如图1所示,引导加载程序升级方法包括如下步骤101-步骤102。
步骤101,在第一程序或操作系统内核处于工作状态的情况下,若需要对引导加载程序进行升级,获得第二程序的升级文件。
具体的,在上述第一程序处于工作状态而操作系统处于非工作状态、或第一程序处于非工作状态而操作系统内核处于工作状态的情况下,电子设备读取文件、升级程序的功能处于可调用状态,这种情况下可以获得第二程序的升级文件。
本申请的一个实施例中,可以通过移动存储设备获得第二程序的升级文件。其中,上述移动存储设备可以是光盘、移动硬盘、U盘等。具体的,可以在电子设备上接入移动存储设备,移动存储设备中预存有第二程序的升级文件,通过读取所接入的移动存储设备获得第二程序的升级文件。
还可以通过网络传输的方式获得第二程序的升级文件,例如,通过访问服务器的方式获得升级文件,或者接收其他设备远程发送的升级文件等。
除此之外,还可以预先将第二程序的升级文件存储至电子设备的硬盘中,以便于电子设备在需要对引导加载程序进行升级时,直接从硬盘中读取上述升级文件。
步骤102,基于升级文件对第二程序进行升级,以实现对引导加载程序升级。
具体的,电子设备可以基于所获得的升级文件,对第二程序进行升级,以实现对引导加载程序的升级。
其中,在第二程序升级失败的情况下,可以基于升级文件重新对第二程序进行升级,直至升级成功。
这样只针对引导加载程序中用于实现其他功能的第二程序进行升级,而不会对用于引导操作系统内核启动的第一程序进行升级,从而可以避免引导加载程序升级过程中上述引导内核启动的功能出现问题,保证电子设备的操作系统可以启动。由此可见,应用上述实施例提供的引导加载程序升级方案,可以降低升级引导加载程序的风险。
除此之外,在应用本申请实施例可以降低升级引导加载程序的风险的情况下,在需要升级引导加载程序时,可以远程向电子设备发送第二程序的升级文件,远程控制电子设备基于上述升级文件对第二程序进行升级,从而实现远程升级电子设备的引导加载程序,可以减少工作人员的工作量,提高工作效率。
参见图2,图2为本申请实施例提供的一种第二程序升级方法的流程示意图,第二程序可以包括主程序和主程序的备份程序,主程序当前处于可调用状态,备份程序当前处于不可调用状态。其中,上述可调用状态可以理解为工作状态,不可调用状态可以理解为非工作状态,处于工作状态的程序能够用于实现第二程序的功能。这样对于上述步骤102在基于升级文件对第二程序进行升级时,包括如下步骤201至步骤204。
步骤201,基于升级文件对备份程序进行升级。
具体的,首先基于升级文件对第二程序的备份程序进行升级,升级过程中,第二程序的主程序可以处于工作状态或可调用状态,这样在对第二程序进行升级过程中,不会影响第二程序的功能。
步骤202,在备份程序升级失败的情况下,拷贝主程序覆盖升级失败的备份程序,并返回步骤201。
具体的,在备份程序升级失败的情况下,可以拷贝主程序,并对升级失败的备份程序进行覆盖,从而保证备份程序处于正常状态。然后可以返回上述步骤201,继续基于升级文件对备份程序进行升级。
步骤203,在备份程序升级成功的情况下,将升级成功的备份程序设置为可调用状态,并将主程序设置为不可调用状态,基于升级文件对主程序进行升级。
具体的,在备份程序升级成功的情况下,则可以将第二程序中可调用的程序设置为升级成功的备份程序,也就是使得升级成功的备份程序处于可调用的工作状态,并将原本处于可调用状态的主程序设置为不可调用状态,然后基于升级文件对上述主程序进行升级。这样在升级过程中,由备份程序接替主程序,当需要调用第二程序时,可以调用升级成功的备份程序来实现第二程序的功能。
步骤204,在主程序升级失败的情况下,重新对主程序进行升级。
本申请的一个实施例中,在重新对主程序进行升级时,可以重新基于升级文件对主程序进行升级。除此之外,还可以拷贝升级后的备份程序覆盖升级失败的主程序,由于备份程序已经升级成功,通过拷贝备份程序覆盖升级失败的主程序的方式,可以实现对主程序的升级。
应用上述实施例提供的第二程序升级方案,由于第二程序包括主程序和备份程序,在备份程序升级成功的情况下才会对主程序进行升级,这样即使因中途断电或系统异常等原因导致其中一个程序升级失败,也可以由另一个程序实现第二程序的功能,保证第二程序的可靠度。
另外,本申请的一个实施例中,对于上述步骤202,在备份程序升级失败的情况下,也可以直接继续基于升级文件对备份程序进行升级,直至备份程序升级成功。
本申请的一个实施例中,对于上述图2所示实施例,可以按照以下过程A-B对待升级程序进行升级,其中,待升级程序为主程序或备份程序:
A、基于升级文件对待升级程序进行升级。
其中,在升级成功之前,待升级程序的开始升级标志被设置为表征开始升级,待升级程序的升级完成标志被设置为表征未升级完成。
具体的,在待升级程序升级成功之前,可以首先设置待升级程序的开始升级标志表征开始升级,并设置待升级程序的升级完成标志表征未升级完成。
在待升级程序升级成功之前,首先设置待升级程序的开始升级标志,以使得该标志表征开始对待升级程序进行升级。例如,待升级程序的开始升级标志位由1位二进数表示,当该位取值为0时,表征升级结束,当该位取值为1时,表征开始升级,这种情况下,在待升级程序升级成功之前,可以首先将上述开始升级标志位设置为1;
在待升级程序升级成功之前,还可以设置待升级程序的升级完成标志,以使得该标志表征待升级程序未升级完成。例如,待升级程序的升级完成标志位由1位二进数表示,当该位取值为0时,表征未升级完成,当该位取值为1时,表征升级完成,这种情况下,在待升级程序升级成功之前,可以将上述升级完成标志位设置为0。
B、在升级成功的情况下,设置升级完成标志表征升级完成,并设置升级开始标志表征升级结束。
具体的,在对待升级程序升级成功后,可以设置上述升级完成标志表征待升级程序升级完成,并设置上述升级开始标志表征升级结束。例如,可以将升级完成标志位设置为1,将升级开始标志位设置为0。
对于上述图2所示实施例,可以首先按照上述过程对备份程序进行升级,然后按照上述过程对主程序进行升级。
在上述升级过程的基础上,可以通过以下方式判断待升级程序是否升级成功:
在检测到待升级程序的升级完成标志表征升级完成、且升级开始标志表征升级结束的情况下,确定待升级程序升级成功;
在检测到待升级程序的升级开始标志表征开始升级、或升级完成标志表征未升级完成的情况下,确定待升级程序升级失败。
具体的,可以对待升级程序的升级开始标志和升级完成标志进行检测,在检测到升级完成标志表征升级完成、且升级开始标志表征升级结束的情况下,说明上述升级过程执行完毕,已经对待升级程序升级完成;而在检测到待升级程序的升级开始标志表征开始升级,或升级完成标志表征未升级完成的情况下,说明上述升级过程中断,因此可以认为待升级程序升级失败。
例如,若检测到升级开始标志位为0、且升级完成标志位为1,则说明待升级程序升级成功;若检测到升级开始标志位位1、或升级完成标志位为0,则说明待升级程序升级失败。
除此之外,本申请的一个实施例中,也可以仅设置升级开始标志或升级完成标志。具体的,可以在升级前设置升级开始标志表征开始升级,在升级完成后设置升级开始标志表征升级结束,这样在检测到升级开始标志表征升级结束后,即可确定待升级程序升级完成,否则,认为待升级程序升级失败。
或者在升级前设置升级完成标志表征未完成升级,在升级完成后设置升级完成标志表征升级完成,这样在检测到升级完成标志表征升级完成后,即可确定待升级程序升级完成,否则,认为待升级程序升级失败。
本申请的一个实施例中,第二程序的运行文件的文件头中可以携带校验信息,校验信息可以包括预设的校验信息起始标识、数据长度、校验参考值。
其中,上述校验信息起始标识用于标识运行文件的文件头中校验信息的起始位置,校验信息中的数据长度、校验参考值位于上述校验信息起始标识之后。
上述数据长度为:完整的第二程序的运行文件的长度。
校验参考值为:预先基于预设的校验方式对完整的第二程序的运行文件进行校验所得的参考值。其中,上述校验方式可以是CRC32(Cyclic Redundancy Check,循环冗余校验)校验法、奇偶校验法、MD5(Message Digest Algorithm,消息摘要算法)校验法等。
基于上述校验信息,可以对电子设备中安装或升级后的第二程序的运行文件进行校验。参见图3,图3为本申请实施例提供的一种校验方法的流程示意图,该方法包括如下步骤301至步骤304。
步骤301,在运行文件的文件头中查找校验信息起始标识,从查找到的校验信息起始标识后,读取数据长度和校验参考值。
具体的,电子设备中存储有第二程序的运行文件,上述运行文件包含文件头,文件头内携带校验信息,可以在上述文件头中查找校验信息起始标识,基于该校验信息起始标识可以查找到文件头内携带的校验信息,由于数据长度、校验参考值通常位于校验信息起始标识之后,因此可以在查找到的校验信息起始标识后读取数据长度、校验参考值等校验信息。
本申请的一个实施例中,文件头通常位于运行文件的开始位置之前,可以按照预设的文件头标识在运行文件中查找文件头。
步骤302,自文件头后第一个字符开始,读取数据长度的数据。
具体的,由于文件头通常存储在运行文件的开始位置之前,因此在上述步骤301中获得数据长度后,可以自文件头后第一个字符开始,读取上述数据长度的数据,所读取的数据即为具有完整的运行文件长度的数据。
步骤303,按照预设的校验方式计算所读取的数据的校验值,在校验值与校验参考值一致的情况下,确定运行文件校验通过。
具体的,在读取文件之后,可以按照预设的校验方式对所读取的数据进行计算,从而得到校验值,然后对上述校验值与文件头中携带的校验参考值进行对比,若二者一致,则说明所读取的数据为正确的、完整的第二程序的运行文件,因此可以确定运行文件校验通过,否则,认为可以认为运行文件出错,校验不通过。
步骤304,在第一程序调用第二程序时,若运行文件校验通过,则通过执行运行文件的方式运行第二程序。
具体的,在第一程序需要调用第二程序时,可以确定第二程序的运行文件是否校验通过,若为是,则可以通过执行上述运行文件的方式运行第二程序,若未通过校验,则不执行上述运行文件,另外可以进行运行文件报错,以提示用户当前的运行文件未校验通过。通过上述方式对运行文件进行校验,可以防止因运行文件缺失导致第二程序运行过程中出错,提高第二程序运行的安全性。
本申请的一个实施例中,可以在每次需要调用第二程序时,都对第二程序的运行文件进行校验,即都执行一遍上述301-303的步骤。
也可以是在安装或升级完第二程序之后,或者在首次运行安装或升级后的第二程序之前,按照上述步骤301-步骤303对第二程序的运行文件校验一次,若校验通过,则可以设置校验通过标识,这样在后续调用第二程序时,只需要检测是否存在校验通过标识,若存在,则可以直接执行上述运行文件,否则不执行。
除此之外,还可以预先设定校验有效期,即在每次校验运行文件通过后,若在上述校验有效期内执行该运行文件,则无需再次进行校验;若超出上述校验有效期后需要执行该运行文件,则需要重新对第二程序的运行文件进行校验。其中,上述校验有效期可以是1周、2周、1个月等。
本申请的一个实施例中,第二程序具有命令解析接口,上述命令解析接口用于接收第一程序发送的命令,并对所接收的命令进行解析。在引导加载程序运行过程中,第一程序与第二程序之间可以通过命令解析接口进行数据交互。这样在上述引导加载程序运行过程中:
第一程序用于获得待执行命令,并对待执行命令进行解析,在解析成功的情况下执行待执行命令,在解析失败的情况下通过命令解析接口将待执行命令发送至第二程序;
第二程序用于对接收到的待执行命令进行解析,在解析成功的情况下执行所接收的待执行命令。
具体的,第一程序同样具有命令解析接口,该命令解析接口可以用于接收用户输入的命令,也可以获得脚本中包含的命令等。第一程序在通过命令解析接口获得待执行命令后,可以对多接收到的待执行命令进行解析,若解析成功,则说明第一程序可以执行该命令,这种情况下第一程序可以直接执行所接收的待执行命令;若解析失败,则说明第一程序无法执行该命令,这种情况下,第一程序可以将该待执行命令通过第二程序的命令解析接口,传输至第二程序。
另外,在第一程序无法解析上述待执行命令的情况下,第一程序可以向用户发出提示信息。
第二程序在通过命令解析接口接收到第一程序传输的待执行命令后,可以利用自身的命令解析接口对上述待执行命令进行解析,若解析成功,则第二程序可以执行所接收到的待执行命令,若解析失败,则说明第二程序也无法识别该执行命令,这种情况下可以进行执行命令报错,以提示用户该执行命令无法响应。
本申请的一个实施例中,引导加载程序中还可以包括待执行脚本,其中,待执行脚本中包含至少一待执行命令。第一程序具体用于接收用户输入的待执行命令或读取待执行脚本中的待执行命令。
具体的,可以将期望引导加载程序执行的命令写入待执行脚本中,进而调用引导加载程序执行上述待执行脚本,从而上述引导加载程序可以执行待执行命令中用户期望的命令。其中,上述待执行脚本可以是bootcmd脚本等。通过修改上述待执行脚本,用户可以自由设定上述引导加载程序是否执行命令、何时执行命令、如何执行命令等。并且,若在执行过程中出现问题,用户可以通过中止命令控制引导加载程序中止待执行命令,上述中止命令可以是ctrl+u等。
例如,假设上述引导加载程序中第一程序可以执行命令M1、M2、M3,第二程序可以执行命令M4、M5、M6,用户根据需求可以设定待执行脚本包含的待执行命令为:
[M1、M6、M4、M2]
这样在调用引导加载程序执行上述待执行脚本时,首先由第一程序执行上述命令M1,然后由第二程序执行上述命令M6、M4,最后再由第一程序执行命令M2。
鉴于上述情况,本申请的一个实施例中,在需要对引导加载程序进行升级时,还可以获得待执行脚本的脚本升级文件,基于所获得的脚本升级文件对待执行脚本进行升级。这样便于用户通过修改待执行脚本,自由地设定引导加载程序所执行的命令。其中,可以将脚本升级文件和第二程序的升级文件打包一起传入电子设备,便于后续实现对第二程序和执行脚本的升级。
参见图4,图4为本申请一种命令执行方法的流程示意图,该方法包括如下步骤401至步骤405。
步骤401,启动第一程序;
步骤402,对第二程序进行校验,其中,在校验通过的情况下,确定第二程序可调用,并执行后续步骤;
步骤403,获得待执行命令,其中,可以获得用户输入的待执行命令,也可以读取待执行脚本中的待执行命令;
步骤404,基于第一程序对待执行命令进行解析,在解析成功的情况下,由第一程序执行上述待执行命令,在解析失败的情况下执行步骤405;
步骤405,由第一程序将待执行命令发送至第二程序,第二程序对待执行命令进行解析,在解析成功的情况下执行待执行命令。
上述实施例提供的引导加载程序升级方案中,引导加载程序安装于电子设备中,引导加载程序包括:第一程序和第二程序,第一程序用于引导电子设备的操作系统内核启动以及调用第二程序,第二程序用于实现除启动操作系统内核外的其他功能,在第一程序或操作系统内核处于工作状态的情况下,若需要对引导加载程序进行升级,获得第二程序的升级文件;基于升级文件对第二程序进行升级,以实现对引导加载程序升级。这样只针对引导加载程序中用于实现其他功能的第二程序进行升级,而不会对用于引导操作系统内核启动的第一程序进行升级,从而可以避免引导加载程序升级过程中上述引导内核启动的功能出现问题,保证电子设备的操作系统可以启动。由此可见,应用上述实施例提供的引导加载程序升级方案,可以降低升级引导加载程序的风险。
参见图5,图5为本申请实施例提供的一种引导加载程序升级装置的结构示意图,所述引导加载程序安装于电子设备中,所述引导加载程序包括:第一程序和第二程序,所述第一程序用于引导所述电子设备的操作系统内核启动以及调用所述第二程序,所述第二程序用于实现除启动所述操作系统内核外的其他功能,所述装置包括:
文件获得模块501,用于在所述第一程序或所述操作系统内核处于工作状态的情况下,若需要对所述引导加载程序进行升级,获得所述第二程序的升级文件;
程序升级模块502,用于基于所述升级文件对所述第二程序进行升级,以实现对所述引导加载程序升级。
本申请的一个实施例中,所述第二程序包括主程序和所述主程序的备份程序,所述主程序当前处于可调用状态,所述备份程序当前处于不可调用状态,所述程序升级模块502,包括:
第一升级单元,用于基于所述升级文件对所述备份程序进行升级;
第二升级单元,用于在所述备份程序升级失败的情况下,拷贝所述主程序覆盖升级失败的备份程序,并返回所述基于所述升级文件对所述备份程序进行升级的步骤;
第三升级单元,用于在所述备份程序升级成功的情况下,将升级成功的备份程序设置为可调用状态,并将所述主程序设置为不可调用状态,基于所述升级文件对所述主程序进行升级;
第四升级单元,用于在所述主程序升级失败的情况下,重新对所述主程序进行升级。
本申请的一个实施例中,所述第四升级单元,具体用于:
在所述主程序升级失败的情况下,重新基于所述升级文件对所述主程序进行升级;或
在所述主程序升级失败的情况下,拷贝升级后的备份程序覆盖升级失败的主程序。
本申请的一个实施例中,所述装置还包括升级设置模块,用于按照以下过程对待升级程序进行升级,其中,所述待升级程序为所述主程序或备份程序:
基于所述升级文件对所述待升级程序进行升级,其中,在升级成功之前,所述待升级程序的开始升级标志被设置为表征开始升级,所述待升级程序的升级完成标志被设置为表征未升级完成;
在升级成功的情况下,设置所述升级完成标志表征升级完成,并设置所述升级开始标志表征升级结束。
本申请的一个实施例中,所述装置还包括升级判断模块,用于通过以下方式判断所述待升级程序是否升级成功:
在检测到所述待升级程序的升级完成标志表征升级完成、且升级开始标志表征升级结束的情况下,确定所述待升级程序升级成功;
在检测到所述待升级程序的升级开始标志表征开始升级、或升级完成标志表征未升级完成的情况下,确定所述待升级程序升级失败。
本申请的一个实施例中,所述第二程序的运行文件的文件头中携带校验信息,所述校验信息包括预设的校验信息起始标识、数据长度、校验参考值,所述装置还包括文件校验模块,用于:
在所述运行文件的文件头中查找所述校验信息起始标识,从查找到的校验信息起始标识后,读取所述数据长度和校验参考值;
自所述文件头后第一个字符开始,读取所述数据长度的数据;
按照预设的校验方式计算所读取的数据的校验值,在所述校验值与所述校验参考值一致的情况下,确定所述运行文件校验通过;
在所述第一程序调用所述第二程序时,若所述运行文件校验通过,则通过执行所述运行文件的方式运行所述第二程序。
本申请的一个实施例中,所述第二程序具有命令解析接口,在所述引导加载程序运行过程中,所述第一程序与所述第二程序之间通过所述命令解析接口进行数据交互;
所述第一程序用于获得待执行命令,并对所述待执行命令进行解析,在解析成功的情况下执行所述待执行命令,在解析失败的情况下通过所述命令解析接口将所述待执行命令发送至所述第二程序;
所述第二程序用于对接收到的待执行命令进行解析,在解析成功的情况下执行所接收的待执行命令。
本申请的一个实施例中,所述引导加载程序中还包括待执行脚本,所述第一程序具体用于接收用户输入的待执行命令或读取所述待执行脚本中的待执行命令。
本申请的一个实施例中,所述装置还包括脚本升级模块,用于:
在需要对所述引导加载程序进行升级时,获得所述待执行脚本的脚本升级文件,基于所获得的脚本升级文件对所述待执行脚本进行升级。
上述实施例提供的引导加载程序升级方案中,引导加载程序安装于电子设备中,引导加载程序包括:第一程序和第二程序,第一程序用于引导电子设备的操作系统内核启动以及调用第二程序,第二程序用于实现除启动操作系统内核外的其他功能,在第一程序或操作系统内核处于工作状态的情况下,若需要对引导加载程序进行升级,获得第二程序的升级文件;基于升级文件对第二程序进行升级,以实现对引导加载程序升级。这样只针对引导加载程序中用于实现其他功能的第二程序进行升级,而不会对用于引导操作系统内核启动的第一程序进行升级,从而可以避免引导加载程序升级过程中上述引导内核启动的功能出现问题,保证电子设备的操作系统可以启动。由此可见,应用上述实施例提供的引导加载程序升级方案,可以降低升级引导加载程序的风险。
本申请实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现引导加载程序升级方法步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一引导加载程序升级方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一引导加载程序升级方法。
上述实施例提供的引导加载程序升级方案中,引导加载程序安装于电子设备中,引导加载程序包括:第一程序和第二程序,第一程序用于引导电子设备的操作系统内核启动以及调用第二程序,第二程序用于实现除启动操作系统内核外的其他功能,在第一程序或操作系统内核处于工作状态的情况下,若需要对引导加载程序进行升级,获得第二程序的升级文件;基于升级文件对第二程序进行升级,以实现对引导加载程序升级。这样只针对引导加载程序中用于实现其他功能的第二程序进行升级,而不会对用于引导操作系统内核启动的第一程序进行升级,从而可以避免引导加载程序升级过程中上述引导内核启动的功能出现问题,保证电子设备的操作系统可以启动。由此可见,应用上述实施例提供的引导加载程序升级方案,可以降低升级引导加载程序的风险。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、电子设备实施例、计算机可读存储介质实施例、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (11)
1.一种引导加载程序升级方法,其特征在于,所述引导加载程序安装于电子设备中,所述引导加载程序包括:第一程序和第二程序,所述第一程序用于引导所述电子设备的操作系统内核启动以及调用所述第二程序,所述第二程序用于实现除启动所述操作系统内核外的其他功能;其中,所述其他功能包括:画面启动、电子设备读取和数据下载中的至少一种,所述方法包括:
在所述第一程序或所述操作系统内核处于工作状态的情况下,若需要对所述引导加载程序进行升级,获得所述第二程序的升级文件;
基于所述升级文件对所述第二程序进行升级,以实现对所述引导加载程序升级。
2.根据权利要求1所述的方法,其特征在于,所述第二程序包括主程序和所述主程序的备份程序,所述主程序当前处于可调用状态,所述备份程序当前处于不可调用状态,所述基于所述升级文件对所述第二程序进行升级,包括:
基于所述升级文件对所述备份程序进行升级;
在所述备份程序升级失败的情况下,拷贝所述主程序覆盖升级失败的备份程序,并返回所述基于所述升级文件对所述备份程序进行升级的步骤;
在所述备份程序升级成功的情况下,将升级成功的备份程序设置为可调用状态,并将所述主程序设置为不可调用状态,基于所述升级文件对所述主程序进行升级;
在所述主程序升级失败的情况下,重新对所述主程序进行升级。
3.根据权利要求2所述的方法,其特征在于,所述重新对所述主程序进行升级,包括:
重新基于所述升级文件对所述主程序进行升级;或
拷贝升级后的备份程序覆盖升级失败的主程序。
4.根据权利要求2所述的方法,其特征在于,按照以下过程对待升级程序进行升级,其中,所述待升级程序为所述主程序或备份程序:
基于所述升级文件对所述待升级程序进行升级,其中,在升级成功之前,所述待升级程序的开始升级标志被设置为表征开始升级,所述待升级程序的升级完成标志被设置为表征未升级完成;
在升级成功的情况下,设置所述升级完成标志表征升级完成,并设置所述升级开始标志表征升级结束;
通过以下方式判断所述待升级程序是否升级成功:
在检测到所述待升级程序的升级完成标志表征升级完成、且升级开始标志表征升级结束的情况下,确定所述待升级程序升级成功;
在检测到所述待升级程序的升级开始标志表征开始升级、或升级完成标志表征未升级完成的情况下,确定所述待升级程序升级失败。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述第二程序的运行文件的文件头中携带校验信息,所述校验信息包括预设的校验信息起始标识、数据长度、校验参考值,所述方法还包括:
在所述运行文件的文件头中查找所述校验信息起始标识,从查找到的校验信息起始标识后,读取所述数据长度和校验参考值;
自所述文件头后第一个字符开始,读取所述数据长度的数据;
按照预设的校验方式计算所读取的数据的校验值,在所述校验值与所述校验参考值一致的情况下,确定所述运行文件校验通过;
在所述第一程序调用所述第二程序时,若所述运行文件校验通过,则通过执行所述运行文件的方式运行所述第二程序。
6.根据权利要求5所述的方法,其特征在于,所述第二程序具有命令解析接口,在所述引导加载程序运行过程中,所述第一程序与所述第二程序之间通过所述命令解析接口进行数据交互;
所述第一程序用于获得待执行命令,并对所述待执行命令进行解析,在解析成功的情况下执行所述待执行命令,在解析失败的情况下通过所述命令解析接口将所述待执行命令发送至所述第二程序;
所述第二程序用于对接收到的待执行命令进行解析,在解析成功的情况下执行所接收的待执行命令。
7.根据权利要求6所述的方法,其特征在于,所述引导加载程序中还包括待执行脚本,所述第一程序具体用于接收用户输入的待执行命令或读取所述待执行脚本中的待执行命令;
在需要对所述引导加载程序进行升级时,所述方法还包括:
获得所述待执行脚本的脚本升级文件,基于所获得的脚本升级文件对所述待执行脚本进行升级。
8.一种引导加载程序升级装置,其特征在于,所述引导加载程序安装于电子设备中,所述引导加载程序包括:第一程序和第二程序,所述第一程序用于引导所述电子设备的操作系统内核启动以及调用所述第二程序,所述第二程序用于实现除启动所述操作系统内核外的其他功能;其中,所述其他功能包括:画面启动、电子设备读取和数据下载中的至少一种,所述装置包括:
文件获得模块,用于在所述第一程序或所述操作系统内核处于工作状态的情况下,若需要对所述引导加载程序进行升级,获得所述第二程序的升级文件;
程序升级模块,用于基于所述升级文件对所述第二程序进行升级,以实现对所述引导加载程序升级。
9.根据权利要求8所述的装置,其特征在于,所述第二程序包括主程序和所述主程序的备份程序,所述主程序当前处于可调用状态,所述备份程序当前处于不可调用状态,所述程序升级模块,包括:
第一升级单元,用于基于所述升级文件对所述备份程序进行升级;
第二升级单元,用于在所述备份程序升级失败的情况下,拷贝所述主程序覆盖升级失败的备份程序,并返回所述基于所述升级文件对所述备份程序进行升级的步骤;
第三升级单元,用于在所述备份程序升级成功的情况下,将升级成功的备份程序设置为可调用状态,并将所述主程序设置为不可调用状态,基于所述升级文件对所述主程序进行升级;
第四升级单元,用于在所述主程序升级失败的情况下,重新对所述主程序进行升级;
所述第四升级单元,具体用于:
在所述主程序升级失败的情况下,重新基于所述升级文件对所述主程序进行升级;或
在所述主程序升级失败的情况下,拷贝升级后的备份程序覆盖升级失败的主程序;
所述装置还包括升级设置模块,用于按照以下过程对待升级程序进行升级,其中,所述待升级程序为所述主程序或备份程序:
基于所述升级文件对所述待升级程序进行升级,其中,在升级成功之前,所述待升级程序的开始升级标志被设置为表征开始升级,所述待升级程序的升级完成标志被设置为表征未升级完成;
在升级成功的情况下,设置所述升级完成标志表征升级完成,并设置所述升级开始标志表征升级结束;
所述装置还包括升级判断模块,用于通过以下方式判断所述待升级程序是否升级成功:
在检测到所述待升级程序的升级完成标志表征升级完成、且升级开始标志表征升级结束的情况下,确定所述待升级程序升级成功;
在检测到所述待升级程序的升级开始标志表征开始升级、或升级完成标志表征未升级完成的情况下,确定所述待升级程序升级失败;
所述第二程序的运行文件的文件头中携带校验信息,所述校验信息包括预设的校验信息起始标识、数据长度、校验参考值,所述装置还包括文件校验模块,用于:
在所述运行文件的文件头中查找所述校验信息起始标识,从查找到的校验信息起始标识后,读取所述数据长度和校验参考值;
自所述文件头后第一个字符开始,读取所述数据长度的数据;
按照预设的校验方式计算所读取的数据的校验值,在所述校验值与所述校验参考值一致的情况下,确定所述运行文件校验通过;
在所述第一程序调用所述第二程序时,若所述运行文件校验通过,则通过执行所述运行文件的方式运行所述第二程序;
所述第二程序具有命令解析接口,在所述引导加载程序运行过程中,所述第一程序与所述第二程序之间通过所述命令解析接口进行数据交互;
所述第一程序用于获得待执行命令,并对所述待执行命令进行解析,在解析成功的情况下执行所述待执行命令,在解析失败的情况下通过所述命令解析接口将所述待执行命令发送至所述第二程序;
所述第二程序用于对接收到的待执行命令进行解析,在解析成功的情况下执行所接收的待执行命令;
所述引导加载程序中还包括待执行脚本,所述第一程序具体用于接收用户输入的待执行命令或读取所述待执行脚本中的待执行命令;
所述装置还包括脚本升级模块,用于:
在需要对所述引导加载程序进行升级时,获得所述待执行脚本的脚本升级文件,基于所获得的脚本升级文件对所述待执行脚本进行升级。
10.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011494888.0A CN112527371B (zh) | 2020-12-17 | 一种引导加载程序升级方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011494888.0A CN112527371B (zh) | 2020-12-17 | 一种引导加载程序升级方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112527371A CN112527371A (zh) | 2021-03-19 |
CN112527371B true CN112527371B (zh) | 2024-06-04 |
Family
ID=
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256527A (zh) * | 2008-03-12 | 2008-09-03 | 中兴通讯股份有限公司 | 一种引导程序的备份方法及其备份装置 |
CN102073517A (zh) * | 2009-11-23 | 2011-05-25 | 中兴通讯股份有限公司 | 一种嵌入式系统的升级、备份方法和装置 |
CN102693139A (zh) * | 2011-03-25 | 2012-09-26 | 比亚迪股份有限公司 | 一种无线升级手机软件的方法及系统 |
CN102799452A (zh) * | 2012-06-29 | 2012-11-28 | 深圳市安普尔科技有限公司 | 系统软件升级方法和装置 |
KR101640207B1 (ko) * | 2015-01-20 | 2016-07-15 | 주식회사 뉴티씨 (Newtc) | 부트로더 및 임베디드 시스템 업그레이드 방법 |
WO2016202088A1 (zh) * | 2015-06-17 | 2016-12-22 | 中兴通讯股份有限公司 | 引导程序升级方法、嵌入式设备、控制设备及嵌入式系统 |
CN107153559A (zh) * | 2017-05-19 | 2017-09-12 | 北京有初科技有限公司 | 一种电子设备的应用程序升级方法 |
CN107256161A (zh) * | 2017-06-13 | 2017-10-17 | 广发证券股份有限公司 | 基于electron技术的客户端升级方法 |
CN110134456A (zh) * | 2019-04-17 | 2019-08-16 | 百度在线网络技术(北京)有限公司 | 用于管理操作系统的方法、装置、设备和存储介质 |
CN111273937A (zh) * | 2020-01-18 | 2020-06-12 | 四川九洲空管科技有限责任公司 | 一种基于stm32f746处理器的远程升级方法 |
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256527A (zh) * | 2008-03-12 | 2008-09-03 | 中兴通讯股份有限公司 | 一种引导程序的备份方法及其备份装置 |
CN102073517A (zh) * | 2009-11-23 | 2011-05-25 | 中兴通讯股份有限公司 | 一种嵌入式系统的升级、备份方法和装置 |
CN102693139A (zh) * | 2011-03-25 | 2012-09-26 | 比亚迪股份有限公司 | 一种无线升级手机软件的方法及系统 |
CN102799452A (zh) * | 2012-06-29 | 2012-11-28 | 深圳市安普尔科技有限公司 | 系统软件升级方法和装置 |
KR101640207B1 (ko) * | 2015-01-20 | 2016-07-15 | 주식회사 뉴티씨 (Newtc) | 부트로더 및 임베디드 시스템 업그레이드 방법 |
WO2016202088A1 (zh) * | 2015-06-17 | 2016-12-22 | 中兴通讯股份有限公司 | 引导程序升级方法、嵌入式设备、控制设备及嵌入式系统 |
CN107153559A (zh) * | 2017-05-19 | 2017-09-12 | 北京有初科技有限公司 | 一种电子设备的应用程序升级方法 |
CN107256161A (zh) * | 2017-06-13 | 2017-10-17 | 广发证券股份有限公司 | 基于electron技术的客户端升级方法 |
CN110134456A (zh) * | 2019-04-17 | 2019-08-16 | 百度在线网络技术(北京)有限公司 | 用于管理操作系统的方法、装置、设备和存储介质 |
CN111273937A (zh) * | 2020-01-18 | 2020-06-12 | 四川九洲空管科技有限责任公司 | 一种基于stm32f746处理器的远程升级方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108196878B (zh) | 应用程序安装包的生成方法、装置、电子设备及存储介质 | |
AU2021206497B2 (en) | Method and apparatus for authority control, computer device and storage medium | |
CN107783776B (zh) | 固件升级包的处理方法及装置、电子设备 | |
CN110333891A (zh) | 基于物联网的增强型ota升级的方法 | |
TWI533216B (zh) | 作業系統更新方法 | |
CN107220074B (zh) | 对支撑层软件功能的访问、升级方法及装置 | |
CN108509215B (zh) | 一种系统软件的更换方法、装置、终端设备及存储介质 | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
CN107844306B (zh) | 应用程序的修复方法、装置、存储介质及终端 | |
CN110457049B (zh) | 实现插件自动化的方法、装置、电子设备及存储介质 | |
CN101807152A (zh) | 自我验证选择只读存储器的基本输出入系统及其验证方法 | |
CN109542480A (zh) | 美甲打印装置的操作系统升级方法、装置和介质 | |
US11023220B2 (en) | Firmware update with integrated smart sequence and action engine | |
CN112527371B (zh) | 一种引导加载程序升级方法、装置、电子设备及存储介质 | |
CN117130672A (zh) | 服务器启动流程控制方法、系统、终端及存储介质 | |
CN116820528A (zh) | 固件版本升级方法、装置、芯片和电子设备 | |
CN116301995A (zh) | 基于bootloader架构的固件升级方法 | |
CN112527371A (zh) | 一种引导加载程序升级方法、装置、电子设备及存储介质 | |
CN114706706A (zh) | 应用软件的修复方法、装置及电子设备 | |
CN115102855A (zh) | 智能水表嵌入式软件在线升级方法及系统 | |
CN109428936B (zh) | App的升级方法、装置、系统、电子设备及存储介质 | |
US11714744B2 (en) | System and method for diagnosing a computing device in safe mode | |
CN114610415B (zh) | 一种程序启动方法、系统、存储介质及电子设备 | |
CN117235707A (zh) | 一种应用程序启动方法、装置、电子设备及存储介质 | |
CN114968314B (zh) | 显示设备的固件升级方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |