CN111104173A - 一种引导程序的保护设计方法 - Google Patents
一种引导程序的保护设计方法 Download PDFInfo
- Publication number
- CN111104173A CN111104173A CN201911166979.9A CN201911166979A CN111104173A CN 111104173 A CN111104173 A CN 111104173A CN 201911166979 A CN201911166979 A CN 201911166979A CN 111104173 A CN111104173 A CN 111104173A
- Authority
- CN
- China
- Prior art keywords
- partition
- bootloader
- boot
- data
- boot0
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本发明提出一种引导程序的保护设计方法,包括:在存储器件逻辑分区的Bootloader分区存储有一份引导程序,在存储器件的固有分区Boot0和Boot1中也分别存储与Bootloader分区中的引导程序一样的引导程序,并且设定引导程序在分区中的备份启动顺序为:首先是Bootloader,其次是Boot0,最后是Boot1。通过本发明提出的引导程序的保护设计方法,可以有效防止智能终端设备在升级过程中出现掉电现象导致引导程序为空或者Bootloader分区中的引导程序被破坏导致的系统无法启动的问题。
Description
技术领域
本发明涉及嵌入式系统应用领域,尤其是一种引导程序的保护设计方法。
背景技术
当前智能终端设备的软件系统随着使用周期经常有升级的需求,升级软件一方面可以使得生产商家出厂后的智能终端设备的软件出现的各种问题解决得到有效的解决,其中包含引导程序部分的bug,需要运用以太网给终端用户的机器升级;另外一方面生产商家为了提升自己产品的市场竞争力,每隔一段时间会推出新的软件产品,其中就有部分功能可能需要修改引导程序,这个时候也需要进行对应的升级。
在智能终端设备升级过程中,为了保证升级的完整性,通常行业内采用这样的做法,即先擦除Bootloader分区(存储引导程序的分区),然后再升级其他分区,比如Boot分区(内核分区)、System分区(文件系统分区)、Data分区(用户数据分区),等其他分区升级完毕之后,再来升级Bootloader分区的引导程序。这样做的好处是可以确保升级的完整性,但如果升级过程掉电,系统便会无法启动。但是,对于终端用户来说,如果升级过程掉电,就会导致Bootloader分区中引导程序为空或者引导程序被破坏,致使智能设备无法响应导致失效,如果要进行Recovery(恢复),操作会十分麻烦。
发明内容
为了解决上述问题,本发明提出一种引导程序的保护设计方法,可以有效防止智能终端设备在升级过程中出现掉电现象导致引导程序为空或者Bootloader分区中的引导程序被破坏导致的系统无法启动的问题。
本发明通过以下技术方案实现的:
本发明提出一种引导程序的保护设计方法,包括:
在存储器件逻辑分区的Bootloader分区存储有一份引导程序,在存储器件的固有分区Boot0和Boot1中也分别存储与Bootloader分区中的引导程序一样的引导程序,并且设定引导程序在分区中的备份启动顺序为:首先是Bootloader,其次是Boot0,最后是Boot1;
在启动Bootloader分区的数据的时候,先检测其完整性,如果完整,则引导程序从Bootloader分区中装载;如果不完整,则迅速启动备份方案中的Boot0分区数据;
在启动Boot0分区的数据的时候,先检测其完整性,如果完整,则引导程序从Boot0分区中装载,如果不完整,则迅速启动备份方案中的Boot1分区数据;
在启动在启动Boot1分区的数据的时候,先检测其完整性,如果完整,则引导程序从Boot1分区中装载。
进一步的,包括:
在线升级的过程中,在完成升级Boot分区、System分区、Data分区之前,先不对Bootloader分区进行擦除;
待Boot分区、System分区、Data分区升级完毕后,先擦出Bootloader分区然后对Bootloader升级最新的引导程序,接着擦除Boot0分区然后对Boot0升级最新的备份引导程序,最后擦除Boot1分区然后对Boot1升级最新的备份引导程序。
本发明的有益效果:
通过本发明提出的引导程序的保护设计方法,可以有效防止智能终端设备在升级过程中出现掉电现象导致引导程序为空或者Bootloader分区中的引导程序被破坏导致的系统无法启动的问题,能够确保Bootloaer分区中的引导程序出错了或者分区为空的时候,系统依然能从Boot0或者Boot1分区中的正常启动;可以确保在升级过程若出现掉电现象,至少有一个分区中有引导程序数据,从而使得系统不会因此而无法响应,解决引导程序无法启动的问题。
附图说明
图1为本发明的引导程序的保护设计方法的流程示意图。
具体实施方式
为了更加清楚、完整的说明本发明的技术方案,下面结合附图对本发明作进一步说明。
请参考图1,本发明提出一种引导程序的保护设计方法,包括:
在存储器件逻辑分区的Bootloader分区存储有一份引导程序,在存储器件的固有分区Boot0和Boot1中也分别存储与Bootloader分区中的引导程序一样的引导程序,并且设定引导程序在分区中的备份启动顺序为:首先是Bootloader,其次是Boot0,最后是Boot1;
在启动Bootloader分区的数据的时候,先检测其完整性,如果完整,则引导程序从Bootloader分区中装载;如果不完整,则迅速启动备份方案中的Boot0分区数据;
在启动Boot0分区的数据的时候,先检测其完整性,如果完整,则引导程序从Boot0分区中装载,如果不完整,则迅速启动备份方案中的Boot1分区数据;
在启动在启动Boot1分区的数据的时候,先检测其完整性,如果完整,则引导程序从Boot1分区中装载;如果不完整,则表示启动失败。
在本实施方式中,引导程序一旦遭到破坏,系统便会无法启动,所以本发明引进如上述的引导程序的存储备份机制。根据eMMC(Embedded Multi Media Card)的物理特性可以将其分为两个分区:逻辑分区和固有分区,其中固有分区有Boot0和Boot1两个,各个分区的大小大约是2M或者4M,用户一般不操作固有分区;逻辑分区的容量比较大,一般情况下我们会把所有的系统数据都存储在逻辑分区:包括引导程序数据、Boot数据、System数据、Data数据等等。考虑到固有分区的安全性,可以在eMMC烧片器烧录程序的时候,在存储器件逻辑分区的Bootloader分区存储有一份引导程序,在存储器件的固有分区Boot0和Boot1中也分别存储与Bootloader分区中的引导程序一样的引导程序,并且设定引导程序在分区中的备份启动顺序为:首先是Bootloader,其次是Boot0,最后是Boot1。
进一步的,包括:在线升级的过程中,在完成升级Boot分区、System分区、Data分区之前,先不对Bootloader分区进行擦除;
待Boot分区、System分区、Data分区升级完毕后,先擦出Bootloader分区然后对Bootloader升级最新的引导程序,接着擦除Boot0分区然后对Boot0升级最新的备份引导程序,最后擦除Boot1分区然后对Boot1升级最新的备份引导程序。
在本实施方式中,相比于行业内采用现有的做法,即先擦除Bootloader分区(存储引导程序的分区),然后再升级其他分区,比如Boot分区(内核分区)、System分区(文件系统分区)、Data分区(用户数据分区),等其他分区升级完毕之后,再来升级Bootloader分区的引导程序,该做法如果在升级Bootloader,Boot0,Boot1之前掉电,三个分区中存在为空的情况,此时系统无引导程序无法启动。因此为了避免上述问题,在完成升级Boot分区、System分区、Data分区之前,先不对Bootloader分区进行擦除;而是待Boot分区、System分区、Data分区升级完毕后,先擦出Bootloader分区然后对Bootloader升级最新的引导程序,接着擦除Boot0分区然后对Boot0升级最新的备份引导程序,最后擦除Boot1分区然后对Boot1升级最新的备份引导程序。
通过本发明提出的引导程序的保护设计方法,可以有效防止智能终端设备在升级过程中出现掉电现象导致引导程序为空或者Bootloader分区中的引导程序被破坏导致的系统无法启动的问题,能够确保Bootloaer分区中的引导程序出错了或者分区为空的时候,系统依然能从Boot0或者Boot1分区中的正常启动;可以确保在升级过程若出现掉电现象,至少有一个分区中有引导程序数据,从而使得系统不会因此而无法响应,解决引导程序无法启动的问题。
当然,本发明还可有其它多种实施方式,基于本实施方式,本领域的普通技术人员在没有做出任何创造性劳动的前提下所获得其他实施方式,都属于本发明所保护的范围。
Claims (2)
1.一种引导程序的保护设计方法,其特征在于,包括:
在存储器件逻辑分区的Bootloader分区存储有一份引导程序,在存储器件的固有分区Boot0和Boot1中也分别存储与Bootloader分区中的引导程序一样的引导程序,并且设定引导程序在分区中的备份启动顺序为:首先是Bootloader,其次是Boot0,最后是Boot1;
在启动Bootloader分区的数据的时候,先检测其完整性,如果完整,则引导程序从Bootloader分区中装载;如果不完整,则迅速启动备份方案中的Boot0分区数据;
在启动Boot0分区的数据的时候,先检测其完整性,如果完整,则引导程序从Boot0分区中装载,如果不完整,则迅速启动备份方案中的Boot1分区数据;
在启动在启动Boot1分区的数据的时候,先检测其完整性,如果完整,则引导程序从Boot1分区中装载。
2.根据权利要求1所述的引导程序的保护设计方法,其特征在于,包括:
在线升级的过程中,在完成升级Boot分区、System分区、Data分区之前,先不对Bootloader分区进行擦除;
待Boot分区、System分区、Data分区升级完毕后,先擦出Bootloader分区然后对Bootloader升级最新的引导程序,接着擦除Boot0分区然后对Boot0升级最新的备份引导程序,最后擦除Boot1分区然后对Boot1升级最新的备份引导程序。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911166979.9A CN111104173A (zh) | 2019-11-25 | 2019-11-25 | 一种引导程序的保护设计方法 |
| PCT/CN2020/114999 WO2021103745A1 (zh) | 2019-11-25 | 2020-09-14 | 一种引导程序的保护设计方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911166979.9A CN111104173A (zh) | 2019-11-25 | 2019-11-25 | 一种引导程序的保护设计方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN111104173A true CN111104173A (zh) | 2020-05-05 |
Family
ID=70421255
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201911166979.9A Pending CN111104173A (zh) | 2019-11-25 | 2019-11-25 | 一种引导程序的保护设计方法 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN111104173A (zh) |
| WO (1) | WO2021103745A1 (zh) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112631625A (zh) * | 2020-11-20 | 2021-04-09 | 展讯通信(上海)有限公司 | 嵌入式设备的系统升级方法、装置及嵌入式设备 |
| WO2021103745A1 (zh) * | 2019-11-25 | 2021-06-03 | 晶晨半导体(深圳)有限公司 | 一种引导程序的保护设计方法 |
| CN113741944A (zh) * | 2021-08-16 | 2021-12-03 | 南京苏美达智能技术有限公司 | 一种具备升级功能的机器程序系统及升级方法与应用 |
| CN115357908A (zh) * | 2022-10-19 | 2022-11-18 | 中国人民解放军军事科学院系统工程研究院 | 一种网络设备内核可信度量与自动修复方法 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102945176A (zh) * | 2012-11-09 | 2013-02-27 | 青岛海信移动通信技术股份有限公司 | 终端设备开机、升级方法和设备 |
| CN103699421A (zh) * | 2014-01-08 | 2014-04-02 | 金三立视频科技(深圳)有限公司 | 嵌入式设备系统升级方法及其装置 |
| CN110210210A (zh) * | 2019-05-27 | 2019-09-06 | 北京中电华大电子设计有限责任公司 | 一种终端设备的逻辑安全设计方法和物理安全设计结构 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102169442B (zh) * | 2011-03-24 | 2014-09-10 | 杭州华三通信技术有限公司 | 使用usb设备进行系统引导的方法、设备、装置及系统 |
| CN107967141B (zh) * | 2017-11-27 | 2021-04-13 | 北京小米移动软件有限公司 | 操作系统升级方法、装置及终端 |
| CN111104173A (zh) * | 2019-11-25 | 2020-05-05 | 晶晨半导体(深圳)有限公司 | 一种引导程序的保护设计方法 |
-
2019
- 2019-11-25 CN CN201911166979.9A patent/CN111104173A/zh active Pending
-
2020
- 2020-09-14 WO PCT/CN2020/114999 patent/WO2021103745A1/zh not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102945176A (zh) * | 2012-11-09 | 2013-02-27 | 青岛海信移动通信技术股份有限公司 | 终端设备开机、升级方法和设备 |
| CN103699421A (zh) * | 2014-01-08 | 2014-04-02 | 金三立视频科技(深圳)有限公司 | 嵌入式设备系统升级方法及其装置 |
| CN110210210A (zh) * | 2019-05-27 | 2019-09-06 | 北京中电华大电子设计有限责任公司 | 一种终端设备的逻辑安全设计方法和物理安全设计结构 |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021103745A1 (zh) * | 2019-11-25 | 2021-06-03 | 晶晨半导体(深圳)有限公司 | 一种引导程序的保护设计方法 |
| CN112631625A (zh) * | 2020-11-20 | 2021-04-09 | 展讯通信(上海)有限公司 | 嵌入式设备的系统升级方法、装置及嵌入式设备 |
| CN112631625B (zh) * | 2020-11-20 | 2022-10-21 | 展讯通信(上海)有限公司 | 嵌入式设备的系统升级方法、装置及嵌入式设备 |
| CN113741944A (zh) * | 2021-08-16 | 2021-12-03 | 南京苏美达智能技术有限公司 | 一种具备升级功能的机器程序系统及升级方法与应用 |
| CN115357908A (zh) * | 2022-10-19 | 2022-11-18 | 中国人民解放军军事科学院系统工程研究院 | 一种网络设备内核可信度量与自动修复方法 |
| CN115357908B (zh) * | 2022-10-19 | 2022-12-23 | 中国人民解放军军事科学院系统工程研究院 | 一种网络设备内核可信度量与自动修复方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2021103745A1 (zh) | 2021-06-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN103299276B (zh) | 嵌入式装置的软件更新过程 | |
| CN111104173A (zh) | 一种引导程序的保护设计方法 | |
| CN104572229B (zh) | 嵌入式系统的固件升级方法以及固件升级装置 | |
| CN105094927B (zh) | 一种设备固件升级方法和装置 | |
| CN104572206A (zh) | 应用程序自更新和备份恢复的方法 | |
| CN105912356A (zh) | 一种支持版本回退的光模块固件程序在线升级方法 | |
| US20120239920A1 (en) | Approaches for updating bios | |
| CN104834547B (zh) | 一种Squashfs只读根文件系统的远程升级方法及系统 | |
| CN106775610B (zh) | 一种电子设备启动方法及一种电子设备 | |
| WO2013103023A1 (ja) | 情報処理装置、情報処理方法、およびコンピュータプログラム | |
| CN105808270A (zh) | 固件变量更新方法 | |
| CN102165422A (zh) | 固件更新装置以及方法 | |
| WO2020062887A1 (zh) | 基于闪存微控制器的固件升级方法和系统及闪存微控制器 | |
| CN102508686A (zh) | 一种系统安全升级的实现方法及其系统 | |
| CN102722394A (zh) | 一种嵌入式设备的启动升级方法 | |
| CN107566169B (zh) | 一种基于openwrt的固件升级方法及路由器 | |
| CN104063256A (zh) | 基于最小操作系统的分区及固件升级方法 | |
| CN106775674B (zh) | 一种基于通用引导加载程序的设备及其启动方法 | |
| CN111045712A (zh) | 一种具有备份功能的单系统升级方法及系统 | |
| CN105607972A (zh) | 一种异常修复的方法及装置 | |
| CN106325911A (zh) | 一种实现bootrom升级的方法及装置 | |
| CN105138430A (zh) | 一种嵌入式操作系统备份与恢复的方法及装置 | |
| CN120179321B (zh) | 固件加载方法、装置、电子设备及存储介质 | |
| CN100476745C (zh) | 在Linux操作系统引导过程中实现映象文件自动容错的方法 | |
| CN106528114A (zh) | 安卓固件应用、安卓固件和固件升级方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200505 |
|
| RJ01 | Rejection of invention patent application after publication |