一种设备固件升级方法和装置的制造方法

文档序号:9375316阅读:214来源:国知局
一种设备固件升级方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机领域,具体而言,涉及一种设备固件升级方法和装置。
【背景技术】
[0002]固件(firmware)是指运行于移动终端或者嵌入式设备等设备中底层的软件,用于提供移动终端或者嵌入式系统的硬件和启动后运行的应用程序/操作系统等软件之间的接口。在设备的提供厂商发现设备由于固件的漏洞在运行过程中容易出现重启、死机等问题时,设备的提供厂商会对设备中存储的固件进行升级来解决设备在运行过程中出现的问题。
[0003]在对固件进行升级时,一般设备的提供厂商会向设备推送固件升级信息,由用户确定是否对设备的固件进行升级,在用户确定对固件进行升级时,设备通过网络下载固件的升级文件,然后重新启动,对固件进行升级,并在固件升级后正常启动设备,使固件升级后的设备可以为用户使用。
[0004]在对设备的固件进行升级的过程中,如果由于异常情况断电关机(例如:设备电量不足导致断电关机),此次固件升级失败,导致设备中的固件不完整,当该设备再次启动时,由于其固件不完整而不能正常引导设备中的应用程序/操作系统等软件启动,导致设备不能正常使用。这种情况下,用户只能将设备返回厂商进行维修,影响用户的正常使用,降低了用户对设备的使用体验度。

【发明内容】

[0005]本发明的目的在于提供一种设备固件升级方法和装置,缓解固件升级过程中出现断电给用户带来的影响,提升用户体验度。
[0006]第一方面,本发明实施例提供了一种设备固件升级方法,所述方法包括:
[0007]当获取到设备的启动指令时,从所述设备的多个引导分区中确定正常的引导分区;
[0008]通过运行确定的所述引导分区判断所述设备的固件是否需要升级;
[0009]如果是,下载所述固件的镜像文件,使用下载的所述镜像文件对所述设备的固件升级。
[0010]结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,使用下载的所述镜像文件对所述设备的固件升级包括:
[0011 ] 从所述多个引导分区中选取除正在运行的所述引导分区以外的引导分区;
[0012]使用所述镜像文件逐一对选取的所述引导分区升级;
[0013]当所述选取的所述引导分区均升级完毕时,使用所述镜像文件对所述正在运行的所述引导分区升级;
[0014]当所述正在运行的所述引导分区升级完毕时,使用所述镜像文件中的内核分区文件和根文件系统分区文件,分别对所述固件中的内核分区和根文件系统分区升级。
[0015]结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,通过运行确定的所述引导分区判断所述设备的固件是否需要升级包括:
[0016]通过运行确定的引导分区读入启动标识分区中记录的启动标识,并统计读入的启动标识的数量;
[0017]判断所述启动标识的数量是否达到预设的启动标识阈值;
[0018]如果是,确定所述设备的固件需要升级;
[0019]如果否,通过运行确定的所述引导分区向启动标识分区中写入一个启动标识,以及启动所述固件的内核和根文件系统;
[0020]当所述内核或所述根文件系统启动失败时,重启所述设备。
[0021]结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,通过正在运行的所述引导分区启动所述固件的内核和根文件系统的顺序为先启动所述内核,当所述内核启动成功时,再启动所述根文件系统;
[0022]相应地,所述方法还包括:当所述根文件系统启动成功时,擦除当前所述启动标识分区的最后一个启动标识。
[0023]结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述内核对应的分区为一个,所述根文件系统对应的分区为一个。
[0024]结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,从所述设备的多个引导分区中确定正常的引导分区包括:
[0025]从所述设备的多个引导分区中读取一个引导分区的数据,对读取的所述引导分区的数据进行校验;
[0026]当读取的所述引导分区的数据校验正确时,确定数据校验正确的所述引导分区为正常的引导分区。
[0027]结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,下载所述固件的镜像文件,包括:
[0028]判断预设时长内是否开始通过网络下载所述固件的镜像文件;
[0029]如果是,保存下载得到的所述固件的镜像文件;
[0030]如果否,则启动所述设备。
[0031]第二方面,本发明实施例提供了一种设备固件升级装置,所述装置包括:
[0032]正常引导分区确定模块,用于当获取到设备的启动指令时,从所述设备的多个引导分区中确定正常的引导分区;
[0033]固件升级判断模块,用于通过运行确定的所述引导分区判断所述设备的固件是否需要升级;
[0034]固件升级模块,用于所述固件升级判断模块的判断结果为是时,下载所述固件的镜像文件,使用下载的所述镜像文件对所述设备的固件升级。
[0035]结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述固件升级模块包括:
[0036]未运行引导分区获取单元,用于从所述多个引导分区中选取除正在运行的所述引导分区以外的引导分区;
[0037]未运行引导分区升级单元,用于使用所述镜像文件逐一对选取的所述引导分区升级;
[0038]运行引导分区升级单元,用于当所述选取的所述引导分区均升级完毕时,使用所述镜像文件对所述正在运行的所述引导分区升级;
[0039]内核根文件系统升级单元,用于当所述正在运行的所述引导分区升级完毕时,使用所述镜像文件中的内核分区文件和根文件系统分区文件,分别对所述固件中的内核分区和根文件系统分区升级。
[0040]结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述固件升级判断模块包括:
[0041 ]启动标识数量确定单元,用于通过运行确定的引导分区读入启动标识分区中记录的启动标识,并统计读入的启动标识的数量;
[0042]启动标识数量判断单元,用于判断所述启动标识的数量是否达到预设的启动标识阈值;
[0043]升级确定单元,用于所述启动标识数量判断单元的判断结果为是时,确定所述设备的固件需要升级;
[0044]启动单元,用于所述启动标识数量判断单元的判断结果为否时,通过运行确定的所述引导分区向启动标识分区中写入一个启动标识,以及启动所述固件的内核和根文件系统;
[0045]设备重启单元,用于当所述内核或所述根文件系统启动失败时,重启所述设备。
[0046]结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述装置还包括:启动标识清除单元,用于当所述根文件系统启动成功时,擦除当前所述启动标识分区的最后一个启动标识。
[0047]结合第二方面,本发明实施例提供了第二方面的第四种可能的实施方式,其中,所述内核对应的分区为一个,所述根文件系统对应的分区为一个。
[0048]结合第二方面,本发明实施例提供了第二方面的第五种可能的实施方式,其中,所述正常引导分区确定模块包括:
[0049]引导分区数据校验单元,用于从所述设备的多个引导分区中读取一个引导分区的数据,对读取的所述引导分区的数据进行校验;
[0050]正确引导分区确定单元,用于当读取的所述引导分区的数据校验正确时,确定数据校验正确的所述引导分区为正常的引导分区。
[0051]结合第二方面,本发明实施例提供了第二方面的第六种可能的实施方式,其中,固件升级模块,包括:
[0052]镜像文件下载判断单元,用于判断预设时长内是否开始通过网络下载所述固件的镜像文件;
[0053]镜像文件保存单元,用于所述镜像文件下载判断单元的判断结果为是时,保存下载得到的所述固件的镜像文件;
[0054]设备启动单元,用于所述镜像文件下载判断单元的判断结果为否时,启动所述设备。
[0055]本发明实施例提供的一种设备固件升级方法和装置,当获取到设备的启动指令时,运行设备的多个引导分区中确定正常的引导分区,然后通过运行确定的引导分区判断设备的固件是否需要升级,在确定设备的固件需要升级时,就可以下载固件的镜像文件对设备的固件进行升级;即使在对设备的固件进行升级的过程中,由于异常情况断电关机而导致设备的固件升级失败的情况下,只要设备的固件中设置的多个引导分区中有一个可以正常使用,就可以引导设备进行固件的升级,完成固件的升级操作,而完整的固件就可以正常引导设备中的应用程序/操作系统等软件启动,使用户可以正常使用设备,而无需将设备返回厂商进行维修,从而缓解固件升级
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1