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
- boot
- data
- program
- 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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 active Application Filing
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 |
---|---|---|
CN111104173A (zh) | 一种引导程序的保护设计方法 | |
CN103299276B (zh) | 嵌入式装置的软件更新过程 | |
CN109032632B (zh) | 一种fota升级方法、无线通信终端及存储介质 | |
CN104572206A (zh) | 应用程序自更新和备份恢复的方法 | |
CN102722394A (zh) | 一种嵌入式设备的启动升级方法 | |
CN109324927A (zh) | 一种基于分布式存储***的虚拟机备份方法及*** | |
CN103455354A (zh) | 一种防止固件升级失败的方法和设备 | |
CN102508686A (zh) | 一种***安全升级的实现方法及其*** | |
CN104834547A (zh) | 一种Squashfs只读根文件***的远程升级方法及*** | |
CN104915226A (zh) | 一种网络设备软件启动方法、装置及网络设备 | |
CN110231949A (zh) | ***升级方法、装置、电子设备和存储介质 | |
CN112783537A (zh) | 基于MTD存储设备的嵌入式linux操作***升级方法及*** | |
CN107608705A (zh) | 一种无线wifi视频设备及其固件升级方法 | |
CN102541595A (zh) | 智能设备的升级方法、装置及智能设备 | |
CN104077167A (zh) | 基于nand flash的启动加载方法和装置 | |
CN104331318A (zh) | 一种嵌入式双***及其工作方法 | |
CN106775674B (zh) | 一种基于通用引导加载程序的设备及其启动方法 | |
CN106033362A (zh) | 一种闪存分区的处理方法和装置 | |
CN104063256A (zh) | 基于最小操作***的分区及固件升级方法 | |
CN104081376A (zh) | 使用分布式文件***协议远程维持***固件映像 | |
CN111045712A (zh) | 一种具有备份功能的单***升级方法及*** | |
CN106156626B (zh) | 一种***安全升级的方法和装置 | |
CN104951348A (zh) | 一种可中断的recovery升级方法及装置 | |
CN106933604B (zh) | 一种***升级方法及装置 | |
CN105825126A (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 |