终端设备开机、升级方法和终端设备.pdf

上传人:111****112 文档编号:4616929 上传时间:2018-10-22 格式:PDF 页数:15 大小:2.84MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210452468.5

申请日:

2012.11.09

公开号:

CN102981872A

公开日:

2013.03.20

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 9/445申请公布日:20130320|||实质审查的生效IPC(主分类):G06F 9/445申请日:20121109|||公开

IPC分类号:

G06F9/445

主分类号:

G06F9/445

申请人:

青岛海信移动通信技术股份有限公司

发明人:

王永清

地址:

266071 山东省青岛市市南区江西路11号

优先权:

专利代理机构:

北京同达信恒知识产权代理有限公司 11291

代理人:

孔凡红

PDF下载: PDF下载
内容摘要

本发明实施例公开了一种终端设备开机、升级方法和终端设备,涉及电子终端设备领域,用于提高终端设备开机的成功率。本发明中,终端设备中存储两套系统引导程序,在一套系统引导程序损坏时可以使用另一套系统引导程序进行开机,在进行程序升级时,若对其中一套系统引导程序的升级失败,则不再对另一套系统引导程序进行升级,从而保证终端设备中始终存有至少一套完整的系统引导程序,进而提高终端设备的开机成功率。

权利要求书

权利要求书一种终端设备开机方法,其特征在于,该终端设备的存储单元包含第一引导BOOT分区和第二BOOT分区,第一BOOT分区和第二BOOT分区中各存储有一份相同的系统引导程序,并在第三分区中存储有第一BOOT分区中的系统引导程序的哈希值和第二BOOT分区中的系统引导程序的哈希值,该方法包括:
在接收到开机指令后,从第三分区中读取第一BOOT分区中的系统引导程序的哈希值;根据读取到的哈希值对第一BOOT分区中的系统引导程序进行完整性验证,若验证成功,则根据第一BOOT分区中的系统引导程序执行开机流程;否则,
从第三分区中读取第二BOOT分区中的系统引导程序的哈希值;根据读取到的哈希值对第二BOOT分区中的系统引导程序进行完整性验证,在验证成功后,根据第二BOOT分区中的系统引导程序执行开机流程。
如权利要求1所述的方法,其特征在于,在根据第二BOOT分区中的系统引导程序执行开机流程之后,进一步包括:
将第一BOOT分区进行格式化,并将第二BOOT分区中的系统引导程序拷贝到第一BOOT分区中。
如权利要求1所述的方法,其特征在于,进一步包括:
在下载到系统引导程序的升级包后,根据该升级包对第一BOOT分区中的系统引导程序进行升级,若升级成功,则根据该升级包对第二BOOT分区中的系统引导程序进行升级,否则,停止升级并关机。
如权利要求3所述的方法,其特征在于,所述存储单元中还存储有有效系统引导程序的特征信息;
在下载到系统引导程序的升级包后、且根据该升级包对第一BOOT分区中的系统引导程序进行升级之前,进一步包括:根据所述特征信息验证下载到的升级包的有效性;
所述根据该升级包对第一BOOT分区中的系统引导程序进行升级,具体包括:在验证下载到的升级包为有效的系统引导程序时,根据该升级包对第一BOOT分区中的系统引导程序进行升级。
如权利要求3所述的方法,其特征在于,在根据该升级包对第一BOOT分区中的系统引导程序进行升级成功后,进一步包括:计算升级后的第一BOOT分区中的系统引导程序的新的哈希值,并使用该新的哈希值更新第三分区中存储的第一BOOT分区中的系统引导程序的哈希值;
在根据该升级包对第二BOOT分区中的系统引导程序进行升级成功后,进一步包括:计算升级后的第二BOOT分区中的系统引导程序的新的哈希值,并使用该新的哈希值更新第三分区中存储的第二BOOT分区中的系统引导程序的哈希值。
一种终端设备升级方法,其特征在于,该终端设备的存储单元包含第一引导BOOT分区和第二BOOT分区,第一BOOT分区和第二BOOT分区中各存储有一份相同的系统引导程序,该方法包括:
在下载到系统引导程序的升级包后,根据该升级包对第一BOOT分区中的系统引导程序进行升级,若升级成功,则根据该升级包对第二BOOT分区中的系统引导程序进行升级,否则,
停止升级并关机。
如权利要求6所述的方法,其特征在于,所述存储单元中还存储有有效系统引导程序的特征信息;
在下载到系统引导程序的升级包后、且根据该升级包对第一BOOT分区中的系统引导程序进行升级之前,进一步包括:根据所述特征信息验证下载到的升级包的有效性;
所述根据该升级包对第一BOOT分区中的系统引导程序进行升级,具体包括:在验证下载到的升级包为有效的系统引导程序时,根据该升级包对第一BOOT分区中的系统引导程序进行升级。
如权利要求6所述的方法,其特征在于,在所述存储单元的第三分区中存储有第一BOOT分区中的系统引导程序的哈希值和第二BOOT分区中的系统引导程序的哈希值;进一步包括:
在接收到开机指令后,从第三分区中读取第一BOOT分区中的系统引导程序的哈希值;根据读取到的哈希值对第一BOOT分区中的系统引导程序进行完整性验证,若验证成功,则根据第一BOOT分区中的系统引导程序执行开机流程;否则,
从第三分区中读取第二BOOT分区中的系统引导程序的哈希值;根据读取到的哈希值对第二BOOT分区中的系统引导程序进行完整性验证,在验证成功后,根据第二BOOT分区中的系统引导程序执行开机流程。
如权利要求8所述的方法,其特征在于,在根据该升级包对第一BOOT分区中的系统引导程序进行升级成功后,进一步包括:计算升级后的第一BOOT分区中的系统引导程序的新的哈希值,并使用该新的哈希值更新第三分区中存储的第一BOOT分区中的系统引导程序的哈希值;
在根据该升级包对第二BOOT分区中的系统引导程序进行升级成功后,进一步包括:计算升级后的第二BOOT分区中的系统引导程序的新的哈希值,并使用该新的哈希值更新第三分区中存储的第二BOOT分区中的系统引导程序的哈希值。
如权利要求8所述的方法,其特征在于,在根据第二BOOT分区中的系统引导程序执行开机流程之后,进一步包括:
将第一BOOT分区进行格式化,并将第二BOOT分区中的系统引导程序拷贝到第一BOOT分区中。
一种终端设备,其特征在于,该终端设备的存储单元包含第一引导BOOT分区和第二BOOT分区,第一BOOT分区和第二BOOT分区中各存储有一份相同的系统引导程序,并在第三分区中存储有第一BOOT分区中的系统引导程序的哈希值和第二BOOT分区中的系统引导程序的哈希值,该终端设备还包括:
主处理器,用于在接收到开机指令后,从第三分区中读取第一BOOT分区中的系统引导程序的哈希值;根据读取到的哈希值对第一BOOT分区中的系统引导程序进行完整性验证,若验证成功,则根据第一BOOT分区中的系统引导程序执行开机流程;否则,
从第三分区中读取第二BOOT分区中的系统引导程序的哈希值;根据读取到的哈希值对第二BOOT分区中的系统引导程序进行完整性验证,在验证成功后,根据第二BOOT分区中的系统引导程序执行开机流程。
如权利要求11所述的终端设备,其特征在于,所述主处理器还用于:
在根据第二BOOT分区中的系统引导程序执行开机流程之后,将第一BOOT分区进行格式化,并将第二BOOT分区中的系统引导程序拷贝到第一BOOT分区中。
如权利要求11所述的终端设备,其特征在于,所述主处理器还用于:
在接收到开机指令之前或执行开机流程之后,在下载到系统引导程序的升级包时,根据该升级包对第一BOOT分区中的系统引导程序进行升级,若升级成功,则根据该升级包对第二BOOT分区中的系统引导程序进行升级,否则,停止升级并关机。
一种终端设备,其特征在于,该终端设备的存储单元包含第一引导BOOT分区和第二BOOT分区,第一BOOT分区和第二BOOT分区中各存储有一份相同的系统引导程序,该终端设备还包括:
主处理器,用于在下载到系统引导程序的升级包后,根据该升级包对第一BOOT分区中的系统引导程序进行升级,若升级成功,则根据该升级包对第二BOOT分区中的系统引导程序进行升级,否则,
停止升级并关机。
如权利要求14所述的终端设备,其特征在于,在所述存储单元的第三分区中存储有第一BOOT分区中的系统引导程序的哈希值和第二BOOT分区中的系统引导程序的哈希值;
所述主处理器还用于:
在接收到开机指令后,从第三分区中读取第一BOOT分区中的系统引导程序的哈希值;根据读取到的哈希值对第一BOOT分区中的系统引导程序进行完整性验证,若验证成功,则根据第一BOOT分区中的系统引导程序执行开机流程;否则,
从第三分区中读取第二BOOT分区中的系统引导程序的哈希值;根据读取到的哈希值对第二BOOT分区中的系统引导程序进行完整性验证,在验证成功后,根据第二BOOT分区中的系统引导程序执行开机流程。

说明书

说明书终端设备开机、升级方法和终端设备
技术领域
本发明涉及无线通信领域,尤其涉及一种终端设备开机、升级方法和终端设备。
背景技术
随着安卓(Android)系统的迅速发展和其市场份额的不断增大,其客户群也在迅猛增长。随之而来的就是系统在使用中问题的不断暴露。其中困扰各个厂家最大的问题就是系统的升级失败而导致产品返厂的问题。
Android的开放性造就了用户在使用上的最大灵活性。包括自主刷机,自主安装未授权的第三方软件等。其中,出现最严重的就是将系统的系统引导程序(bootloader)刷坏。直接导致产品无法升级,无法开机。唯一途径就是返厂,这样会对企业造成重大的损失。
目前防止bootloader被刷坏的技术主要包括禁止升级bootloader或者对bootloader升级进行严格的安全限制。这样做的有一个很大的缺陷:当整个系统确实需要升级bootloader时,若不能及时升级bootloader,会对系统带来很大的风险,并且灵活性很差。
发明内容
本发明实施例提供一种终端设备开机、升级方法和终端设备,用于提高终端设备开机的成功率。
一种终端设备开机方法,该终端设备的存储单元包含第一引导BOOT分区和第二BOOT分区,第一BOOT分区和第二BOOT分区中各存储有一份相同的系统引导程序,并在第三分区中存储有第一BOOT分区中的系统引导程序的哈希值和第二BOOT分区中的系统引导程序的哈希值,该方法包括:
在接收到开机指令后,从第三分区中读取第一BOOT分区中的系统引导程序的哈希值;根据读取到的哈希值对第一BOOT分区中的系统引导程序进行完整性验证,若验证成功,则根据第一BOOT分区中的系统引导程序执行开机流程;否则,
从第三分区中读取第二BOOT分区中的系统引导程序的哈希值;根据读取到的哈希值对第二BOOT分区中的系统引导程序进行完整性验证,在验证成功后,根据第二BOOT分区中的系统引导程序执行开机流程。
一种终端设备升级方法,该终端设备的存储单元包含第一引导BOOT分区和第二BOOT分区,第一BOOT分区和第二BOOT分区中各存储有一份相同的系统引导程序,该方法包括:
在下载到系统引导程序的升级包后,根据该升级包对第一BOOT分区中的系统引导程序进行升级,若升级成功,则根据该升级包对第二BOOT分区中的系统引导程序进行升级,否则,
停止升级并关机。
一种终端设备,该终端设备的存储单元包含第一引导BOOT分区和第二BOOT分区,第一BOOT分区和第二BOOT分区中各存储有一份相同的系统引导程序,并在第三分区中存储有第一BOOT分区中的系统引导程序的哈希值和第二BOOT分区中的系统引导程序的哈希值,该终端设备还包括:
主处理器,用于在接收到开机指令后,从第三分区中读取第一BOOT分区中的系统引导程序的哈希值;根据读取到的哈希值对第一BOOT分区中的系统引导程序进行完整性验证,若验证成功,则根据第一BOOT分区中的系统引导程序执行开机流程;否则,
从第三分区中读取第二BOOT分区中的系统引导程序的哈希值;根据读取到的哈希值对第二BOOT分区中的系统引导程序进行完整性验证,在验证成功后,根据第二BOOT分区中的系统引导程序执行开机流程。
一种终端设备,该终端设备的存储单元包含第一引导BOOT分区和第二BOOT分区,第一BOOT分区和第二BOOT分区中各存储有一份相同的系统引导程序,该终端设备还包括:
主处理器,用于在下载到系统引导程序的升级包后,根据该升级包对第一BOOT分区中的系统引导程序进行升级,若升级成功,则根据该升级包对第二BOOT分区中的系统引导程序进行升级,否则,
停止升级并关机。
本发明实施例提供的一种方案中,终端设备的存储单元包含第一引导(BOOT)分区和第二BOOT分区,第一BOOT分区和第二BOOT分区中各存储有一份相同的系统引导程序,并在第三分区中存储有第一BOOT分区中的系统引导程序的哈希值和第二BOOT分区中的系统引导程序的哈希值,在开机时,根据其中一个哈希值验证对应的系统引导程序的完整性,若验证成功,则根据该系统引导程序执行开机流程,否则,根据另外一个哈希值验证另一个系统引导程序的完整性,在验证成功后根据该系统引导程序执行开机流程。可见,本方案中存储两套系统引导程序,在一套系统引导程序损坏时还可以使用另一套系统引导程序进行开机,从而提高了终端设备的开机成功率。
本发明实施例提供的另一种方案中,在下载到系统引导程序的升级包后,根据该升级包对第一BOOT分区中的系统引导程序进行升级,若升级成功,则根据该升级包对第二BOOT分区中的系统引导程序进行升级,否则,停止升级并关机;可见,本方案中,若对存储的两套系统引导程序中的一套系统引导程序的升级失败,则不再对另一套系统引导程序进行升级,从而能够保证终端设备中始终存储有至少一套完整的系统引导程序,进而能够使用该完整的系统引导程序进行开机,提高了终端设备的开机成功率。
附图说明
图1为本发明实施例提供的方法流程示意图;
图2为本发明实施例提供的另一方法流程示意图;
图3a为本发明实施例一的流程示意图;
图3b为本发明实施例二的流程示意图;
图4为本发明实施例提供的终端设备结构示意图。
具体实施方式
为了提高终端设备的开机成功率,本发明实施例提供一种终端设备开机方法,终端设备的存储单元包含第一引导(BOOT)分区和第二BOOT分区,第一BOOT分区和第二BOOT分区中各存储有一份相同的系统引导程序,并在第三分区中存储有第一BOOT分区中的系统引导程序的哈希值和第二BOOT分区中的系统引导程序的哈希值,在开机时,根据其中一个哈希值验证对应的系统引导程序的完整性,若验证成功,则根据该系统引导程序执行开机流程,否则,根据另外一个哈希值验证另一个系统引导程序的完整性,在验证成功后根据该系统引导程序执行开机流程。系统引导程序的哈希值,是采用哈希算法计算得到的该系统引导程序哈希值。
参见图1,本发明实施例提供的终端设备开机方法,包括以下步骤:
步骤10:在接收到开机指令后,从第三分区中读取第一BOOT分区中的系统引导程序的哈希值;根据读取到的哈希值对第一BOOT分区中的系统引导程序进行完整性验证;若验证成功,则到步骤11,否则,到步骤12;
这里,对第一BOOT分区中的系统引导程序进行完整性验证的方法为:根据哈希算法计算第一BOOT分区中的系统引导程序的哈希值,将计算得到的哈希值与从第三分区中读取到的第一BOOT分区中的系统引导程序的哈希值进行比较,若两者一致,则确定验证成功,否则,验证失败。
步骤11:若验证成功,则根据第一BOOT分区中的系统引导程序执行开机流程;
步骤12:从第三分区中读取第二BOOT分区中的系统引导程序的哈希值;根据读取到的哈希值对第二BOOT分区中的系统引导程序进行完整性验证,在验证成功后,根据第二BOOT分区中的系统引导程序执行开机流程。
这里,对第二BOOT分区中的系统引导程序进行完整性验证的方法为:根据哈希算法计算第二BOOT分区中的系统引导程序的哈希值,将计算得到的哈希值与从第三分区中读取到的第二BOOT分区中的系统引导程序的哈希值进行比较,若两者一致,则确定验证成功,否则,验证失败。
较佳的,在根据第二BOOT分区中的系统引导程序执行开机流程之后,可以将第一BOOT分区进行格式化,并将第二BOOT分区中的系统引导程序拷贝到第一BOOT分区中,从而实现了对第一BOOT分区的自修复。
较佳的,在下载到系统引导程序的升级包后,根据该升级包对第一BOOT分区中的系统引导程序进行升级,若升级成功,则根据该升级包对第二BOOT分区中的系统引导程序进行升级,否则,停止升级并关机,从而能够保证终端设备中始终存储有至少一套完整的系统引导程序,进而能够使用该完整的系统引导程序进行开机,提高了终端设备的开机成功率。
较佳的,存储单元中还存储有有效系统引导程序的特征信息;在下载到系统引导程序的升级包后、且根据该升级包对第一BOOT分区中的系统引导程序进行升级之前,根据该特征信息验证下载到的升级包的有效性;并在验证下载到的升级包为有效的系统引导程序时,根据该升级包对第一BOOT分区中的系统引导程序进行升级;若验证下载到的升级包为无效的系统引导程序,则停止升级流程,从而提高了系统引导程序升级时的容错能力。这里,在验证下载到的升级包的有效性时,具体可以是判断下载到的升级包中是否包含该特征信息,若是,则确定升级包为有效的系统引导程序,否则,确定升级包为无效的系统引导程序。
较佳的,在根据该升级包对第一BOOT分区中的系统引导程序进行升级成功后,计算升级后的第一BOOT分区中的系统引导程序的新的哈希值,并使用该新的哈希值更新(即替换)第三分区中存储的第一BOOT分区中的系统引导程序的哈希值,从而使得下次开机时能够对第一BOOT分区进行正确的完整性验证,为下次的开机流程做好准备。
在根据该升级包对第二BOOT分区中的系统引导程序进行升级成功后,进一步包括:计算升级后的第二BOOT分区中的系统引导程序的新的哈希值,并使用该新的哈希值更新(即替换)第三分区中存储的第二BOOT分区中的系统引导程序的哈希值,从而使得下次开机时能够对第二BOOT分区进行正确的完整性验证,为下次的开机流程做好准备。
本方法的执行主体具体可以是终端设备的主CPU即AP,本方法可以应用在Nvidia等平台上。
参见图2,本发明实施例提供一种终端设备升级方法,该终端设备的存储单元包含第一引导BOOT分区和第二BOOT分区,第一BOOT分区和第二BOOT分区中各存储有一份相同的系统引导程序,包括以下步骤:
步骤20:在下载到系统引导程序的升级包后,根据该升级包对第一BOOT分区中的系统引导程序进行升级,若升级成功,则到步骤21,否则,到步骤22;
步骤21:根据该升级包对第二BOOT分区中的系统引导程序进行升级;
步骤22:停止升级并关机。
较佳的,终端设备的存储单元中还存储有有效系统引导程序的特征信息;
在下载到系统引导程序的升级包后、且根据该升级包对第一BOOT分区中的系统引导程序进行升级之前,根据该特征信息验证下载到的升级包的有效性;并在验证下载到的升级包为有效的系统引导程序时,根据该升级包对第一BOOT分区中的系统引导程序进行升级。若验证下载到的升级包为无效的系统引导程序,则停止升级流程,从而提高了系统引导程序升级时的容错能力。这里,在验证下载到的升级包的有效性时,具体可以是判断下载到的升级包中是否包含该特征信息,若是,则确定升级包为有效的系统引导程序,否则,确定升级包为无效的系统引导程序。
较佳的,在存储单元的第三分区中存储有第一BOOT分区中的系统引导程序的哈希值和第二BOOT分区中的系统引导程序的哈希值;
在接收到开机指令后,从第三分区中读取第一BOOT分区中的系统引导程序的哈希值;根据读取到的哈希值对第一BOOT分区中的系统引导程序进行完整性验证,若验证成功,则根据第一BOOT分区中的系统引导程序执行开机流程;否则,
从第三分区中读取第二BOOT分区中的系统引导程序的哈希值;根据读取到的哈希值对第二BOOT分区中的系统引导程序进行完整性验证,在验证成功后,根据第二BOOT分区中的系统引导程序执行开机流程。
这里,对第一BOOT分区中的系统引导程序进行完整性验证的方法为:根据哈希算法计算第一BOOT分区中的系统引导程序的哈希值,将计算得到的哈希值与从第三分区中读取到的第一BOOT分区中的系统引导程序的哈希值进行比较,若两者一致,则确定验证成功,否则,验证失败。对第二BOOT分区中的系统引导程序进行完整性验证的方法为:根据哈希算法计算第二BOOT分区中的系统引导程序的哈希值,将计算得到的哈希值与从第三分区中读取到的第二BOOT分区中的系统引导程序的哈希值进行比较,若两者一致,则确定验证成功,否则,验证失败。
较佳的,在根据该升级包对第一BOOT分区中的系统引导程序进行升级成功后,进一步包括:计算升级后的第一BOOT分区中的系统引导程序的新的哈希值,并使用该新的哈希值更新(即替换)第三分区中存储的第一BOOT分区中的系统引导程序的哈希值,从而使得下次开机时能够对第一BOOT分区进行正确的完整性验证,为下次的开机流程做好准备;
在根据该升级包对第二BOOT分区中的系统引导程序进行升级成功后,进一步包括:计算升级后的第二BOOT分区中的系统引导程序的新的哈希值,并使用该新的哈希值更新(即替换)第三分区中存储的第二BOOT分区中的系统引导程序的哈希值,从而使得下次开机时能够对第二BOOT分区进行正确的完整性验证,为下次的开机流程做好准备。
较佳的,在根据第二BOOT分区中的系统引导程序执行开机流程之后,将第一BOOT分区进行格式化,并将第二BOOT分区中的系统引导程序拷贝到第一BOOT分区中,从而实现了对第一BOOT分区的自修复。
下面结合具体实施例对本申请进行具体说明:
实施例一:
本实施例执行终端设备的开机流程,如图3a所示:
步骤1:终端设备的主处理器在接收到开机指令后,读取第一BOOT分区即BOOT1中的系统引导程序的哈希值;根据读取到的哈希值对BOOT1中的系统引导程序进行完整性验证,判断验证是否成功,若是,则到步骤2,否则,到步骤3;
步骤2:开始执行BOOT1中的系统引导程序,到步骤7;
步骤3:读取第二BOOT分区即BOOT2中的系统引导程序的哈希值;根据读取到的哈希值对BOOT2中的系统引导程序进行完整性验证,判断验证是否成功,若是,则到步骤5,否则,到步骤4;
步骤4:开机失败,本流程结束;
步骤5:开始执行BOOT2中的系统引导程序;
步骤6:将BOOT1进行格式化,并将BOOT2中的系统引导程序拷贝到BOOT1中;
步骤7:系统启动。
实施例二:如图3b所示:
步骤1:终端设备的主处理器从TF卡读取下载到的系统引导程序的升级包;
步骤2:根据存储的有效系统引导程序的特征信息,验证升级包的有效性;
步骤3:判断升级包是否有效,若是,则到步骤5,否则,到步骤4;
步骤4:停止升级,本流程结束;
步骤5:根据升级包对BOOT1中的系统引导程序进行升级;
步骤6:判断对BOOT1的升级是否成功,若是,则到步骤7,否则,到步骤4;
步骤7:根据升级包对BOOT2中的系统引导程序进行升级;
步骤8:判断对BOOT2的升级是否成功,若是,则到步骤9,否则,到步骤4;
步骤9:更新其他镜像。
实施例三:
步骤一:执行实施例一中的步骤1‑步骤7;
步骤二:若终端设备成功开机,则执行实施例二中的步骤1‑步骤9。
实施例四:
步骤一:执行实施例二中的步骤1‑步骤9;
步骤二:执行实施例一中的步骤1‑步骤7。
参见图4,本发明实施例提供一种终端设备,该终端设备的存储单元40包含第一引导BOOT分区401和第二BOOT分区402,第一BOOT分区401和第二BOOT分区402中各存储有一份相同的系统引导程序,并在第三分区403中存储有第一BOOT分区401中的系统引导程序的哈希值和第二BOOT分区402中的系统引导程序的哈希值,该终端设备还包括:
主处理器41,用于在接收到开机指令后,从第三分区中读取第一BOOT分区401中的系统引导程序的哈希值;根据读取到的哈希值对第一BOOT分区401中的系统引导程序进行完整性验证,若验证成功,则根据第一BOOT分区401中的系统引导程序执行开机流程;否则,
从第三分区403中读取第二BOOT分区402中的系统引导程序的哈希值;根据读取到的哈希值对第二BOOT分区402中的系统引导程序进行完整性验证,在验证成功后,根据第二BOOT分区402中的系统引导程序执行开机流程。
进一步的,所述主处理器41还用于:
在根据第二BOOT分区402中的系统引导程序执行开机流程之后,将第一BOOT分区401进行格式化,并将第二BOOT分区402中的系统引导程序拷贝到第一BOOT分区401中。
进一步的,所述主处理器41还用于:
在接收到开机指令之前或执行开机流程之后,在下载到系统引导程序的升级包时,根据该升级包对第一BOOT分区401中的系统引导程序进行升级,若升级成功,则根据该升级包对第二BOOT分区402中的系统引导程序进行升级,否则,停止升级并关机。
进一步的,所述存储单元40中还存储有有效系统引导程序的特征信息;
所述主处理器41还用于:
在下载到系统引导程序的升级包后、且根据该升级包对第一BOOT分区401中的系统引导程序进行升级之前,根据所述特征信息验证下载到的升级包的有效性;在验证下载到的升级包为有效的系统引导程序时,根据该升级包对第一BOOT分区401中的系统引导程序进行升级。
进一步的,所述主处理器41还用于:
在根据该升级包对第一BOOT分区401中的系统引导程序进行升级成功后,计算升级后的第一BOOT分区401中的系统引导程序的新的哈希值,并使用该新的哈希值更新第三分区403中存储的第一BOOT分区401中的系统引导程序的哈希值;
在根据该升级包对第二BOOT分区402中的系统引导程序进行升级成功后,计算升级后的第二BOOT分区402中的系统引导程序的新的哈希值,并使用该新的哈希值更新第三分区403中存储的第二BOOT分区402中的系统引导程序的哈希值。
仍参见图4,本发明实施例提供一种终端设备,该终端设备的存储单元40包含第一引导BOOT分区401和第二BOOT分区402,第一BOOT分区401和第二BOOT分区402中各存储有一份相同的系统引导程序,该终端设备还包括:
主处理器41,用于在下载到系统引导程序的升级包后,根据该升级包对第一BOOT分区401中的系统引导程序进行升级,若升级成功,则根据该升级包对第二BOOT分区402中的系统引导程序进行升级,否则,
停止升级并关机。
进一步的,所述存储单元40中还存储有有效系统引导程序的特征信息;
所述主处理器41还用于:
在下载到系统引导程序的升级包后、且根据该升级包对第一BOOT分区401中的系统引导程序进行升级之前,根据所述特征信息验证下载到的升级包的有效性;在验证下载到的升级包为有效的系统引导程序时,根据该升级包对第一BOOT分区401中的系统引导程序进行升级。
进一步的,在所述存储单元的第三分区403中存储有第一BOOT分区401中的系统引导程序的哈希值和第二BOOT分区402中的系统引导程序的哈希值;
所述主处理器41还用于:
在接收到开机指令后,从第三分区403中读取第一BOOT分区401中的系统引导程序的哈希值;根据读取到的哈希值对第一BOOT分区401中的系统引导程序进行完整性验证,若验证成功,则根据第一BOOT分区401中的系统引导程序执行开机流程;否则,
从第三分区中读取第二BOOT分区402中的系统引导程序的哈希值;根据读取到的哈希值对第二BOOT分区402中的系统引导程序进行完整性验证,在验证成功后,根据第二BOOT分区402中的系统引导程序执行开机流程。
进一步的,所述主处理器41还用于:
在根据该升级包对第一BOOT分区401中的系统引导程序进行升级成功后,计算升级后的第一BOOT分区401中的系统引导程序的新的哈希值,并使用该新的哈希值更新第三分区403中存储的第一BOOT分区401中的系统引导程序的哈希值;
在根据该升级包对第二BOOT分区402中的系统引导程序进行升级成功后,计算升级后的第二BOOT分区402中的系统引导程序的新的哈希值,并使用该新的哈希值更新第三分区403中存储的第二BOOT分区402中的系统引导程序的哈希值。
进一步的,所述主处理器41还用于:
在根据第二BOOT分区402中的系统引导程序执行开机流程之后,将第一BOOT分区401进行格式化,并将第二BOOT分区402中的系统引导程序拷贝到第一BOOT分区401中。
本发明中的终端设备具体可以是平板电脑、手机终端等。
综上,本发明的有益效果包括:
本发明实施例提供的一种方案中,终端设备的存储单元包含第一引导(BOOT)分区和第二BOOT分区,第一BOOT分区和第二BOOT分区中各存储有一份相同的系统引导程序,并在第三分区中存储有第一BOOT分区中的系统引导程序的哈希值和第二BOOT分区中的系统引导程序的哈希值,在开机时,根据其中一个哈希值验证对应的系统引导程序的完整性,若验证成功,则根据该系统引导程序执行开机流程,否则,根据另外一个哈希值验证另一个系统引导程序的完整性,在验证成功后根据该系统引导程序执行开机流程。可见,本方案中存储两套系统引导程序,在一套系统引导程序损坏时还可以使用另一套系统引导程序进行开机,从而提高了终端设备的开机成功率。
本发明实施例提供的另一种方案中,在下载到系统引导程序的升级包后,根据该升级包对第一BOOT分区中的系统引导程序进行升级,若升级成功,则根据该升级包对第二BOOT分区中的系统引导程序进行升级,否则,停止升级并关机;可见,本方案中,若对存储的两套系统引导程序中的一套系统引导程序的升级失败,则不再对另一套系统引导程序进行升级,从而能够保证终端设备中始终存储有至少一套完整的系统引导程序,进而能够使用该完整的系统引导程序进行开机,提高了终端设备的开机成功率。
本发明是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

终端设备开机、升级方法和终端设备.pdf_第1页
第1页 / 共15页
终端设备开机、升级方法和终端设备.pdf_第2页
第2页 / 共15页
终端设备开机、升级方法和终端设备.pdf_第3页
第3页 / 共15页
点击查看更多>>
资源描述

《终端设备开机、升级方法和终端设备.pdf》由会员分享,可在线阅读,更多相关《终端设备开机、升级方法和终端设备.pdf(15页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102981872 A (43)申请公布日 2013.03.20 CN 102981872 A *CN102981872A* (21)申请号 201210452468.5 (22)申请日 2012.11.09 G06F 9/445(2006.01) (71)申请人 青岛海信移动通信技术股份有限公 司 地址 266071 山东省青岛市市南区江西路 11 号 (72)发明人 王永清 (74)专利代理机构 北京同达信恒知识产权代理 有限公司 11291 代理人 孔凡红 (54) 发明名称 终端设备开机、 升级方法和终端设备 (57) 摘要 本发明实施例公开了一种终端设备开机。

2、、 升 级方法和终端设备, 涉及电子终端设备领域, 用于 提高终端设备开机的成功率。 本发明中, 终端设备 中存储两套系统引导程序, 在一套系统引导程序 损坏时可以使用另一套系统引导程序进行开机, 在进行程序升级时, 若对其中一套系统引导程序 的升级失败, 则不再对另一套系统引导程序进行 升级, 从而保证终端设备中始终存有至少一套完 整的系统引导程序, 进而提高终端设备的开机成 功率。 (51)Int.Cl. 权利要求书 3 页 说明书 8 页 附图 3 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 3 页 说明书 8 页 附图 3 页 1/3 页 2 1. 一种。

3、终端设备开机方法, 其特征在于, 该终端设备的存储单元包含第一引导 BOOT 分 区和第二 BOOT 分区, 第一 BOOT 分区和第二 BOOT 分区中各存储有一份相同的系统引导程 序, 并在第三分区中存储有第一 BOOT 分区中的系统引导程序的哈希值和第二 BOOT 分区中 的系统引导程序的哈希值, 该方法包括 : 在接收到开机指令后, 从第三分区中读取第一 BOOT 分区中的系统引导程序的哈希值 ; 根据读取到的哈希值对第一 BOOT 分区中的系统引导程序进行完整性验证, 若验证成功, 则 根据第一 BOOT 分区中的系统引导程序执行开机流程 ; 否则, 从第三分区中读取第二 BOOT 。

4、分区中的系统引导程序的哈希值 ; 根据读取到的哈希值 对第二BOOT分区中的系统引导程序进行完整性验证, 在验证成功后, 根据第二BOOT分区中 的系统引导程序执行开机流程。 2. 如权利要求 1 所述的方法, 其特征在于, 在根据第二 BOOT 分区中的系统引导程序执 行开机流程之后, 进一步包括 : 将第一 BOOT 分区进行格式化, 并将第二 BOOT 分区中的系统引导程序拷贝到第一 BOOT 分区中。 3. 如权利要求 1 所述的方法, 其特征在于, 进一步包括 : 在下载到系统引导程序的升级包后, 根据该升级包对第一 BOOT 分区中的系统引导程 序进行升级, 若升级成功, 则根据该。

5、升级包对第二 BOOT 分区中的系统引导程序进行升级, 否则, 停止升级并关机。 4. 如权利要求 3 所述的方法, 其特征在于, 所述存储单元中还存储有有效系统引导程 序的特征信息 ; 在下载到系统引导程序的升级包后、 且根据该升级包对第一 BOOT 分区中的系统引导 程序进行升级之前, 进一步包括 : 根据所述特征信息验证下载到的升级包的有效性 ; 所述根据该升级包对第一 BOOT 分区中的系统引导程序进行升级, 具体包括 : 在验证下 载到的升级包为有效的系统引导程序时, 根据该升级包对第一 BOOT 分区中的系统引导程 序进行升级。 5. 如权利要求 3 所述的方法, 其特征在于, 在。

6、根据该升级包对第一 BOOT 分区中的系统 引导程序进行升级成功后, 进一步包括 : 计算升级后的第一 BOOT 分区中的系统引导程序的 新的哈希值, 并使用该新的哈希值更新第三分区中存储的第一 BOOT 分区中的系统引导程 序的哈希值 ; 在根据该升级包对第二 BOOT 分区中的系统引导程序进行升级成功后, 进一步包括 : 计 算升级后的第二 BOOT 分区中的系统引导程序的新的哈希值, 并使用该新的哈希值更新第 三分区中存储的第二 BOOT 分区中的系统引导程序的哈希值。 6. 一种终端设备升级方法, 其特征在于, 该终端设备的存储单元包含第一引导 BOOT 分 区和第二 BOOT 分区,。

7、 第一 BOOT 分区和第二 BOOT 分区中各存储有一份相同的系统引导程 序, 该方法包括 : 在下载到系统引导程序的升级包后, 根据该升级包对第一 BOOT 分区中的系统引导程 序进行升级, 若升级成功, 则根据该升级包对第二 BOOT 分区中的系统引导程序进行升级, 否则, 停止升级并关机。 权 利 要 求 书 CN 102981872 A 2 2/3 页 3 7. 如权利要求 6 所述的方法, 其特征在于, 所述存储单元中还存储有有效系统引导程 序的特征信息 ; 在下载到系统引导程序的升级包后、 且根据该升级包对第一 BOOT 分区中的系统引导 程序进行升级之前, 进一步包括 : 根据。

8、所述特征信息验证下载到的升级包的有效性 ; 所述根据该升级包对第一 BOOT 分区中的系统引导程序进行升级, 具体包括 : 在验证下 载到的升级包为有效的系统引导程序时, 根据该升级包对第一 BOOT 分区中的系统引导程 序进行升级。 8. 如权利要求 6 所述的方法, 其特征在于, 在所述存储单元的第三分区中存储有第一 BOOT 分区中的系统引导程序的哈希值和第二 BOOT 分区中的系统引导程序的哈希值 ; 进一 步包括 : 在接收到开机指令后, 从第三分区中读取第一 BOOT 分区中的系统引导程序的哈希值 ; 根据读取到的哈希值对第一 BOOT 分区中的系统引导程序进行完整性验证, 若验证。

9、成功, 则 根据第一 BOOT 分区中的系统引导程序执行开机流程 ; 否则, 从第三分区中读取第二 BOOT 分区中的系统引导程序的哈希值 ; 根据读取到的哈希值 对第二BOOT分区中的系统引导程序进行完整性验证, 在验证成功后, 根据第二BOOT分区中 的系统引导程序执行开机流程。 9. 如权利要求 8 所述的方法, 其特征在于, 在根据该升级包对第一 BOOT 分区中的系统 引导程序进行升级成功后, 进一步包括 : 计算升级后的第一 BOOT 分区中的系统引导程序的 新的哈希值, 并使用该新的哈希值更新第三分区中存储的第一 BOOT 分区中的系统引导程 序的哈希值 ; 在根据该升级包对第二。

10、 BOOT 分区中的系统引导程序进行升级成功后, 进一步包括 : 计 算升级后的第二 BOOT 分区中的系统引导程序的新的哈希值, 并使用该新的哈希值更新第 三分区中存储的第二 BOOT 分区中的系统引导程序的哈希值。 10.如权利要求8所述的方法, 其特征在于, 在根据第二BOOT分区中的系统引导程序执 行开机流程之后, 进一步包括 : 将第一 BOOT 分区进行格式化, 并将第二 BOOT 分区中的系统引导程序拷贝到第一 BOOT 分区中。 11. 一种终端设备, 其特征在于, 该终端设备的存储单元包含第一引导 BOOT 分区和第 二 BOOT 分区, 第一 BOOT 分区和第二 BOOT。

11、 分区中各存储有一份相同的系统引导程序, 并在 第三分区中存储有第一BOOT分区中的系统引导程序的哈希值和第二BOOT分区中的系统引 导程序的哈希值, 该终端设备还包括 : 主处理器, 用于在接收到开机指令后, 从第三分区中读取第一 BOOT 分区中的系统引导 程序的哈希值 ; 根据读取到的哈希值对第一 BOOT 分区中的系统引导程序进行完整性验证, 若验证成功, 则根据第一 BOOT 分区中的系统引导程序执行开机流程 ; 否则, 从第三分区中读取第二 BOOT 分区中的系统引导程序的哈希值 ; 根据读取到的哈希值 对第二BOOT分区中的系统引导程序进行完整性验证, 在验证成功后, 根据第二B。

12、OOT分区中 的系统引导程序执行开机流程。 12. 如权利要求 11 所述的终端设备, 其特征在于, 所述主处理器还用于 : 在根据第二 BOOT 分区中的系统引导程序执行开机流程之后, 将第一 BOOT 分区进行格 权 利 要 求 书 CN 102981872 A 3 3/3 页 4 式化, 并将第二 BOOT 分区中的系统引导程序拷贝到第一 BOOT 分区中。 13. 如权利要求 11 所述的终端设备, 其特征在于, 所述主处理器还用于 : 在接收到开机指令之前或执行开机流程之后, 在下载到系统引导程序的升级包时, 根 据该升级包对第一 BOOT 分区中的系统引导程序进行升级, 若升级成功。

13、, 则根据该升级包对 第二 BOOT 分区中的系统引导程序进行升级, 否则, 停止升级并关机。 14. 一种终端设备, 其特征在于, 该终端设备的存储单元包含第一引导 BOOT 分区和第 二 BOOT 分区, 第一 BOOT 分区和第二 BOOT 分区中各存储有一份相同的系统引导程序, 该终 端设备还包括 : 主处理器, 用于在下载到系统引导程序的升级包后, 根据该升级包对第一 BOOT 分区中 的系统引导程序进行升级, 若升级成功, 则根据该升级包对第二 BOOT 分区中的系统引导程 序进行升级, 否则, 停止升级并关机。 15. 如权利要求 14 所述的终端设备, 其特征在于, 在所述存储。

14、单元的第三分区中存储 有第一 BOOT 分区中的系统引导程序的哈希值和第二 BOOT 分区中的系统引导程序的哈希 值 ; 所述主处理器还用于 : 在接收到开机指令后, 从第三分区中读取第一 BOOT 分区中的系统引导程序的哈希值 ; 根据读取到的哈希值对第一 BOOT 分区中的系统引导程序进行完整性验证, 若验证成功, 则 根据第一 BOOT 分区中的系统引导程序执行开机流程 ; 否则, 从第三分区中读取第二 BOOT 分区中的系统引导程序的哈希值 ; 根据读取到的哈希值 对第二BOOT分区中的系统引导程序进行完整性验证, 在验证成功后, 根据第二BOOT分区中 的系统引导程序执行开机流程。 。

15、权 利 要 求 书 CN 102981872 A 4 1/8 页 5 终端设备开机、 升级方法和终端设备 技术领域 0001 本发明涉及无线通信领域, 尤其涉及一种终端设备开机、 升级方法和终端设备。 背景技术 0002 随着安卓 (Android) 系统的迅速发展和其市场份额的不断增大, 其客户群也在迅 猛增长。随之而来的就是系统在使用中问题的不断暴露。其中困扰各个厂家最大的问题就 是系统的升级失败而导致产品返厂的问题。 0003 Android的开放性造就了用户在使用上的最大灵活性。 包括自主刷机, 自主安装未 授权的第三方软件等。 其中, 出现最严重的就是将系统的系统引导程序 (boot。

16、loader) 刷坏。 直接导致产品无法升级, 无法开机。唯一途径就是返厂, 这样会对企业造成重大的损失。 0004 目前防止 bootloader 被刷坏的技术主要包括禁止升级 bootloader 或者对 bootloader 升级进行严格的安全限制。这样做的有一个很大的缺陷 : 当整个系统确实需要 升级 bootloader 时, 若不能及时升级 bootloader, 会对系统带来很大的风险, 并且灵活性 很差。 发明内容 0005 本发明实施例提供一种终端设备开机、 升级方法和终端设备, 用于提高终端设备 开机的成功率。 0006 一种终端设备开机方法, 该终端设备的存储单元包含第一。

17、引导 BOOT 分区和第二 BOOT分区, 第一BOOT分区和第二BOOT分区中各存储有一份相同的系统引导程序, 并在第三 分区中存储有第一BOOT分区中的系统引导程序的哈希值和第二BOOT分区中的系统引导程 序的哈希值, 该方法包括 : 0007 在接收到开机指令后, 从第三分区中读取第一 BOOT 分区中的系统引导程序的哈 希值 ; 根据读取到的哈希值对第一 BOOT 分区中的系统引导程序进行完整性验证, 若验证成 功, 则根据第一 BOOT 分区中的系统引导程序执行开机流程 ; 否则, 0008 从第三分区中读取第二 BOOT 分区中的系统引导程序的哈希值 ; 根据读取到的哈 希值对第二。

18、BOOT分区中的系统引导程序进行完整性验证, 在验证成功后, 根据第二BOOT分 区中的系统引导程序执行开机流程。 0009 一种终端设备升级方法, 该终端设备的存储单元包含第一引导 BOOT 分区和第二 BOOT分区, 第一BOOT分区和第二BOOT分区中各存储有一份相同的系统引导程序, 该方法包 括 : 0010 在下载到系统引导程序的升级包后, 根据该升级包对第一 BOOT 分区中的系统引 导程序进行升级, 若升级成功, 则根据该升级包对第二 BOOT 分区中的系统引导程序进行升 级, 否则, 0011 停止升级并关机。 0012 一种终端设备, 该终端设备的存储单元包含第一引导BOOT。

19、分区和第二BOOT分区, 说 明 书 CN 102981872 A 5 2/8 页 6 第一 BOOT 分区和第二 BOOT 分区中各存储有一份相同的系统引导程序, 并在第三分区中存 储有第一BOOT分区中的系统引导程序的哈希值和第二BOOT分区中的系统引导程序的哈希 值, 该终端设备还包括 : 0013 主处理器, 用于在接收到开机指令后, 从第三分区中读取第一 BOOT 分区中的系统 引导程序的哈希值 ; 根据读取到的哈希值对第一 BOOT 分区中的系统引导程序进行完整性 验证, 若验证成功, 则根据第一 BOOT 分区中的系统引导程序执行开机流程 ; 否则, 0014 从第三分区中读取第。

20、二 BOOT 分区中的系统引导程序的哈希值 ; 根据读取到的哈 希值对第二BOOT分区中的系统引导程序进行完整性验证, 在验证成功后, 根据第二BOOT分 区中的系统引导程序执行开机流程。 0015 一种终端设备, 该终端设备的存储单元包含第一引导BOOT分区和第二BOOT分区, 第一 BOOT 分区和第二 BOOT 分区中各存储有一份相同的系统引导程序, 该终端设备还包 括 : 0016 主处理器, 用于在下载到系统引导程序的升级包后, 根据该升级包对第一 BOOT 分 区中的系统引导程序进行升级, 若升级成功, 则根据该升级包对第二 BOOT 分区中的系统引 导程序进行升级, 否则, 00。

21、17 停止升级并关机。 0018 本发明实施例提供的一种方案中, 终端设备的存储单元包含第一引导 (BOOT) 分区 和第二 BOOT 分区, 第一 BOOT 分区和第二 BOOT 分区中各存储有一份相同的系统引导程序, 并在第三分区中存储有第一BOOT分区中的系统引导程序的哈希值和第二BOOT分区中的系 统引导程序的哈希值, 在开机时, 根据其中一个哈希值验证对应的系统引导程序的完整性, 若验证成功, 则根据该系统引导程序执行开机流程, 否则, 根据另外一个哈希值验证另一个 系统引导程序的完整性, 在验证成功后根据该系统引导程序执行开机流程。 可见, 本方案中 存储两套系统引导程序, 在一套。

22、系统引导程序损坏时还可以使用另一套系统引导程序进行 开机, 从而提高了终端设备的开机成功率。 0019 本发明实施例提供的另一种方案中, 在下载到系统引导程序的升级包后, 根据该 升级包对第一 BOOT 分区中的系统引导程序进行升级, 若升级成功, 则根据该升级包对第二 BOOT 分区中的系统引导程序进行升级, 否则, 停止升级并关机 ; 可见, 本方案中, 若对存储 的两套系统引导程序中的一套系统引导程序的升级失败, 则不再对另一套系统引导程序进 行升级, 从而能够保证终端设备中始终存储有至少一套完整的系统引导程序, 进而能够使 用该完整的系统引导程序进行开机, 提高了终端设备的开机成功率。。

23、 附图说明 0020 图 1 为本发明实施例提供的方法流程示意图 ; 0021 图 2 为本发明实施例提供的另一方法流程示意图 ; 0022 图 3a 为本发明实施例一的流程示意图 ; 0023 图 3b 为本发明实施例二的流程示意图 ; 0024 图 4 为本发明实施例提供的终端设备结构示意图。 具体实施方式 说 明 书 CN 102981872 A 6 3/8 页 7 0025 为了提高终端设备的开机成功率, 本发明实施例提供一种终端设备开机方法, 终 端设备的存储单元包含第一引导 (BOOT) 分区和第二 BOOT 分区, 第一 BOOT 分区和第二 BOOT 分区中各存储有一份相同的系。

24、统引导程序, 并在第三分区中存储有第一 BOOT 分区中的系 统引导程序的哈希值和第二 BOOT 分区中的系统引导程序的哈希值, 在开机时, 根据其中一 个哈希值验证对应的系统引导程序的完整性, 若验证成功, 则根据该系统引导程序执行开 机流程, 否则, 根据另外一个哈希值验证另一个系统引导程序的完整性, 在验证成功后根据 该系统引导程序执行开机流程。系统引导程序的哈希值, 是采用哈希算法计算得到的该系 统引导程序哈希值。 0026 参见图 1, 本发明实施例提供的终端设备开机方法, 包括以下步骤 : 0027 步骤 10 : 在接收到开机指令后, 从第三分区中读取第一 BOOT 分区中的系统。

25、引导程 序的哈希值 ; 根据读取到的哈希值对第一 BOOT 分区中的系统引导程序进行完整性验证 ; 若 验证成功, 则到步骤 11, 否则, 到步骤 12 ; 0028 这里, 对第一 BOOT 分区中的系统引导程序进行完整性验证的方法为 : 根据哈希算 法计算第一 BOOT 分区中的系统引导程序的哈希值, 将计算得到的哈希值与从第三分区中 读取到的第一 BOOT 分区中的系统引导程序的哈希值进行比较, 若两者一致, 则确定验证成 功, 否则, 验证失败。 0029 步骤 11 : 若验证成功, 则根据第一 BOOT 分区中的系统引导程序执行开机流程 ; 0030 步骤12 : 从第三分区中读。

26、取第二BOOT分区中的系统引导程序的哈希值 ; 根据读取 到的哈希值对第二 BOOT 分区中的系统引导程序进行完整性验证, 在验证成功后, 根据第二 BOOT 分区中的系统引导程序执行开机流程。 0031 这里, 对第二 BOOT 分区中的系统引导程序进行完整性验证的方法为 : 根据哈希算 法计算第二 BOOT 分区中的系统引导程序的哈希值, 将计算得到的哈希值与从第三分区中 读取到的第二 BOOT 分区中的系统引导程序的哈希值进行比较, 若两者一致, 则确定验证成 功, 否则, 验证失败。 0032 较佳的, 在根据第二 BOOT 分区中的系统引导程序执行开机流程之后, 可以将第一 BOOT。

27、分区进行格式化, 并将第二BOOT分区中的系统引导程序拷贝到第一BOOT分区中, 从而 实现了对第一 BOOT 分区的自修复。 0033 较佳的, 在下载到系统引导程序的升级包后, 根据该升级包对第一 BOOT 分区中的 系统引导程序进行升级, 若升级成功, 则根据该升级包对第二 BOOT 分区中的系统引导程序 进行升级, 否则, 停止升级并关机, 从而能够保证终端设备中始终存储有至少一套完整的系 统引导程序, 进而能够使用该完整的系统引导程序进行开机, 提高了终端设备的开机成功 率。 0034 较佳的, 存储单元中还存储有有效系统引导程序的特征信息 ; 在下载到系统引导 程序的升级包后、 且。

28、根据该升级包对第一 BOOT 分区中的系统引导程序进行升级之前, 根据 该特征信息验证下载到的升级包的有效性 ; 并在验证下载到的升级包为有效的系统引导程 序时, 根据该升级包对第一 BOOT 分区中的系统引导程序进行升级 ; 若验证下载到的升级包 为无效的系统引导程序, 则停止升级流程, 从而提高了系统引导程序升级时的容错能力。 这 里, 在验证下载到的升级包的有效性时, 具体可以是判断下载到的升级包中是否包含该特 征信息, 若是, 则确定升级包为有效的系统引导程序, 否则, 确定升级包为无效的系统引导 说 明 书 CN 102981872 A 7 4/8 页 8 程序。 0035 较佳的,。

29、 在根据该升级包对第一 BOOT 分区中的系统引导程序进行升级成功后, 计 算升级后的第一 BOOT 分区中的系统引导程序的新的哈希值, 并使用该新的哈希值更新 (即 替换) 第三分区中存储的第一 BOOT 分区中的系统引导程序的哈希值, 从而使得下次开机时 能够对第一 BOOT 分区进行正确的完整性验证, 为下次的开机流程做好准备。 0036 在根据该升级包对第二 BOOT 分区中的系统引导程序进行升级成功后, 进一步包 括 : 计算升级后的第二 BOOT 分区中的系统引导程序的新的哈希值, 并使用该新的哈希值更 新 (即替换) 第三分区中存储的第二BOOT分区中的系统引导程序的哈希值, 从。

30、而使得下次开 机时能够对第二 BOOT 分区进行正确的完整性验证, 为下次的开机流程做好准备。 0037 本方法的执行主体具体可以是终端设备的主CPU即AP, 本方法可以应用在Nvidia 等平台上。 0038 参见图 2, 本发明实施例提供一种终端设备升级方法, 该终端设备的存储单元包含 第一引导 BOOT 分区和第二 BOOT 分区, 第一 BOOT 分区和第二 BOOT 分区中各存储有一份相 同的系统引导程序, 包括以下步骤 : 0039 步骤 20 : 在下载到系统引导程序的升级包后, 根据该升级包对第一 BOOT 分区中的 系统引导程序进行升级, 若升级成功, 则到步骤 21, 否则。

31、, 到步骤 22 ; 0040 步骤 21 : 根据该升级包对第二 BOOT 分区中的系统引导程序进行升级 ; 0041 步骤 22 : 停止升级并关机。 0042 较佳的, 终端设备的存储单元中还存储有有效系统引导程序的特征信息 ; 0043 在下载到系统引导程序的升级包后、 且根据该升级包对第一 BOOT 分区中的系统 引导程序进行升级之前, 根据该特征信息验证下载到的升级包的有效性 ; 并在验证下载到 的升级包为有效的系统引导程序时, 根据该升级包对第一 BOOT 分区中的系统引导程序进 行升级。 若验证下载到的升级包为无效的系统引导程序, 则停止升级流程, 从而提高了系统 引导程序升级。

32、时的容错能力。 这里, 在验证下载到的升级包的有效性时, 具体可以是判断下 载到的升级包中是否包含该特征信息, 若是, 则确定升级包为有效的系统引导程序, 否则, 确定升级包为无效的系统引导程序。 0044 较佳的, 在存储单元的第三分区中存储有第一 BOOT 分区中的系统引导程序的哈 希值和第二 BOOT 分区中的系统引导程序的哈希值 ; 0045 在接收到开机指令后, 从第三分区中读取第一 BOOT 分区中的系统引导程序的哈 希值 ; 根据读取到的哈希值对第一 BOOT 分区中的系统引导程序进行完整性验证, 若验证成 功, 则根据第一 BOOT 分区中的系统引导程序执行开机流程 ; 否则,。

33、 0046 从第三分区中读取第二 BOOT 分区中的系统引导程序的哈希值 ; 根据读取到的哈 希值对第二BOOT分区中的系统引导程序进行完整性验证, 在验证成功后, 根据第二BOOT分 区中的系统引导程序执行开机流程。 0047 这里, 对第一 BOOT 分区中的系统引导程序进行完整性验证的方法为 : 根据哈希算 法计算第一 BOOT 分区中的系统引导程序的哈希值, 将计算得到的哈希值与从第三分区中 读取到的第一 BOOT 分区中的系统引导程序的哈希值进行比较, 若两者一致, 则确定验证成 功, 否则, 验证失败。 对第二BOOT分区中的系统引导程序进行完整性验证的方法为 : 根据哈 希算法计。

34、算第二 BOOT 分区中的系统引导程序的哈希值, 将计算得到的哈希值与从第三分 说 明 书 CN 102981872 A 8 5/8 页 9 区中读取到的第二 BOOT 分区中的系统引导程序的哈希值进行比较, 若两者一致, 则确定验 证成功, 否则, 验证失败。 0048 较佳的, 在根据该升级包对第一 BOOT 分区中的系统引导程序进行升级成功后, 进 一步包括 : 计算升级后的第一 BOOT 分区中的系统引导程序的新的哈希值, 并使用该新的哈 希值更新 (即替换) 第三分区中存储的第一BOOT分区中的系统引导程序的哈希值, 从而使得 下次开机时能够对第一 BOOT 分区进行正确的完整性验证。

35、, 为下次的开机流程做好准备 ; 0049 在根据该升级包对第二 BOOT 分区中的系统引导程序进行升级成功后, 进一步包 括 : 计算升级后的第二 BOOT 分区中的系统引导程序的新的哈希值, 并使用该新的哈希值更 新 (即替换) 第三分区中存储的第二BOOT分区中的系统引导程序的哈希值, 从而使得下次开 机时能够对第二 BOOT 分区进行正确的完整性验证, 为下次的开机流程做好准备。 0050 较佳的, 在根据第二 BOOT 分区中的系统引导程序执行开机流程之后, 将第一 BOOT 分区进行格式化, 并将第二BOOT分区中的系统引导程序拷贝到第一BOOT分区中, 从而实现 了对第一 BOO。

36、T 分区的自修复。 0051 下面结合具体实施例对本申请进行具体说明 : 0052 实施例一 : 0053 本实施例执行终端设备的开机流程, 如图 3a 所示 : 0054 步骤 1 : 终端设备的主处理器在接收到开机指令后, 读取第一 BOOT 分区即 BOOT1 中的系统引导程序的哈希值 ; 根据读取到的哈希值对 BOOT1 中的系统引导程序进行完整性 验证, 判断验证是否成功, 若是, 则到步骤 2, 否则, 到步骤 3 ; 0055 步骤 2 : 开始执行 BOOT1 中的系统引导程序, 到步骤 7 ; 0056 步骤 3 : 读取第二 BOOT 分区即 BOOT2 中的系统引导程序的。

37、哈希值 ; 根据读取到的 哈希值对 BOOT2 中的系统引导程序进行完整性验证, 判断验证是否成功, 若是, 则到步骤 5, 否则, 到步骤 4 ; 0057 步骤 4 : 开机失败, 本流程结束 ; 0058 步骤 5 : 开始执行 BOOT2 中的系统引导程序 ; 0059 步骤 6 : 将 BOOT1 进行格式化, 并将 BOOT2 中的系统引导程序拷贝到 BOOT1 中 ; 0060 步骤 7 : 系统启动。 0061 实施例二 : 如图 3b 所示 : 0062 步骤 1 : 终端设备的主处理器从 TF 卡读取下载到的系统引导程序的升级包 ; 0063 步骤 2 : 根据存储的有效系。

38、统引导程序的特征信息, 验证升级包的有效性 ; 0064 步骤 3 : 判断升级包是否有效, 若是, 则到步骤 5, 否则, 到步骤 4 ; 0065 步骤 4 : 停止升级, 本流程结束 ; 0066 步骤 5 : 根据升级包对 BOOT1 中的系统引导程序进行升级 ; 0067 步骤 6 : 判断对 BOOT1 的升级是否成功, 若是, 则到步骤 7, 否则, 到步骤 4 ; 0068 步骤 7 : 根据升级包对 BOOT2 中的系统引导程序进行升级 ; 0069 步骤 8 : 判断对 BOOT2 的升级是否成功, 若是, 则到步骤 9, 否则, 到步骤 4 ; 0070 步骤 9 : 更。

39、新其他镜像。 0071 实施例三 : 0072 步骤一 : 执行实施例一中的步骤 1- 步骤 7 ; 说 明 书 CN 102981872 A 9 6/8 页 10 0073 步骤二 : 若终端设备成功开机, 则执行实施例二中的步骤 1- 步骤 9。 0074 实施例四 : 0075 步骤一 : 执行实施例二中的步骤 1- 步骤 9 ; 0076 步骤二 : 执行实施例一中的步骤 1- 步骤 7。 0077 参见图 4, 本发明实施例提供一种终端设备, 该终端设备的存储单元 40 包含第一 引导 BOOT 分区 401 和第二 BOOT 分区 402, 第一 BOOT 分区 401 和第二 B。

40、OOT 分区 402 中各存 储有一份相同的系统引导程序, 并在第三分区 403 中存储有第一 BOOT 分区 401 中的系统引 导程序的哈希值和第二 BOOT 分区 402 中的系统引导程序的哈希值, 该终端设备还包括 : 0078 主处理器 41, 用于在接收到开机指令后, 从第三分区中读取第一 BOOT 分区 401 中 的系统引导程序的哈希值 ; 根据读取到的哈希值对第一BOOT分区401中的系统引导程序进 行完整性验证, 若验证成功, 则根据第一BOOT分区401中的系统引导程序执行开机流程 ; 否 则, 0079 从第三分区403中读取第二BOOT分区402中的系统引导程序的哈希。

41、值 ; 根据读取 到的哈希值对第二 BOOT 分区 402 中的系统引导程序进行完整性验证, 在验证成功后, 根据 第二 BOOT 分区 402 中的系统引导程序执行开机流程。 0080 进一步的, 所述主处理器 41 还用于 : 0081 在根据第二 BOOT 分区 402 中的系统引导程序执行开机流程之后, 将第一 BOOT 分 区 401 进行格式化, 并将第二 BOOT 分区 402 中的系统引导程序拷贝到第一 BOOT 分区 401 中。 0082 进一步的, 所述主处理器 41 还用于 : 0083 在接收到开机指令之前或执行开机流程之后, 在下载到系统引导程序的升级包 时, 根据。

42、该升级包对第一BOOT分区401中的系统引导程序进行升级, 若升级成功, 则根据该 升级包对第二 BOOT 分区 402 中的系统引导程序进行升级, 否则, 停止升级并关机。 0084 进一步的, 所述存储单元 40 中还存储有有效系统引导程序的特征信息 ; 0085 所述主处理器 41 还用于 : 0086 在下载到系统引导程序的升级包后、 且根据该升级包对第一BOOT分区401中的系 统引导程序进行升级之前, 根据所述特征信息验证下载到的升级包的有效性 ; 在验证下载 到的升级包为有效的系统引导程序时, 根据该升级包对第一BOOT分区401中的系统引导程 序进行升级。 0087 进一步的,。

43、 所述主处理器 41 还用于 : 0088 在根据该升级包对第一BOOT分区401中的系统引导程序进行升级成功后, 计算升 级后的第一BOOT分区401中的系统引导程序的新的哈希值, 并使用该新的哈希值更新第三 分区 403 中存储的第一 BOOT 分区 401 中的系统引导程序的哈希值 ; 0089 在根据该升级包对第二BOOT分区402中的系统引导程序进行升级成功后, 计算升 级后的第二BOOT分区402中的系统引导程序的新的哈希值, 并使用该新的哈希值更新第三 分区 403 中存储的第二 BOOT 分区 402 中的系统引导程序的哈希值。 0090 仍参见图 4, 本发明实施例提供一种终。

44、端设备, 该终端设备的存储单元 40 包含第 一引导 BOOT 分区 401 和第二 BOOT 分区 402, 第一 BOOT 分区 401 和第二 BOOT 分区 402 中各 存储有一份相同的系统引导程序, 该终端设备还包括 : 说 明 书 CN 102981872 A 10 7/8 页 11 0091 主处理器 41, 用于在下载到系统引导程序的升级包后, 根据该升级包对第一 BOOT 分区 401 中的系统引导程序进行升级, 若升级成功, 则根据该升级包对第二 BOOT 分区 402 中的系统引导程序进行升级, 否则, 0092 停止升级并关机。 0093 进一步的, 所述存储单元 4。

45、0 中还存储有有效系统引导程序的特征信息 ; 0094 所述主处理器 41 还用于 : 0095 在下载到系统引导程序的升级包后、 且根据该升级包对第一BOOT分区401中的系 统引导程序进行升级之前, 根据所述特征信息验证下载到的升级包的有效性 ; 在验证下载 到的升级包为有效的系统引导程序时, 根据该升级包对第一BOOT分区401中的系统引导程 序进行升级。 0096 进一步的, 在所述存储单元的第三分区 403 中存储有第一 BOOT 分区 401 中的系统 引导程序的哈希值和第二 BOOT 分区 402 中的系统引导程序的哈希值 ; 0097 所述主处理器 41 还用于 : 0098 。

46、在接收到开机指令后, 从第三分区 403 中读取第一 BOOT 分区 401 中的系统引导程 序的哈希值 ; 根据读取到的哈希值对第一 BOOT 分区 401 中的系统引导程序进行完整性验 证, 若验证成功, 则根据第一 BOOT 分区 401 中的系统引导程序执行开机流程 ; 否则, 0099 从第三分区中读取第二BOOT分区402中的系统引导程序的哈希值 ; 根据读取到的 哈希值对第二 BOOT 分区 402 中的系统引导程序进行完整性验证, 在验证成功后, 根据第二 BOOT 分区 402 中的系统引导程序执行开机流程。 0100 进一步的, 所述主处理器 41 还用于 : 0101 在。

47、根据该升级包对第一BOOT分区401中的系统引导程序进行升级成功后, 计算升 级后的第一BOOT分区401中的系统引导程序的新的哈希值, 并使用该新的哈希值更新第三 分区 403 中存储的第一 BOOT 分区 401 中的系统引导程序的哈希值 ; 0102 在根据该升级包对第二BOOT分区402中的系统引导程序进行升级成功后, 计算升 级后的第二BOOT分区402中的系统引导程序的新的哈希值, 并使用该新的哈希值更新第三 分区 403 中存储的第二 BOOT 分区 402 中的系统引导程序的哈希值。 0103 进一步的, 所述主处理器 41 还用于 : 0104 在根据第二 BOOT 分区 4。

48、02 中的系统引导程序执行开机流程之后, 将第一 BOOT 分 区 401 进行格式化, 并将第二 BOOT 分区 402 中的系统引导程序拷贝到第一 BOOT 分区 401 中。 0105 本发明中的终端设备具体可以是平板电脑、 手机终端等。 0106 综上, 本发明的有益效果包括 : 0107 本发明实施例提供的一种方案中, 终端设备的存储单元包含第一引导 (BOOT) 分区 和第二 BOOT 分区, 第一 BOOT 分区和第二 BOOT 分区中各存储有一份相同的系统引导程序, 并在第三分区中存储有第一BOOT分区中的系统引导程序的哈希值和第二BOOT分区中的系 统引导程序的哈希值, 在开。

49、机时, 根据其中一个哈希值验证对应的系统引导程序的完整性, 若验证成功, 则根据该系统引导程序执行开机流程, 否则, 根据另外一个哈希值验证另一个 系统引导程序的完整性, 在验证成功后根据该系统引导程序执行开机流程。 可见, 本方案中 存储两套系统引导程序, 在一套系统引导程序损坏时还可以使用另一套系统引导程序进行 说 明 书 CN 102981872 A 11 8/8 页 12 开机, 从而提高了终端设备的开机成功率。 0108 本发明实施例提供的另一种方案中, 在下载到系统引导程序的升级包后, 根据该 升级包对第一 BOOT 分区中的系统引导程序进行升级, 若升级成功, 则根据该升级包对第二 BOOT 分区中的系统引导程序进行升级, 否则, 停止升级并关机 ; 可见, 本方案中, 若对存储 的两套系统引导程序中的一套系统引导程序的升级失败, 则不再对另一。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1