CN108319520A - 基于安全存储的移动设备备用操作系统 - Google Patents

基于安全存储的移动设备备用操作系统 Download PDF

Info

Publication number
CN108319520A
CN108319520A CN201810074987.XA CN201810074987A CN108319520A CN 108319520 A CN108319520 A CN 108319520A CN 201810074987 A CN201810074987 A CN 201810074987A CN 108319520 A CN108319520 A CN 108319520A
Authority
CN
China
Prior art keywords
operating system
alternate operating
user data
data area
mobile device
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
Application number
CN201810074987.XA
Other languages
English (en)
Inventor
张志和
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201810074987.XA priority Critical patent/CN108319520A/zh
Publication of CN108319520A publication Critical patent/CN108319520A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供了一种基于安全存储的移动设备备用操作系统,其中,所述移动设备具备CPU和存储单元;所述存储单元的硬件分区包括:系统引导文件分区、回环保护分区、用户数据区和增强用户数据区;在所述用户数据区上设有主操作系统;在所述增强用户数据区上设有备用操作系统;在所述备用操作系统烧录到所述增强用户数据区后,所述增强用户数据区在所述存储单元的生命周期内被设置为永久写保护;当所述主操作系统不能启动或运行异常时,启动所述备用操作系统,执行系统恢复程序以恢复所述主操作系统。本发明能够避免用户的智能设备操作系统出现问题或不能启动时面临的困扰。

Description

基于安全存储的移动设备备用操作系统
技术领域
本发明涉及移动设备的操作系统,尤其涉及一种基于安全存储的移动设备备用操作系统。
背景技术
手机、平板电脑等移动设备,所采用的存储技术一直在不断的发展。Nand Flash(Nand闪存)存储器具有价格低廉,容量较大,写入速度快等优点,在业界得到了广泛的应用。但是由于其电器特性原因,容易受到位反转,坏块等干扰,出现稳定性问题。
eMMC(Embedded Multi Media Card,内嵌式多媒体存储卡)存储芯片已经逐步替代NAND Flash,目前已成为市场的主流。但由于其内部集成封装了NAND Flash,同样有稳定性的问题。
eMMC是主要针对手机等移动设备的内嵌式存储器工业标准规格。如图1所示,eMMC存储芯片在封装中集成了一个控制器和NAND Flash,提供标准MMC接口,并管理NANDFlash。控制器针对NAND Flash的特性,包括了错误探测和纠正(ECC),损耗均衡(wearleveling),坏块管理(BBM)等技术。这样就使得手机厂商减小了存储器的调试等工作量,缩短产品的开发时间。
具体地,如图2所示,eMMC存储芯片的硬件分区通常如下:
第一系统引导文件分区(Boot Area partition1):其为稳定可靠的存储区域,通常可用于存放系统引导程序,如引导加载程序(Bootloader);
第二系统引导文件分区(Boot Area partition2):其为稳定可靠的存储区域,可用于存放第二段系统引导程序。
回环保护分区(RPMB Area partition):其为保护性存储,是用来给系统存放一些特殊的、需要进行访问授权的数据(指纹,安全支付等);
用户数据区(User Data Area):其为一般性的存储区域,通常用于存放操作系统的其它部分和用户数据。
增强用户数据区(Enhanced User Data Area):其为稳定可靠的存储区域,一般用于重要数据的存储。另外,这一区域在eMMC设备的整个生命周期内,可以配置为永久性写保护(permanent write protection)的存储空间。
另外目前手机的逻辑分区通常如下:
一般的,在实际应用中,类似安卓(Android)或者Linux为基础的手机,按照功能一般需要以下几个逻辑分区:
Bootloader(引导加载程序):其为系统引导程序,通常会分为两段,PBL(primarybootloader,主引导加载程序),SBL(second bootloader,第二段引导加载程序),以下为描述方便,通称为Bootloader;
Boot:Linux内核(Linux kernel)及虚拟内存盘(ramdisk);
Modem:运行于基带芯片(Baseband processor)的相关程序;
NV:厂家校准,配置等数据;
Logo:启动界面的图片或动画数据;
System:系统主要部件;
Userdata:用户数据;
Other:一些复杂的系统,可能还会包含TOS,WIFI,audio等模块的独立分区。
一般情况下,厂商会把Bootloader放在eMMC的系统引导文件分区物理分区,其它数据分配到用户数据区物理分区,如图3所示。
也有厂商会把所有的逻辑分区分配到用户数据区物理分区,如图4所示。
只有在涉及到指纹,可信区域(TrustZone)时,才会用加密方式使用回环保护分区物理分区。
而增强用户数据区物理分区几乎没有被用到,只有一些特种的高稳定性需求的设备,可能才会使用这一物理分区,用于存储重要数据。
现有的手机运行异常的几种原因如下:
以下几种常见的情况,会导致手机操作系统运行异常,需要通过刷机的方式来解决:
存储设备异常:NAND Flash由于其电器特性原因,容易受到位反转,坏块等干扰,出现稳定性问题,造成系统文件丢失或损坏的情况。这样就可能导致系统运行异常或启动异常。目前作为主流的存储设备eMMC,由于内部集成了NAND flash,也会出现同样的问题;
销售渠道中黑产破解:设备从工厂到最终用户手里经过的销售渠道,容易被黑产采用各种技术手段,批量修改或安装设备中的软件,以达到获利的目的。这些修改,由于测试不完整,或者恶意的目的,也会造成系统不稳定或特定情况(如连接网络)的启动异常;
Root:一些专门的工具,利用系统的各种漏洞,提升到永久root根用户权限后,达到修改系统文件的目的。由于手机系统的差异,某些不通用的修改可能会导致系统严重的问题;
恶意程序:与root工具类似,获取到修改系统的权限后,干扰系统的正常运行,比如循环弹出广告窗口,导致系统其它应用无法使用。
当电脑出现故障或者不能启动时,大多数情况可以通过重新安装操作系统来解决。同样的,当手机出现故障类似问题,除非硬件出现问题,需要维修或更换外,一般都可以通过重新烧写系统文件的方式来解决。通常,我们把这一过程叫做刷机。一般有以下几种刷机方法。使手机进入以下几种模式,用于恢复或更新系统。
Download模式:提供手机CPU的厂家,都会提供PC端的工具,通过USB连接到手机设备,并将存储在PC端的刷机包的数据按照厂家自定义的通信协议发送给手机,由手机端相应的刷机程序将这些数据写入到存储设备(NAND flash,eMMC,UFS等)。这一工具和刷机模式,可以用于工厂生产时设备端flash的烧录,设备端系统更新。
进入这一模式的条件一般如下:
加载手机的存储设备的第一段引导程序BootLoader失败;
采用组合键的方式进入,不同型号的手机进入这一模式的方式都不尽相同,如按音量“+”或“-”键,同时通过USB连接到电脑。
Fastboot模式:安卓手机提供的一种使用USB数据线连接手机的刷机模式,这种模式就是通常所说的线刷。手机通过USB连接到PC后,可以通过PC端的命令行工具,将PC端的文件烧写到手机存储器的逻辑分区。
进入这一模式的条件一般如下:
关机状态下按音量“+”或“-”键,同时按电源键。
Recovery模式:安卓手机提供的通过SD卡刷机的模式,与上面提到的线刷对应,这一刷机方式也称为卡刷。将刷机包拷贝到SD卡后,然后把SD卡安装到手机,进入recovery模式后,就可以把刷机包烧写到指定的逻辑分区。
进入这一模式的条件一般如下:
采用组合键的方式进入,不同型号的手机进入这一模式的方式都不尽相同,如关机状态下按音量“+”或“-”键,同时按电源键。
如果系统可以正常启动,在系统设置里面,系统更新和恢复出厂设置,同样也可以进入recovery模式,分别执行FOTA(Firmware Over-The-Air,空中固件升级)更新和清除用户数据的任务。
当手机系统运行异常或者不能启动,很多情况可以通过刷机来解决,所以很多厂家的售后维修首先就是刷机,如果仍然有问题,才继续下面的硬件维修流程。用户可以选择自主刷机或者售后维修。基本处理过程如图5所示。
对大多数普通用户来说,如果自己通过刷机来解决的话,则会存在以下困扰:
手机系统不能启动,到刷机成功的这段时间,手机就失去了基本通话功能,需要另外找一台手机备用;
需要学习如何刷机,由于专业性较强,大多数用户并没有时间和兴趣来学习,所以一般会选择售后服务来维修;
当少数用户掌握了刷机技能后,需要针对机型通过网络收集合适的刷机工具和正确的刷机包;
需要一台电脑来参与完成刷机工作。卡刷的话还需要一张SD卡和读卡器;
没有足够的专业知识,很容易刷机失败,导致更严重的问题,比如出厂设置(如通信模块的校准参数等)丢失,或者设备彻底黑屏,不能开机(俗称变砖)等。
基于上述原因,大多数的用户会选择厂家的售后维修服务来解决,但是会存在以下问题:
设备返修过程中,存储在设备上的个人数据和隐私有泄漏的风险;
需要花时间成本与厂商客服沟通,同时,厂商也需要直接承担客服和维修的人工成本;
返修除了增加厂家的经济付出,同时也降低了客户的信任度,对品牌带来不利的影响;
一些第三方的维修站利用和客户的知识不对等,仅仅是刷机操作,但收取硬件更换的费用;已过保修期的设备,用户容易和厂商产生经济纠纷;
手机返修过程中,用户需要另外找一台手机备用。
目前存在采用双系统的技术。
例如,某些厂家采用了不完全的双系统(系统主要部分分离),实现交叉升级的功能。当其中一个系统出现问题,可以切换到另外一个系统继续使用。
以某双安卓系统产品为例:
如图6所示,在eMMC的用户数据区(User Data Area)的System分区做了两个System,分别为System1和System2。在System1里进行升级,会将这个升级包写入到System2里面,然后重启就进到了System2,也就是一个新的系统。同时,也在System1里保存了一个相对较老版本的系统。以同样的方式,可以在System2完成对System1的升级。
但是,两个系统如果同时被破坏,这种情况还是需要用刷机的方式来解决。
存储在eMMC用户数据区的两个系统,可以通过内核驱动程序内部的软件只读标志来实现控制分区为只读属性(read only),也可以通过eMMC的寄存器来设置为写保护(write protect),来实现系统写保护的目的。
但是,上述这两种方式都是可逆的,恶意程序可以利用软件漏洞修改内核驱动程序的只读属性,也可以修改eMMC寄存器的方式解锁写保护。
因此,虽然上述双系统方案更为可靠,但还是会被攻击软件漏洞后被修改。而且,两个系统占用存储空间较大,留给用户的个人数据存储空间变少。
另外,其它的双系统方案,如Android+Windows Phone,则基本是完全隔离的两个系统,也可以用来实现交替升级的功能。两个系统除了共用一个Bootloader外,系统其它部分基本都是独立的。但是,这种完全隔离的双系统也存在与不完全的双系统一样的上述缺点。
发明内容
针对以上问题,本发明所要解决的技术问题在于提供一种基于安全存储的移动设备备用操作系统,能够避免用户的智能设备操作系统出现问题或不能启动时面临的困扰。
为了解决上述技术问题,本发明提供了一种基于安全存储的移动设备备用操作系统,其中,所述移动设备具备CPU和存储单元;所述存储单元的硬件分区包括:系统引导文件分区、回环保护分区、用户数据区和增强用户数据区;在所述用户数据区上设有主操作系统;在所述增强用户数据区上设有备用操作系统;在所述备用操作系统烧录到所述增强用户数据区后,所述增强用户数据区在所述存储单元的生命周期内被设置为永久写保护;当所述主操作系统不能启动或运行异常时,启动所述备用操作系统,执行系统恢复程序以恢复所述主操作系统。
根据本发明,备用操作系统存储在永久性写保护设备上,恶意程序只有通过攻击eMMC硬件设备,取消备用操作系统所在存储区域的永久性写保护属性来破坏备用操作系统,而这一写保护属性值写在eMMC的OTP(one time programable,一次性写入)区域,破解难度很大。由于以往的软件漏洞的攻击方式不再有效,因此备用操作系统不易被破坏。且简单操作系统恢复程序即可完成刷机,以恢复主操作系统。
又,本发明中,所述存储单元包括eMMC或UFS存储芯片。
又,本发明中,所述主操作系统不能启动时,CPU自动转到所述增强用户数据区以引导所述备用操作系统。
又,本发明中,所述主操作系统运行异常时,用户能够主动选择进入到所述备用操作系统。
又,本发明中,所述用户通过用户界面上的选项或按键配合主动选择进入到所述备用操作系统。
又,本发明中,CPU的启动模式标志中新增有备用模式,当满足启动所述备用操作系统的条件时,所述启动模式标志为备用模式;当CPU读取到所述启动模式标志为所述备用模式时,读取所述备用操作系统的下一阶段的镜像,启动所述备用操作系统。
又,本发明中,所述备用操作系统具备基本的电话和网络功能。
又,本发明中,通过所述备用操作系统的网络功能下载正确的刷机包来恢复所述主操作系统。
本发明可包含权利要求书和/或说明书和/或附图中公开的至少两个结构的任意组合。尤其是,本发明包含权利要求书的各项权利要求的两个以上的任意组合。
根据下述具体实施方式并参考附图,将更好地理解本发明的上述及其他目的、特征和优点。
附图说明
图1示出了现有的eMMC存储芯片的结构示意图;
图2示出了现有的eMMC存储芯片的硬件分区的示意图;
图3示出了现有的eMMC存储芯片的一种逻辑分区的示意图;
图4示出了现有的eMMC存储芯片的另一种逻辑分区的示意图;
图5示出了现有的手机系统运行异常或者不能启动时进行刷机的基本处理过程流程图;
图6示出了现有的双操作系统的示意图;
图7示出了现有的手机的系统启动过程的示意图;
图8示出了本发明一实施形态的手机的系统启动过程的示意图;
图9示出了本发明一实施形态的手机的主要部分系统框架图;
图10示出了本发明一实施形态的引导顺序的流程图;
图11示出了本发明一实施形态的引导顺序的示意性框图;
图12示出了本发明一实施形态的刷机过程的示意图;
图13示出了本发明一实施形态的新增文件(backupos.img)的示意图;
图14示出了将本发明一实施形态的新增文件(backupos.img)以约定的格式发送;
图15示出了本发明一实施形态的启动模式侦测的流程图;
图16示出了本发明一实施形态的开机界面的示意图;
图17示出了本发明一实施形态的重启界面的示意图;
图18示出了本发明一实施形态的合并备用操作系统的文件的示意图;
图19示出了本发明一实施形态进行刷机的示意图;
图20示出了本发明一实施形态的用户恢复手机的流程图;
图21和图22示出了本发明的一变形例;
具体实施方式
以下结合附图和下述实施方法进一步说明本发明,应理解,附图及下述实施方式仅用于说明本发明,而非限制本发明。
针对现有技术中存在的手机操作系统运行异常,需要通过刷机的方式来解决的缺陷,本发明提供了一种基于安全存储的移动设备备用操作系统。
本发明中,在手机设备上设置一个稳定的备用操作系统,当主操作系统被破坏后,可以进入备用操作系统。备用操作系统存储在永久性写保护设备上,恶意程序只有通过攻击eMMC硬件设备,取消备用操作系统所在存储区域的永久性写保护属性来破坏备用操作系统,软件漏洞的攻击方式不再有效。
备用操作系统具备基本的电话和网络功能。
从备用操作系统启动后,执行系统恢复的应用程序,可以完成刷机,恢复主操作系统。
为实现上述功能,以安卓为例,需要以下的技术改进。
增加一个备用操作系统,此系统存储在安全可靠的存储区域,并且不能被修改。
一般情况下,系统启动过程中,一个简易的启动流程是,如图7所示,首先会加载和执行固化在CPU内部的BootROM的程序(Boot Code),然后按照以下顺序从eMMC或UFS读取和加载部分或整个镜像(image):
1、Boot Code
2、Bootloader
3、Boot
4、System
5、Modem
根据CPU设计的复杂度,以上加载顺序会有所不同,比如Modem可能会在Boot之前加载。
如图8所示,本实施形态中,增加的备用操作系统(即System2)将会被烧录到eMMC的增强用户数据区物理分区,并且此分区被设置为永久的写保护。当主操作系统出现故障或不能启动,可以按照以下顺序加载备用操作系统:
1、Boot Code
2、Bootloader2
3、Boot2
4、System2
5、Modem2
同样,以上加载顺序也可以有所不同,比如Modem2可能会在Boot2之前加载。
此外,在本实施形态中,还可以改进系统引导方案,增加从备用操作系统启动的条件。
一种情况下,当主操作系统出现故障不能启动时,启动异常的原因可能是系统启动过程中引导的镜像(image)或重要文件损坏造成的。目前,有多种技术手段可以检测到系统异常,如:
硬件或软件看门狗服务、比较镜像开始位置标记的魔术码(magic code)、挂载镜像为文件系统(fat,ext4等)出错、系统关键文件检查、安全启动(Secure boot)机制、Android提供的DM-verity机制等。
以上手段检测的一般的处理结果是:
输出错误日志,重新启动;
或拒绝引导下一段image,屏幕显示系统出错原因,并停止在当前状态;
或进入特殊的刷机模式,如download模式,fastboot模式,recovery模式等。
但以上这些处理,对普通用户并没有意义,用户没有办法修复系统。这时,需要修改以上出错处理为:系统重新启动,并且引导备用操作系统。
另一种情况下,当主操作系统可以启动但运行异常,无法被侦测时,例如:每次启动后显示屏幕停留在固定画面,没有响应;恶意弹窗广告严重影响到了用户输入,或其它影响使用的异常等。
以上这些情况,需要增加用户自主进入备用操作系统的方法:
关机重启的用户界面(UI)上增加“重启进入备用操作系统”的选项;
开机时按组合键进入备用操作系统,如按开机键,同时按音量“+”或“-”键。
另外,备用操作系统保留基本通话功能和网络功能,并且可以通过网络下载正确的刷机包来恢复主操作系统。
具体地,备用操作系统由于不经常使用,可以是主操作系统的简化版本,也可以是独立开发的操作系统,仅保留电话,网络等基础应用。简化的系统可以节省存储空间和开机时间。
进入备用操作系统后,用户可以开启用于恢复主系统的应用程序,下载刷机包,然后恢复主操作系统。
(实施形态一)
进一步地,以下以安卓系统为例,进行详细说明。
图9示出了本实施形态的手机的主要部分系统框架图,其中粗体部分为新增或改进的模块。如图9所示,存储在CPU内部BootROM的Boot Code,在引导顺序(LoadSequence)中加入eMMC的增强用户数据区(Enhanced User data Area)物理分区。增加一个小型的,只具有基本功能的备用操作系统BackupOS,此备用操作系统BackupOS存储于增强用户数据区物理分区。该备用操作系统BackupOS的应用程序刷机工具(Flash tool)可以从网络下载刷机包,并用于恢复主操作系统。主操作系统(Main OS)可以因启动失败自动切换到备用操作系统BackupOS,也可以用户手动切换到备用操作系统BackupOS。具体如后文所述。
[增加涉及eMMC增强用户数据区的操作]
为实现增加一个备用操作系统,此系统存储在安全可靠的存储区域,并且不能被修改。为此,将该备用操作系统烧录在eMMC增强用户数据区,并设置为永久写保护,涉及到以下对eMMC设备的操作:
<建立增强用户数据区物理分区>
eMMC芯片默认出厂时并没有增强用户数据区物理分区,需要通过mmc指令在UserDataArea分割一部分区域,作为增强用户数据区。这一过程是不可逆的,分割后,在芯片的生命周期内,这一分区不可以被修改和删除。
这一操作主要通过CMD6,修改eMMC的Extend CSD register来实现。Host端的实现流程可参考技术。例如,eMMC4.41的JEDEC标准文档《JEDEC Standard No.84-A441》第32页或者eMMC5.0的JEDEC标准文档《JEDEC Standard No.84-B50》第23页。
<对增强用户数据区的读写>
在工厂生产刷机的过程中,将备用操作系统写入到所建立的上述增强用户数据区。在备用操作系统启动过程,逐个引导各个镜像(image)的每个阶段,和启动后的正常工作状态,都需要读取增强用户数据区分区的内容。读取方法与读取用户数据区分区类似。
例如,可以通过CMD17读取单个块,也可以通过CMD18读取多个块,参见以下表1(来源于eMMC5.0的JEDEC标准文档《JEDEC Standard No.84-B50》page112,Table42)。
表1。
例如,也可以通过CMD24写单个块,也可以通过CMD25写多个块,参见以下表2(来源于eMMC5.0的JEDEC标准文档《JEDEC Standard No.84-B50》page113,Table 44)。
表2。
地址为增强用户数据区分区的物理地址的偏移,在创建分区时,起始地址保存在Extend CSD register的ENH_START_ADDR[139:136]。参见以下表3(来源于eMMC5.0的JEDEC标准文档《JEDEC Standard No.84-B50》page197,Table 153)。
Table 153-EnhauCed User Data Start Address
表3。
<对增强用户数据区写保护>
为防止备用操作系统被修改,手机出厂前,将存储备用操作系统的增强用户数据区分区永久性写保护,可以使系统成为一个封闭的安全系统。
这一操作例如可以通过CMD28写入保存在Extend CSD register的ENH_START_ADDR[139:136]的地址来完成写保护。
在这之前,需要设置Extend CSD register的USER_WP[171]来确保可以对用户数据区写保护。此写保护对增强用户数据区是不可逆的,增强用户数据区可以变成永久性写保护设备。参见以下表4(来源于eMMC5.0的JEDEC标准文档《JEDEC Standard No.84-B50》page189,Table 139)。
Table 139-User area write protection
表4。
[修改启动模式(BootMode)]
BootMode,也可以称为reboot reason,restart reason,power on reason等,是启动时需要读取的一个标志(flag),来决定正常启动(normal boot),进入充电模式(chargemode),或进入下载模式(download mode)等。
这个标志通常位于CPU内部的IRAM。当手机启动或重启时,根据不同的情况,写入不同的值。比如,正常的启动,可以写入0x00000000,表示NormalMode。
本发明中,为实现前述改进系统引导方案,增加从备用操作系统启动的条件的功能,为此,新增一种模式:备用模式(BackupMode),表示需要启动备用操作系统。在启动加载镜像的各个阶段,如果读取到BootMode=BackupMode,则读取备用操作系统下一阶段的镜像。
主操作系统可以在以下几种情况设置BootMode=BackupMode:
用户点击关机重启的UI上增加“重启进入备用操作系统”的选项;
用户开机时按组合键进入备用操作系统,如按开机键,同时按音量“+”或“-”;
启动引导过程的下一段镜像(image)或重要文件损坏。
如果fastboot模式和download模式也使用了与上述用户操作相同的进入条件,则可以修改上述两种模式的进入条件,例如,增加侦测USB是否连接到PC或接收到了PC端工具发送的数据包,以区别于BackupMode。
通常,固化在CPU内部BootROM里的Boot Code,会从eMMC的Boot Area partition1或者User Data Area的起始位置读取Bootloader。增加备用操作系统后,需要修改BootCode,在满足启动备用操作系统的条件时,从增强用户数据区读取第一段镜像Bootloader,如图10所示。
满足启动备用操作系统的条件包括:
<从主操作系统的引导Bootloader失败>
引导Bootloader失败的原因包括:
Bootloader被擦除或损坏,检查Bootloader关键信息出错,如魔术码(magic code)错误;校验Bootloader失败。比如,当开启Secure Boot功能后,校验读取到的Bootloader的hash值错误。
<BootMode=BackupMode>
BootMode=BackupMode是在用户选择自主进入备用操作系统时重启的过程设置的,或者镜像(image)损坏、系统文件损坏的情况被Bootloader或内核设置的。
简单来说,就是对于支持从不同存储介质引导的CPU,在其原有的引导顺序中加入从eMMC增强用户数据区引导,如图11所示。
刷机过程中,需要用到PC端烧录工具和运行于手机端下载模式的烧录工具通过USB通信,配合完成,如图12所示。PC端烧录工具把需要烧录的文件发送到手机端,由手机端的烧录工具写入到存储器。
PC端的烧录工具增加烧录备用操作系统的方法,如图13所示,把备用操作系统所涉及的逻辑分区合成为一个二进制文件(backupos.img),发送到手机端。
同时,这一新增文件(backupos.img)的相关信息,也需要按照约定的格式(如图14所示),发送到手机端的烧录工具。
手机端进入下载模式,启动烧录工具并接收到BackupOS对应的文件(backupos.img)后,将其烧录到eMMC的Enhanced User Data Area。
需要注意的是:如果eMMC还没有分配增强用户数据区,则需要重新分配这一区域。分配增强用户数据区会影响到主操作系统存储在用户数据区的内容,所以当选择下载BackupOS时,需要全部下载其它文件。当增强用户数据区已经被写保护,写入失败的通知需要返回到PC的烧录工具。
以下进一步说明主操作系统和备用操作系统。
1、主操作系统
[在Bootloader增加进入备用操作系统的方法]
可以用以下方式使得用户选择自主进入备用操作系统:
<侦测组合按键>
如前所述,如果用户同时按音量“+”或“-”键和开关键,通常会进入到download模式或者fastboot模式,这两种模式都需要通过USB连接到PC。所以,可以在侦测到没有连接USB时,启动备用操作系统,如图15所示。
<开机选项>
开机界面出现短暂的(1~2秒)选择列表,供用户选择进入主操作系统或者备用操作系统。用户可以通过音量键进行选择,开机键来确定选择的项,如图16所示。
<校验boot.img失败后,进入备用操作系统>
加载下一段image(boot.img)的过程中,有多种方法检查目标image的正确性,比如通过比较image的魔术码(magic code),或者开启Secure Boot功能后,校验读取到的image的hash值。当发生错误时,可以跳转到启动备用操作系统。
上述进入备用操作系统的方法有两种,在设置BootMode为BackupMode后:
重新启动(reset),再由BootROM里的Boot Code引导备用操作系统的Bootloader。
直接从备用操作系统读取Boot分区的内容并引导。此方法可用于下文提到的替代的变形例1。
[设置备用操作系统为写保护]
设备在出厂前,最后一个步骤通常会进行恢复出厂设置的操作,这时,可以完成对备用操作系统的锁定,就是将增强用户数据区设置为永久性写保护设备。
通常,一般的应用程序不能直接访问eMMC设备,需要内核的mmc驱动程序来完成。驱动程序提供一个文件节点,在应用层进行恢复出厂设置时,需要在这个文件节点写入“1”,驱动程序执行对增强用户数据区的写保护。
[在重新启动的界面增加“重启到备份操作系统”]
用户可以通过开关机按键,调用关机画面,当点击“重启到备用系统”(EnterBackupOS),则设置Bootmode为BackupMode,然后重新启动,如图17所示。设置Bootmode为BackupMode由于地址访问权限的问题,应该由内核来实际完成。
2、备用操作系统(Backup OS)。
备用操作系统的开发,可以用主操作系统源代码,复制一份作为备用操作系统开发的基础,但需要做以下的修改。
[合并备用操作系统的文件,简化烧录过程]
备用操作系统尽管可以简化,但基础功能所需要的文件基本与主操作系统类似。在开发和生产过程容易造成困扰,所以需要将备用操作系统所涉及的文件合并到一个,供烧录工具使用。如图18所示。其中,不涉及启动,可以扩展安装的用户空间(UserData),可以放在用户数据区,或者与主操作系统共用同一UserData逻辑分区。
[修改BootLoader]
修改BootLoader,从增强用户数据区的Boot2逻辑分区引导备用操作系统的内核(boot)。
[修改kernel的mmcblock驱动]
修改kernel的mmcblock驱动,支持增强用户数据区设备,并且将system映射到增强用户数据区中system逻辑分区。为刷机工具(Flash tool)应用提供写入eMMC所有物理分区的接口和权限。
[提供修复主操作系统的应用程序Flash tool]
如图19所示,手机的刷机包放在http服务器,其URL在出厂时写入到手机的配置文件中。网络连接后,客户可以打开Flash tool工具,通过默认的URL下载刷机包,然后将其写入到主操作系统。
[精简系统,最小化系统应用]
备用操作系统是紧急情况下使用的系统,不需要太多的功能。所以,与基础的手机通讯和网络无关的应用程序,可以都进行裁剪,以节省存储空间。
考虑到系统功能的扩展,与系统启动无关的应用,可以放置在用户数据区,或者与主操作系统共用用户存储分区(Userdata)。
采用本发明的上述双操作系统,即便用户的手机出现问题或不能启动时,可以简化用户的恢复手机的流程,如图20所示。
并且,还可以解决以下问题:
手机系统不能启动,到刷机成功的这段时间,手机就失去了基本通话功能,需要另外找一台手机备用。相对于此,本发明,当手机的主操作系统因被破坏,不能启动时,因备用操作系统Backup OS存储在eMMC的永久性写保护区域,不易被破坏,这时可以进入Backup OS来保证基本的通话和网络功能。不需要更换手机。
需要学习如何刷机,由于专业性较强,大多数用户并没有时间和兴趣来学习,所以一般会选择售后服务来维修。相对于此,本发明,进入Backup OS后,启动Flash tool应用,点击按钮【下载】,【擦除】,【写入】就可以完成刷机,操作简单,不需要很多时间来学习。
当少数用户掌握了刷机技能后,需要针对机型通过网络收集合适的刷机工具和正确的刷机包。相对于此,本发明,Flash tool应用下载刷机包的URL,出厂时已经写入到固定的文件,并且文件保存在永久性写保护区域,用户直接下载就可以了。
需要一台电脑来参与完成刷机工作,卡刷的话还需要一张SD卡和读卡器。相对于此,本发明,进入备用系统后,Flash tool应用程序通过网络下载刷机包并刷机,不需要电脑、读卡器、USB连接线就能独立完成。
没有足够的专业知识,很容易刷机失败,导致更严重的问题,比如出厂设置(如通信模块的校准参数等)丢失,或者设备彻底黑屏,不能开机(俗称变砖)等。相对于此,本发明,Flash tool应用程序通过网络下载刷机包的URL,不同的机型对应不同的URL,不会刷错误的刷机包。即使刷机过程中断,导致主操作系统更严重的问题,但仍旧可以进入BackupOS,重新刷机。另外出厂设置(如通信模块的校准参数等)也可以从Backup OS恢复到主操作系统。
(变形例1)
Boot Code从eMMC的增强用户数据区来引导备用操作系统的Bootloader,需要重新设计CPU,将支持这一功能的新的Boot Code固化到BootROM。但在这之前,不支持这一功能的CPU也可以实施备用操作系统的方案,虽然功能不完整,有部分缺限(缺少可以引导可靠的Bootloader),但其余大多数的功能可以保留下来。
理想状况下,修改Boot Code之后,启动备用操作系统时,存储在eMMC的增强用户数据区的Bootloader应该由Boot Code来引导。如图21所示。
但是,对于已经生产的CPU,没有办法修改Boot Code,在启动备用操作系统时,只能放弃引导备用操作系统的Bootloader,但是可以通过修改主操作系统的Bootloader,来代替备用操作系统的Bootloader来引导备用操作系统的其它镜像。如图22所示。
这一方案的缺陷是,如果主操作系统的Bootloader损坏,主操作系统和备用操作系统都将无法启动。另外,当主操作系统的Bootloader更新以后,与备用操作系统的Bootloader版本相差太大,可能会造成备用操作系统运行异常。但这些情况比较少见,本发明的大多数系统保护和可靠启动的功能可以被保留下来。
(变形例2)
存储芯片UFS(Universal Flash Storage)比eMMC在性能上有很多优势,有更高的数据吞吐量,不少产品采用UFS芯片作为存储方案。UFS参考了eMMC的物理分区方式,仍然支持eMMC的Boot partition,RPMB,用户数据区和增强用户数据区这几种分区定义和功能。
所以,对于使用了UFS的设计,同样可以将备用操作系统放置在增强用户数据区物理分区并永久写保护,实现与采用eMMC存储芯片方案相同的功能。
以上,以手机为例对本发明进行了详细说明,但是本发明不限于此,也适用于平板电脑等智能设备。
在不脱离本发明的基本特征的宗旨下,本发明可体现为多种形式,因此本发明中的实施形态是用于说明而非限制,由于本发明的范围由权利要求限定而非由说明书限定,而且落在权利要求界定的范围,或其界定的范围的等价范围内的所有变化都应理解为包括在权利要求书中。

Claims (8)

1.一种基于安全存储的移动设备备用操作系统,所述移动设备具备CPU和存储单元;其特征在于,
所述存储单元的硬件分区包括:系统引导文件分区、回环保护分区、用户数据区和增强用户数据区;
在所述用户数据区上设有主操作系统;
在所述增强用户数据区上设有备用操作系统;
在所述备用操作系统烧录到所述增强用户数据区后,所述增强用户数据区在所述存储单元的生命周期内被设置为永久写保护;
当所述主操作系统不能启动或运行异常时,启动所述备用操作系统,执行系统恢复程序以恢复所述主操作系统。
2.根据权利要求1所述的基于安全存储的移动设备备用操作系统,其特征在于,所述存储单元包括eMMC或UFS存储芯片。
3.根据权利要求1所述的基于安全存储的移动设备备用操作系统,其特征在于,所述主操作系统不能启动时,CPU自动转到所述增强用户数据区以引导所述备用操作系统。
4.根据权利要求1所述的基于安全存储的移动设备备用操作系统,其特征在于,所述主操作系统运行异常时,用户能够主动选择进入到所述备用操作系统。
5.根据权利要求4所述的基于安全存储的移动设备备用操作系统,其特征在于,所述用户通过用户界面上的选项或按键配合主动选择进入到所述备用操作系统。
6.根据权利要求1所述的基于安全存储的移动设备备用操作系统,其特征在于,CPU的启动模式标志中新增有备用模式,当满足启动所述备用操作系统的条件时,所述启动模式标志为备用模式;当CPU读取到所述启动模式标志为所述备用模式时,读取所述备用操作系统的下一阶段的镜像,启动所述备用操作系统。
7.根据权利要求1所述的基于安全存储的移动设备备用操作系统,其特征在于,所述备用操作系统具备基本的电话和网络功能。
8.根据权利要求7所述的基于安全存储的移动设备备用操作系统,其特征在于,通过所述备用操作系统的网络功能下载正确的刷机包来恢复所述主操作系统。
CN201810074987.XA 2018-01-25 2018-01-25 基于安全存储的移动设备备用操作系统 Pending CN108319520A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810074987.XA CN108319520A (zh) 2018-01-25 2018-01-25 基于安全存储的移动设备备用操作系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810074987.XA CN108319520A (zh) 2018-01-25 2018-01-25 基于安全存储的移动设备备用操作系统

Publications (1)

Publication Number Publication Date
CN108319520A true CN108319520A (zh) 2018-07-24

Family

ID=62887950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810074987.XA Pending CN108319520A (zh) 2018-01-25 2018-01-25 基于安全存储的移动设备备用操作系统

Country Status (1)

Country Link
CN (1) CN108319520A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109669810A (zh) * 2018-10-18 2019-04-23 西安中兴新软件有限责任公司 信息存储、存储卡恢复方法及装置、电子设备及存储介质
CN110764825A (zh) * 2018-07-27 2020-02-07 华为技术有限公司 一种开机方法及终端设备
WO2020029967A1 (zh) * 2018-08-06 2020-02-13 中兴通讯股份有限公司 一种操作系统故障的修复方法和装置
CN111078471A (zh) * 2019-12-06 2020-04-28 深圳创维-Rgb电子有限公司 显示设备的系统故障恢复方法、设备及计算机存储介质
CN111966536A (zh) * 2020-08-27 2020-11-20 中电科仪器仪表有限公司 一种用于测量仪器的数据恢复系统及数据恢复方法
CN112328561A (zh) * 2020-11-26 2021-02-05 广东小天才科技有限公司 一种日志传递方法、系统、电子设备和存储介质
CN113296850A (zh) * 2021-07-26 2021-08-24 湖南博匠信息科技有限公司 嵌入式板卡操作系统备份启动方法及嵌入式系统
CN114356455A (zh) * 2022-01-06 2022-04-15 深圳忆联信息系统有限公司 提升芯片启动可靠性的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030131180A1 (en) * 2001-09-03 2003-07-10 Chi-Fan Ho Device for use in a network environment
CN1460210A (zh) * 2001-04-25 2003-12-03 成津C&C株式会社 防止计算机操作系统损坏的装置和方法
CN102799499A (zh) * 2012-06-15 2012-11-28 深圳乐投卡尔科技有限公司 车载Android设备系统恢复的方法及车载Android设备
CN103136015A (zh) * 2011-12-05 2013-06-05 深圳长城开发科技股份有限公司 控制Uboot进入下载操作模式的方法及系统
CN105637521A (zh) * 2014-06-30 2016-06-01 华为技术有限公司 一种数据处理方法及智能终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1460210A (zh) * 2001-04-25 2003-12-03 成津C&C株式会社 防止计算机操作系统损坏的装置和方法
US20030131180A1 (en) * 2001-09-03 2003-07-10 Chi-Fan Ho Device for use in a network environment
CN103136015A (zh) * 2011-12-05 2013-06-05 深圳长城开发科技股份有限公司 控制Uboot进入下载操作模式的方法及系统
CN102799499A (zh) * 2012-06-15 2012-11-28 深圳乐投卡尔科技有限公司 车载Android设备系统恢复的方法及车载Android设备
CN105637521A (zh) * 2014-06-30 2016-06-01 华为技术有限公司 一种数据处理方法及智能终端

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110764825A (zh) * 2018-07-27 2020-02-07 华为技术有限公司 一种开机方法及终端设备
CN110764825B (zh) * 2018-07-27 2021-02-09 华为技术有限公司 一种开机方法及终端设备
WO2020029967A1 (zh) * 2018-08-06 2020-02-13 中兴通讯股份有限公司 一种操作系统故障的修复方法和装置
CN109669810B (zh) * 2018-10-18 2023-07-14 西安中兴新软件有限责任公司 信息存储、存储卡恢复方法及装置、电子设备及存储介质
WO2020078430A1 (zh) * 2018-10-18 2020-04-23 中兴通讯股份有限公司 信息存储、存储卡恢复方法及装置、电子设备及存储介质
CN109669810A (zh) * 2018-10-18 2019-04-23 西安中兴新软件有限责任公司 信息存储、存储卡恢复方法及装置、电子设备及存储介质
CN111078471A (zh) * 2019-12-06 2020-04-28 深圳创维-Rgb电子有限公司 显示设备的系统故障恢复方法、设备及计算机存储介质
CN111078471B (zh) * 2019-12-06 2023-09-05 深圳创维-Rgb电子有限公司 显示设备的系统故障恢复方法、设备及计算机存储介质
CN111966536A (zh) * 2020-08-27 2020-11-20 中电科仪器仪表有限公司 一种用于测量仪器的数据恢复系统及数据恢复方法
CN112328561A (zh) * 2020-11-26 2021-02-05 广东小天才科技有限公司 一种日志传递方法、系统、电子设备和存储介质
CN113296850B (zh) * 2021-07-26 2021-12-03 湖南博匠信息科技有限公司 嵌入式板卡操作系统备份启动方法及嵌入式系统
CN113296850A (zh) * 2021-07-26 2021-08-24 湖南博匠信息科技有限公司 嵌入式板卡操作系统备份启动方法及嵌入式系统
CN114356455A (zh) * 2022-01-06 2022-04-15 深圳忆联信息系统有限公司 提升芯片启动可靠性的方法及装置
CN114356455B (zh) * 2022-01-06 2023-12-05 深圳忆联信息系统有限公司 提升芯片启动可靠性的方法及装置

Similar Documents

Publication Publication Date Title
CN108319520A (zh) 基于安全存储的移动设备备用操作系统
CN109542518B (zh) 芯片和启动芯片的方法
CN104850762B (zh) 防止计算机的动作不良的方法、计算机程序以及计算机
US9703635B2 (en) Method, computer program, and computer for restoring set of variables
US8874892B1 (en) Assessing BIOS information prior to reversion
US20140250290A1 (en) Method for Software Anti-Rollback Recovery
TWI382346B (zh) 保護雙基本輸出入系統程式之電腦系統及其控制方法
US8819330B1 (en) System and method for updating a locally stored recovery image
CN102063591B (zh) 基于可信平台的平台配置寄存器参考值的更新方法
US11886595B2 (en) Computer boot method, controller, storage medium, and system
CN105917306B (zh) 用于配置系统固件配置数据的系统和方法
US8751817B2 (en) Data processing apparatus and validity verification method
CN101807152B (zh) 自我验证选择只读存储器的基本输出入系统及其验证方法
CN105637521B (zh) 一种数据处理方法及智能终端
US20130227262A1 (en) Authentication device and authentication method
CN109582332B (zh) 互联网摄像机的系统升级方法及装置
CN103745167A (zh) 单片机的iap方法及装置
CN101021793B (zh) 利用扩展BIOS技术实现Pre-OS应用的方法及系统
US7418542B2 (en) Rewritable, nonvolatile memory, electronic device, method of rewriting rewritable, nonvolatile memory, and storage medium having stored thereon rewrite program
CN114116305A (zh) 基于pfr的bios固件恢复方法、系统、终端及存储介质
CN112068904A (zh) 一种芯片boot运行方法、装置及相关组件
CN105279094A (zh) NAND Flash操作处理方法、装置及逻辑器件
EP4296860A1 (en) Method for running startup program of electronic device, and electronic device
US11663299B2 (en) Method and apparatus for preventing rollback of firmware of data processing device, and data processing device
TWI417888B (zh) An embedded chip system, a method for burning a wafer, and a computer program product

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180724

WD01 Invention patent application deemed withdrawn after publication