CN115357295A - 系统回退方法、设备及存储介质 - Google Patents

系统回退方法、设备及存储介质 Download PDF

Info

Publication number
CN115357295A
CN115357295A CN202211292292.1A CN202211292292A CN115357295A CN 115357295 A CN115357295 A CN 115357295A CN 202211292292 A CN202211292292 A CN 202211292292A CN 115357295 A CN115357295 A CN 115357295A
Authority
CN
China
Prior art keywords
operating system
installation package
partition
user data
version
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.)
Granted
Application number
CN202211292292.1A
Other languages
English (en)
Other versions
CN115357295B (zh
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.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
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 Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202211292292.1A priority Critical patent/CN115357295B/zh
Publication of CN115357295A publication Critical patent/CN115357295A/zh
Application granted granted Critical
Publication of CN115357295B publication Critical patent/CN115357295B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供一种系统回退方法、设备及存储介质,涉及终端技术领域。在本申请方案中,当终端设备正在运行采用了虚拟AB升级方案的高版本的操作系统时,利用系统文件接口能够解密在用户数据分区中存储的被加密数据的特性,以及驱动接口能够向用户数据分区中回写裸数据的特性,可以采用裸读/写方式进行用户数据分区回退包数据的回写,完成对系统安装包的解密,从而终端设备可以在重启进入recovery模式后,使用已解密的系统安装包完成回退。

Description

系统回退方法、设备及存储介质
技术领域
本申请涉及终端技术领域,尤其涉及一种系统回退方法、设备及存储介质。
背景技术
目前,一些操作系统(operating system,OS)支持虚拟AB升级方案。以安卓(Android)操作系统为例,谷歌®对安卓R版本(Android 11)及以上版本强制落地虚拟AB升级方案。如果原始设备制造商(original equipment manufacturer,OEM)使用R版本及以上版本,那么必须采用虚拟AB升级方案。
为了提高操作系统的安全性,虚拟AB升级方案会对用户数据(user data)分区的元数据进行加密。在终端设备的操作系统升级至新版本后,基于版本设计缺陷或用户不习惯使用新版本等各种原因,终端设备的操作系统可能需要回退至低版本。在终端设备从服务器下载低版本的回退包后,终端设备会将其存储到用户数据分区,而虚拟AB升级方案会对用户数据分区的元数据进行加密,使得低版本的回退包处于加密状态。在系统回退过程中,由于终端设备无法解析用户数据分区的加密数据,导致系统回退失败。
发明内容
本申请提供一种系统回退方法、设备及存储介质,解决了在虚拟AB升级的系统环境下终端设备无法完成系统回退的技术问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请实施例提供一种系统回退方法。该方法可以包括:
运行第一操作系统,第一操作系统采用虚拟AB升级方案;响应于用户操作,基于虚拟AB升级方案,在用户数据分区以数据加密形式存储第二操作系统的安装包;调用系统文件接口从用户数据分区读取第二操作系统的安装包的明文数据,并在可用分区存储该明文数据;调用驱动接口,将在可用分区存储的该明文数据回写至用户数据分区;重启进入恢复(recovery)模式,根据用户数据分区中已解密的第二操作系统的安装包,从第一操作系统回退至第二操作系统。其中,第二操作系统的版本低于第一操作系统的版本,因此第二操作系统的安装包也可称为回退包。
通过上述方案,当终端设备正在运行采用了虚拟AB升级方案的第一操作系统时,尽管虚拟AB升级方案会对在用户数据分区以数据加密形式存储第二操作系统的安装包进行加密,但是通过利用系统文件接口能够解密在用户数据分区中存储的被加密数据的特性,以及驱动接口能够向用户数据分区中回写裸数据的特性,可以采用裸读/写方式进行用户数据分区回退包数据的回写,完成对系统安装包的解密,从而终端设备可以在重启进入recovery模式后,使用已解密的系统安装包完成回退。
在一些实施例中,第一操作系统和第二操作系统为基于安卓的操作系统。目前,安卓R版本(Android 11)及以上版本强制落地虚拟AB升级方案。第一操作系统可以为采用了虚拟AB升级方案的安卓系统。第二操作系统可以为采用虚拟AB升级方案的安卓系统,或不采用虚拟AB升级方案的安卓系统。
在一些实施例中,第二操作系统为第一操作系统的上一版本的操作系统,比如,第一操作系统可以为S版本(Android 12)的操作系统,第二操作系统可以为R版本(Android11)的操作系统。或者,第二操作系统为第一操作系统的上一版本之前版本的操作系统,比如,第一操作系统可以为S版本(Android 12)的操作系统,第二操作系统可以为Q版本(Android 10)的操作系统。
在一些实施例中,驱动接口位于内核层。应理解,由于位于内核层的驱动接口为底层接口,具备能够向用户数据分区中回写裸数据的特性,因此可以绕过采用秘钥对用户数据分区的解密过程。
在一些实施例中,在用户数据分区以数据加密形式存储第二操作系统的安装包,包括:在用户数据分区的多个块中以数据加密形式存储第二操作系统的安装包。即,在调用系统文件接口,从用户数据分区读取第二操作系统的安装包的明文数据之前,第二操作系统的安装包在用户数据分区的多个块中以数据加密形式存储。
在一些实施例中,调用系统文件接口,从用户数据分区读取第二操作系统的安装包的明文数据,可以包括:启动升级引擎;通过升级引擎调用系统文件接口,以块为单位依次对在多个块的每个块中存储的加密数据进行读取,得到与每个块对应的明文数据。
在一些实施例中,调用驱动接口,将在可用分区存储的明文数据回写至用户数据分区,可以包括:在通过系统文件接口每次得到与一个块对应的明文数据之后,通过升级引擎调用驱动接口,将与一个块对应的明文数据回写至一个块,该一个块为多个块中的任意一个块。在将与多个块对应的全部明文数据回写至该多个块后,得到已解密的安装包。
在另一些实施例中,调用驱动接口,将在可用分区存储的明文数据回写至用户数据分区,可以包括:在通过系统文件接口每次得到与一个块对应的明文数据之后,通过升级引擎调用驱动接口,将与一个块对应的明文数据回写至另一个块,该一个块为多个块中的任意一个块,该另一个块为用户数据分区中与该多个块不同的块;在将与多个块对应的全部明文数据回写至与多个块不同的多个块后,得到已解密的安装包。
在一些实施例中,响应于用户操作,基于虚拟AB升级方案,在用户数据分区以数据加密形式存储第二操作系统的第二操作系统的安装包,可以包括:响应于用户操作,向服务器发送请求消息,请求消息用于请求第二操作系统的安装包;接收来自服务器的第二操作系统的安装包;在对第二操作系统的安装包进行基础数据校验成功的情况下,调用系统文件接口,基于虚拟AB升级方案,在用户数据分区的多个块中以数据加密形式存储第二操作系统的安装包。应理解,对系统安装包进行基础数据校验,可以有效避免升级文件不完整或存在错误导致系统回退失败,从而提高了系统回退的成功率。
在一些实施例中,在调用系统文件接口,从用户数据分区读取第二操作系统的安装包的明文数据之后,该方法还可以包括:建立第二操作系统的安装包的文件信息映射表,以及存储该文件信息映射表,该文件信息映射表包括用于多个块的信息。应理解,在调用系统文件接口读取明文数据,将明文数据存储到可用分区,并将可用分区的明文数据再次回写至用户数据分区的过程中,可能会发生错误,导致回写到用户数据分区的系统安装包无法正常使用,因此通过建立文件信息映射表,可以记录系统安装包的各个block的信息,从而便于后期对回写到用户数据分区的数据进行校验。
在一些实施例中,重启进入recovery模式,可以包括:根据文件信息映射表对多个块进行校验;在对多个块校验成功的情况下,重启主系统进入recovery模式。应理解,先对多个块进行校验,再重启主系统进入recovery模式,可以避免由于回写过程发生错误所导致的recovery失败。
在一些实施例中,根据用户数据分区中已解密的第二操作系统的安装包,从第一操作系统回退至第二操作系统,可以包括:从用户数据分区中读取已解密的第二操作系统的安装包;根据已解密的第二操作系统的安装包,安装第二操作系统;重启主系统,并运行第二操作系统。应理解,在调用系统文件接口和驱动接口完成对用户数据分区中的回退包的解密后,可以基于recovery模式,利用已解密的回退包,完成系统回退。
第二方面,本申请提供一种装置,该装置包括用于执行上述第一方面中任一项的方法的单元/模块。该装置可对应于执行上述第一方面描述的方法,该装置中的单元/模块的相关描述请参照上述第一方面的描述,为了简洁,在此不再赘述。
第三方面,提供一种终端设备,包括通信接口、处理器和存储器。其中,通信接口用于连接服务器。处理器与存储器耦合。处理器用于执行存储器中存储的计算机程序或指令,以使得终端设备实现如第一方面中任一项的系统回退方法。
第四方面,提供一种芯片,该芯片与存储器耦合,该芯片用于读取并执行该存储器中存储的计算机程序,以实现如第一方面中任一项的系统回退方法。
第五方面,提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当该计算机程序在终端设备上运行时,使得终端设备执行如第一方面中任一项的系统回退方法。
第六方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面中任一项的系统回退方法。
可以理解的是,上述第二方面至第六方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1为本申请实施例提供的AB系统的分区示意图;
图2为本申请实施例提供的虚拟AB系统的分区示意图;
图3为本申请实施例提供的一种虚拟AB升级失败的流程示意图;
图4为本申请实施例提供的终端设备的软件结构示意图;
图5为本申请实施例提供的终端设备加载各个分区的示意图;
图6为本申请实施例提供的一种系统回退方法的流程示意图;
图7为本申请实施例提供的一种回退包解密的示意图;
图8为本申请实施例提供的另一种系统回退方法的流程示意图;
图9为本申请实施例提供的一种通信系统的架构示意图;
图10为本申请实施例提供的用户触发手机系统回退的操作示意图;
图11为本申请实施例提供的另一种回退包解密的示意图;
图12为本申请实施例提供的再一种回退包解密的示意图;
图13为本申请实施例提供的装置的结构示意图;
图14为本申请实施例提供的终端设备的结构示意图。
具体实施方式
下面对本申请中涉及的一些名词或者术语进行解释说明。
(1)终端设备
终端设备,也可称为用户设备(user equipment,UE),是一种向用户提供数据连通性的设备。在一些实施例中,终端设备可以为手机、平板电脑、个人数字助理(personaldigital assistant,PDA)、可穿戴设备、平板电脑(Pad)、智能电视(也称为智慧屏或大屏设备)、虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶中的无线终端、远程医疗(remotemedical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportationsafety)中的无线终端、智慧城市(smart city)中的无线终端、以及智慧家庭(smart home)中的无线终端等,本实施例不作任何限制。
(2)操作系统
操作系统,简称为系统,为在终端设备中安装的一种基础软件。它是硬件和其它软件(比如应用软件)沟通的桥梁。终端设备可以通过安装应用软件来扩充终端设备的功能。在一些实施例中,终端设备的操作系统可以为谷歌®的安卓(Android)系统、苹果®的iOS系统、Mac OS系统、塞班(Symbian)系统、Bada系统、Windows系统或WindowsPhone系统等,本实施例不作任何限制。
需要说明的是,下述实施例是以谷歌®的安卓R版本(Android 11)及以上版本中的虚拟AB升级方案为例,提出的在虚拟AB升级的系统环境下,终端设备如何完成操作系统回退的方案,其并不对本申请实施例形成限定。可以理解,对于其他任意已经采用或即将采用虚拟AB升级方案的操作系统,也适用于本申请提供的系统回退方案。
(3)存储器
存储器分为内部存储器和外部存储器。内部存储器可以包括只读存储器(read-only memory,ROM)和随机存取存储器(random access memory,RAM),只读存储器的分区结构又可以分为非AB系统(A only system)、AB系统(AB system)和虚拟AB系统(virtual ABsystem)这三种不同方式。外部存储器也称外存、辅助存储器,可以是硬盘、固态硬盘、光盘或其他类型的存储器。
在实际应用中,RAM又称为“主存”,它可随时读写,速度很快,通常作为操作系统或其他正在运行中的应用程序的临时数据存储媒介,当电源关闭时,RAM不能保留数据。ROM又称为“非易失性存储器”,ROM所存数据包括操作系统的镜像文件,以及用户使用终端设备时产生的用户数据,在整机工作过程中只能读出ROM的数据,而不支持快速地、方便地加以改写,因此ROM所存数据稳定,断电后所存数据也不会改变。
在具体实现中,ROM可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统(比如安卓系统),以及至少一个功能所需的应用程序(比如声音播放功能,及图像播放功能)等。存储数据区可存储终端设备使用过程中所创建的数据(比如音频数据,图像及电话本等)等。
示例性地,关于存储程序区,具体到本申请实施例提供的技术方案中,可以是基础分区(common)、静态分区(slot)和动态分区(super);关于存储数据区,具体到本申请实施例提供的技术方案中,例如可以是用户数据分区(user data)。
(4)虚拟AB系统
AB系统的分区简称为AB分区。虚拟AB系统基于虚拟AB升级方案,虚拟AB系统的分区简称为虚拟AB分区。
如图1所示,AB分区包括基础分区(common)、静态分区、动态分区和用户数据分区(user data)。其中,静态分区和动态分区均采用了双分区。静态分区可以划分为第一静态分区(slotA)和第二静态分区(slotB)。动态分区可以划分为第一动态分区(superA)和第二动态分区(superB)。也就是说,AB分区拥有真实的两套逻辑分区,每个逻辑分区都拥有各自对应的一个槽位。这种分区划分方式可以使终端设备在进行操作系统升级的过程中,任意返回终端设备的主界面,但是会占用存储器较大的空间,从而使得用户数据分区可用的空间减小。
如图2所示,虚拟AB分区包括基础分区(common)、静态分区、动态分区和用户数据分区(user data)。其中,将存储的文件较小,即占用存储器空间较小的静态分区划分为第一静态分区(slotA)和第二静态分区(slotB);将存储的文件较大,即占用存储空间较大的动态分区(super)采用了单分区。在动态分区内部划分两个逻辑分区,但是只有一份实体镜像数据(比如,逻辑分区A有实体数据,逻辑分区B为虚拟设备;或者,逻辑分区A为虚拟设备,逻辑分区B有实体数据)。终端设备进行升级时,只会挂载一个逻辑分区,比如只挂载逻辑分区A,而不挂载逻辑分区B,再比如只挂载逻辑分区B,而不挂载逻辑分区A。
在虚拟AB分区中,slotA和slotB之间采用螺旋式切换升级方式。在系统升级时,终端设备运行在一个slot上,后台对另一个空闲的slot进行升级。示例性地,表1示出了虚拟AB分区升级时slotA和slotB的槽位状态。
Figure 157803DEST_PATH_IMAGE001
示例性地,表2示出了终端设备中各个分区的部署信息。各个分区的部署信息可以包括分区的大小、起始地址和结束地址。
表2
Figure 543785DEST_PATH_IMAGE002
需要说明的是,上述表2定义的分区的类型、分区的起始地址和分区大小,仅为示例性说明。在实际实现时,分区表中记录的分区可以根据实际的业务需求来进行划分设置针对不同的硬件可以根据需要调整相应的分区的起始地址和分区大小。
此外,除了特殊预留的分区,基本上每个分区都有其对应的镜像(image)文件,镜像文件是通过软件代码编译而成,里边集成了终端设备启动或运行过程相关的各种功能文件和配置。没有镜像文件,终端设备就没法运行。一个完整的系统版本包括很多镜像,分区表镜像gpt.img、启动相关镜像(xloader.img、boot.img)、系统镜像super.img(集成了android系统核心)和用户数据镜像userdata.img(用来储存用户数据)等。
终端设备的系统升级是解决系统故障,提升用户体验的重要途径。但是,基于版本设计缺陷或用户不习惯使用新版本等各种原因,终端设备的操作系统可能需要回退至低版本。常见的回退方式包括网点回退方式和非网点回方式。其中,非网点回退大多是基于安卓恢复(recovery)技术开发的系统回退方法。在非网点回退时,终端设备从服务器下载低版本的回退包,并在回退包基础数据校验成功后,在用户数据分区存储低版本的回退包,然后采用低版本的回退包进行系统回退。
目前,谷歌®在Android 7中版本引入了AB系统这一概念,但是并未强制启用,依旧兼容了先前的高速缓冲存储器(cache)分区升级方式。安卓R版本(Android 11)、安卓S版本(Android 12)及以上版本强制落地虚拟AB升级方案。如果OEM使用R版本及以上版本,那么必须采用虚拟AB升级方案。
与先前的cache分区升级方式有所不同,为了提高操作系统的安全性,虚拟AB升级方案会对用户数据分区的元数据进行加密。在终端设备从低版本的操作系统升级至高版本的操作系统时,终端设备会基于空中下载(over-the-air,OTA)技术从服务器下载高版本的操作系统的升级安装包,并将该升级安装包存储在用户数据分区,然后终端设备根据该升级安装包携带的高版本秘钥,将操作系统升级为高版本的操作系统。
然而,虚拟AB升级方案不支持采用recovery模式,将当前高版本的操作系统回退为低版本的操作系统。在终端设备下载低版本的回退包时,低版本的回退包存储至用户数据分区后会自动加密,即,低版本的回退包处于加密状态。由于低版本的回退包携带的低版本秘钥无法兼容正在运行的高版本的操作系统,因此终端设备无法将操作系统回退为低版本的操作系统。此外,由于虚拟AB升级方案对用户数据分区的元数据的加密方式尚未公开,而分区解密是一项复杂且投入较大的工作,因此当终端设备无法对分区解密时,会使得系统回退失败。
示例性地,图3示出了一种虚拟AB升级失败的流程示意图。如图3所示,假设终端设备的当前系统版本为S版本(Android 12),当用户想要将终端设备从S版本回退至R版本(Android 11)时,用户可以触发终端设备从服务器下载R版本的OTA全包。终端设备根据OTA全包进行升级安装。然后,终端设备进行重启,由于R版本的OTA全包处于加密状态,终端设备无法对用户数据分区的元数据进行解析,从而无法挂载用户数据分区,进而使得用户升级回退失败,回滚至S版本。
鉴于安卓R版本及以上版本因无法解析升级包/回退包所导致的用户升级回退失败问题,本申请实施例提供了一种系统回退方法:不解密用户数据分区,采用裸读/写方式进行用户数据分区回退包数据回写,完成回退版本的解密,然后重启进入recovery模式,从而完成操作系统的回退。
下面介绍本申请实施例涉及的系统回退方法、设备、装置、系统及存储介质。
图4为本申请实施例提供的终端设备的软件结构示意图。如图4所示,终端设备可以采用分层架构,将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将软件结构的软件层从上至下依次划分为:应用程序(application,AP)层、应用程序框架(framework,FW)层、系统库(FWK LIB)层、硬件抽象层(hardware abstract layer,HAL)和内核(kernel)层。
应用程序层,也称为应用层,可以包括一系列的应用程序包,比如用于进行系统升级管理的系统升级客户端(OTA update client,OUC)和设置应用等。当这些应用程序包被运行时,可以通过应用编程接口(application programming interface,API)访问应用程序框架层提供的各个服务模块,并且执行相应的智能化业务。
应用程序框架层,也称为框架层,可以用于支持应用程序层中的各个应用程序的运行。比如,框架层可以包括系统文件管理器、recovery服务模块、包管理器、升级引擎(update engine)、活动管理器和内容提供器等。其中,系统文件管理器(系统文件接口)用于对用户数据分区的数据进行读取和调用等,需要说明的是,在安卓系统中,系统文件接口具备对读取的数据自动解密的特性,因此终端设备调用系统文件接口从用户数据分区读取到的数据为明文数据。包管理器是在终端设备中自动安装、配制、卸载和升级软件包的工具组合,在各种系统软件和应用软件的安装管理中均有广泛应用。recovery服务模块用于系统升级、系统回退、升级固件(firmware)、维护应用软件及恢复出厂设置等。升级引擎是虚拟AB系统的核心逻辑,用于对升级包/回退包进行校验等。
系统库层,也称为库层或系统运行库层,包括安卓运行库(Runtime)和程序库。其中,安卓运行库包括Dalvik虚拟机和Java核心库。程序库通过应用程序框架为开发者提供服务,包括一系列第三方类库,如轻量级数据库(SQlite)、网络工具库(Webkit)和库(libe)等。
硬件抽象层是对Linux内核驱动程序的封装,向上提供接口,它隐藏了特定平台的硬件接口细节,为操作系统提供了虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。例如,硬件抽象层包括音频Hal和蓝牙Hal。
内核层是硬件和软件之间的层,属于安卓系统的底层部分。内核层可以包含各种驱动(drivers)接口,比如读写驱动、显示驱动,摄像头驱动,音频驱动及传感器驱动。内核层还可以包含电源管理、进程/线程等。在安卓系统中,驱动接口具备不对数据加密的特性,因此在系统文件接口读取到明文数据后,可以利用驱动接口的该特性,将读取到的明文数据回写至用户数据分区,从而实现了回退包的解密。
需要说明的是,图4示出的软件结构中的层以及各层中包含的部件,并不构成对终端设备的具体限定。在另一些实施例中,终端设备可以包括比图示更多或更少的层,以及每个层中可以包括更多或更少的部件,本申请不做限定。
可以理解的是,终端设备为了实现本申请实施例中的系统回退方法,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能。
为了便于描述本申请实施例提供的技术方案,下面基于如图2所示的分区结构及如图4所示的软件结构,以终端设备当前启动加载的是第一静态分区,启动后在第二静态分区和动态分区中进行回退包安装为例,对本申请实施例提供的系统回退方法进行详细说明。
示例性的,图5示出了终端设备加载各个分区的示意图。
如图5所示,第一静态分区和第二静态分区分别包括多个子分区,并且第一静态分区和第二静态分区中的子分区一一对应,例如X-loader_a中存储的数据与X-loader_b中存储的数据对应,boot_a中存储的数据与boot_b中存储的数据对应,dtbo_a中存储的数据和dtbo_b中存储的数据对应。动态分区包括了多个子分区,比如system子分区、system_ext子分区、product子分区、vendor子分区、cust子分区以及odm子分区。如果终端设备是从第一静态分区启动,那么终端设备会按照图5所示的顺序,依次加载基础分区的数据、第一静态分区的数据以及动态分区的数据,然后运行操作系统a。
在按照如图5所示的加载顺序启动终端设备后,如果基于操作系统a的版本设计缺陷或用户不习惯使用操作系统a等各种原因,终端设备可能需要回退至相对于操作系统a的版本较低的操作系统b的版本,即从高版本的操作系统回退至低版本的操作系统。此时,终端设备可以按照如图6所示的流程,实现本申请实施例提供的系统回退方法。
需要说明的是,该方法可以应用于从高版本的操作系统回退至低版本的操作系统的场景中。其中,高版本的操作系统采用了虚拟AB升级方案,比如高版本的操作系统可以为安卓R版本(Android 11)的操作系统,安卓S版本(Android 12)的操作系统,安卓T版本(Android 13)的操作系统,安卓T版本以上版本的操作系统,或其他任意采用了虚拟AB升级方案的操作系统,本申请实施例不作限定。
图6为本申请实施例提供的一种系统回退方法的流程示意图。下面以该方法的执行主体为终端设备,高版本的操作系统用操作系统a表示,低版本的操作系统用操作系统b表示为例进行说明。如图6所示,该方法可以包括下述的S61至S65。
S61、终端设备从服务器下载系统安装包。
其中,终端设备从服务器下载的系统安装包可以包括系统回退文件,系统回退文件为用于从当前的操作系统a回退至操作系统b的相关文件。
通常,终端设备的系统更新分为两种:一种是将终端设备从较低版本的系统升级至较高版本的系统,称为系统升级过程;另一种是将终端设备从较高版本的系统回退至较低版本的系统,称为系统回退过程。无论是系统升级过程,还是系统回退过程,终端设备均需要从服务器下载系统安装包,并根据系统安装包进行系统更新。为了便于区分系统升级过程和系统回退过程所使用的系统安装包,可以将系统升级过程中使用的系统安装包称为升级包,将系统回退过程中使用的系统安装包称为回退包。应理解,升级包和回退包均为用于系统更新的安装包。由于本申请实施例主要涉及系统回退过程,因此在无特殊说明的情况下,终端设备从服务器下载的系统安装包均是指回退包。
在一些实施例中,终端设备从服务器下载的系统安装包可以为操作系统b的全量安装包,也称为OTA全包。应理解,由于不同版本的全量安装包包含了不操作系统的安装文件,因此,终端设备可以向服务器请求操作系统b的全量安装包,并根据操作系统b的全量安装包,从当前的操作系统a回退至操作系统b。
在一些实施例中,操作系统a的版本高于操作系统b的版本,可以解释为下述任意一种或多种:
1、操作系统a的版本的发布时间晚于操作系统b的版本的发布时间,即,终端设备的开发商先发布操作系统b的版本,再发布操作系统a的版本。
2、与操作系统b的版本相比,操作系统a增加了新的功能。
3、针对操作系统b的版本中存在的漏洞或功能缺陷,操作系统a的版本对其进行了完善,优化了系统功能。
根据上述实施例的描述,操作系统a的版本采用了虚拟AB升级方案,对于操作系统b的版本是否采用虚拟AB升级方案,本申请实施例不作具体限定。在一些实施例中,操作系统a的版本和操作系统b的版本均采用虚拟AB升级方案,比如,操作系统a为安卓S版本(Android 12)的操作系统,操作系统b为安卓R版本(Android 11)的操作系统。在另一些实施例中,操作系统a的版本采用了虚拟AB升级方案,操作系统b的版本没有采用虚拟AB升级方案,比如,操作系统a为安卓R版本(Android 11)的操作系统,操作系统b为安卓Q版本(Android 10)的操作系统。
此外,作为一种可能的实现方式,操作系统b可以为操作系统a的上一个版本,即,在终端设备的开发商发布操作系统b的版本后,在发布操作系统a的版本之前,没有发布其他系统版本。比如,操作系统a为安卓S版本(Android 12)的操作系统,操作系统b为安卓R版本(Android 11)的操作系统,两者期间没有发布其他系统版本。
作为另一种可能的实现方式,操作系统b可以为操作系统a的上一个版本之前的版本,即,在终端设备的开发商发布操作系统b的版本后,在发布操作系统a的版本之前,还发布了其他版本。比如,操作系统a为安卓T版本(Android 13)的操作系统,操作系统b为安卓R版本(Android 11)的操作系统,两者期间还发布了安卓S版本(Android 12)的操作系统。
对于操作系统b的具体版本,及是否采用虚拟AB升级方案等,本申请实施例不作限定,可以根据实际使用需求进行确定。
S62、终端设备在用户数据分区以数据加密形式存储系统安装包。
在一些实施例中,操作系统b的系统安装包可以以块(block)或数据块(dateblock)为单位进行存储管理。其中,block的大小可以由用户指定,也可以为系统预定义。比如,一个block可以为2K,也可以为64K。
通常,操作系统b的系统安装包会包含多个数据,因此在终端设备下载到操作系统b的系统安装包后,可以根据系统安装包的大小,在用户数据分区中为系统安装包分配多个空闲的block,并在多个空闲的block中存储系统安装包。
另外,由于当前运行的操作系统a采用了虚拟AB升级方案,因此终端设备会自动在多个空闲的block中以数据加密形式存储操作系统b的系统安装包。即,多个block中的每个block存储了系统安装包的部分加密数据,多个block存储的全部加密数据组成在一起即为已加密的整个系统安装包。
示例性地,图7示出了一种回退包解密的示意图。如图7所示,在下载OTA回退包后,可以调用系统文件接口在用户数据分区的block1、block2、block3、block4、block5和block6中存储已加密回退包。在调用系统文件接口和驱动接口完成回退包解密后,block1、block2、block3、block4、block5和block6中存储的数据更新为已解密回退包。
需要说明的是,上述图7以及下述图11均是以回退包占用6个block为例进行说明的,其并不对本申请实施例形成限定。在实际实现时,回退包占用的block的数量可以根据回退包的大小以及每个block的大小确定。
S63、终端设备调用系统文件接口,从用户数据分区读取系统安装包的明文数据。
终端设备在用户数据分区以数据加密形式存储系统安装包后,会启动系统升级引擎服务,从而升级引擎可以调用系统文件接口从用户数据分区读取系统安装包的数据。在安卓系统中,系统文件接口为上层接口,具备对读取的数据自动解密的特性,因此终端设备可以调用系统文件接口,从用户数据分区读取到明文数据。其中,升级引擎是虚拟AB系统的核心逻辑,用于对升级包/回退包进行读取、校验,以及将待落盘(merge)数据同步至动态分区等。
S64、终端设备调用驱动接口,将由系统文件接口读取到的明文数据回写至用户数据分区。
需要说明的是,系统文件接口除了具备在数据读取时自动解密的特性,还具备在数据写入时自动加密的特性,因此尽管系统文件接口可以从用户数据分区读取到明文数据,但是在系统文件接口向用户数据分区回写数据时,会再次自动对明文数据加密,使得用户数据分区的回退包仍然处于加密状态,无法实现系统回退。因此,本申请实施例提出:利用驱动接口具备在数据写入时不对数据进行自动加密的特性,通过驱动接口绕过加密,将读取到的明文数据回写至用户数据分区,从而完成了回退包的解密。
在一些实施例中,驱动接口位于内核层,内核层属于安卓软件框架的底层部分,因此驱动接口也称为底层接口。示例性地,驱动接口具体可以为读写(read/write)接口,用于将由系统文件接口读取到的明文数据回写至用户数据分区。
S65、终端设备重启进入recovery模式,根据用户数据分区中已解密的系统安装包,从操作系统a回退至操作系统b。
在传统技术中,针对已经在终端设备中成功安装的操作系统a,由于操作系统a采用了虚拟AB升级方案,因此目前尚不支持recovery模式。然而,在采用本申请实施例提供的上述系统安装包的解密方案的情况下,终端可以重启进入recovery模式,读取用户数据分区中已解密的系统安装包,并在恢复出厂设置后,重启回退到操作系统b。
应理解,由于操作系统a采用了虚拟AB升级方案,会自动对用户数据分区进行元数据加密,因此在下载到操作系统b的系统安装包后,终端设备会在用户数据分区以数据加密形式存储系统安装包,即,在用户数据分区中存储加密后的系统安装包,使得系统安装包处于加密状态。结合上述实施例的描述,由于低版本的回退包携带的低版本秘钥无法兼容高版本的操作系统,因此终端设备无法根据低版本秘钥,将操作系统回退为低版本的操作系统,使得系统回退失败。针对无法解析用户数据分区的加密数据的问题,本申请实施例提出利用系统文件接口能够解密在用户数据分区的被加密数据的特性,以及驱动接口能够在用户数据分区中回写裸数据的特性,完成对户数据分区中系统安装包的解密,从而终端设备可以在重启进入recovery模式后完成回退。
上述实施例以执行主体是终端设备为例对系统回退方法进行了示例介绍。参照如图4所示的软件结构,终端设备包括了用于实现不同功能的各个软件模块。为了更清楚地理解本申请,下面将结合图8,从终端设备的各个软件模块的角度,对本申请实施例提供的系统回退方法进行详细说明。其中,终端设备当前正在运行的操作系统为采用了虚拟AB升级方案的S版本(Android 12),待回退至的操作系统为R版本(Android 11)。
图8为本申请实施例提供的另一种系统回退方法的流程示意图。如图8所示,该方法可以包括下述的S01至S11。
S01、终端设备的主系统(main system)启动,运行S版本(Android 12)的操作系统。
其中,S版本(Android 12)的操作系统采用了虚拟AB升级方案,会对用户数据分区的元数据进行自动加密。
S02、在运行S版本(Android 12)的操作系统的过程中,OUC响应于用户操作,向服务器发送系统回退请求,该系统回退请求用于请求R版本(Android 11)的系统安装包。
相应地,服务器响应于接收到的系统回退请求,向终端设备发送R版本(Android11)的系统安装包。其中,R版本(Android 11)的系统安装包可以包括R版本的系统回退文件,该系统回退文件用于回退至R版本。
示例性的,图9示出了一种通信系统的架构示意图。如图9所示,该通信系统可以包括终端设备1、OTA服务器2和拍包服务器3,其中,拍包服务器3用于制作生成各个版本的系统安装包,并将系统安装包提供给OTA服务器2进行管理。OTA服务器2则会根据不同终端设备(例如手机、PC或平板等)发起的获取升级安装包的请求,向终端设备发送对应的系统安装包,或者由OTA服务器2在接收到拍包服务器3发送的系统安装包后主动推送给对应的终端设备。具体地,终端设1备可以向OTA服务器2发送系统回退请求,该系统回退请求用于请求R版本(Android 11)的系统安装包。OTA服务器2响应于该系统回退请求向终端设备1发送R版本(Android 11)的系统安装包。其中,R版本(Android 11)的系统安装包可以是拍包服务器3在制作好系统安装包后主动发送给OTA服务器2的,也可以是OTA服务器2响应于该系统回退请求,向拍包服务器3发起请求后,由拍包服务器3向OTA服务器2发起下发的。
终端设备可能在下述任意一种场景中接收到用户的回退操作:
在第1种可能的场景中,在运行S版本(Android 12)的操作系统的过程中,如果用户不习惯使用该版本,那么用户可以对终端设备进行操作,从而OUC响应于用户的回退操作,向服务器发送系统回退请求。
在第2种可能的场景中,在运行S版本(Android 12)的操作系统的过程中,如果基于S版本(Android 12)的设计缺陷等原因,在用户使用终端设备时频繁出错,影响用户操作感,那么用户可以对终端设备进行操作,从而OUC响应于用户的回退操作,向服务器发送系统回退请求。
在第3种可能的场景中,在运行S版本(Android 12)的操作系统的过程中,如果终端设备对操作系统进行监控,以检测是否出现问题,比如检测到出现错误的次数大于或等于预设次数,或者检测运行时卡顿时间大于或等于预设时间,那么终端设备检测到这些问题,输出提醒信息,以提醒用户当前操作系统存在不兼容的问题。此时,用户可以进行回退系统的触发操作,从而OUC响应于用户的触发操作,向服务器发送系统回退请求。
下面以上述第1种可能的场景和第2种可能的场景为例,结合图10,介绍用户触发系统回退的操作流程。
图10示出了用户触发手机系统回退的操作示意图。
以荣耀®手机的Magic UI为例。Magic UI为基于开源的Android推出的一系列操作系统,比如Magic UI 6.0、Magic UI 5.0、Magic UI 4.0。其中,Magic UI 6.0为基于S版本(Android 12)的操作系统,Magic UI 5.0为基于R版本(Android 11)的操作系统,Magic UI4.0为基于Q版本(Android 10)的操作系统。假设手机当前正在运行Magic UI 6.0的操作系统,基于版本设计缺陷或用户不习惯使用新版本等原因,用户可能想要从Magic UI 6.0的操作系统回退至Magic UI 5.0。此时,用户可以同时按压设置在手机的侧边框上的音量键和电源键,从而手机显示如图10所示的系统更新界面11。或者,用户也可以通过对桌面界面中设置应用图标的操作,触发手机显示如图10所示的系统更新界面11。
如图10所示,系统更新界面11提供了软件升级选项12和软件回退选项13,软件升级选项12用于升级系统版本,软件回退选项13用于回退系统版本。其中,软件回退选项13包括了自动回退选项131和手动回退选项132。手动回退选项132包括用户可以手动选择的Magic UI 5.0选项和Magic UI 4.0选项。如果用户点击了自动回退选项131,那么OUC响应于用户操作,确定待回退至的系统版本为Magic UI 6.0的上一版本Magic UI 5.0,并向服务器发送关于Magic UI 5.0的系统回退请求。如果用户点击了Magic UI 5.0选项,那么OUC响应于用户操作,直接向服务器发送关于Magic UI 5.0的系统回退请求。
需要说明的是,上述实施例是以基于S版本(Android 12)的Magic UI 6.0和基于R版本(Android 11)的Magic UI 5.0为例进行示例说明的,其并不对本申请实施例形成限定。应理解,对于其他基于虚拟AB升级方案的系统,或基于虚拟AB升级方案的系统所推出的系统,均可以使用本申请实施例提供的系统回退方法。
S03、在接收到来自服务器的R版本(Android 11)的系统安装包后,OUC对R版本(Android 11)的系统安装包进行基础数据校验。
为了避免R版本(Android 11)的系统安装包中的回退文件不完整或存在错误,导致本次系统回退失败,在系统安装包下载完成后,OUC可以先对系统安装包进行基础数据校验,以检查升级系统安装包中的回退文件是否完整、无误,然后在基础数据校验成功的情况下,在用户数据分区存储系统安装包。当然,OUC也可以不对基础数据校验,直接在用户数据分区存储系统安装包。
在对R版本(Android 11)的系统安装包进行基础数据校验失败的情况下,OUC可以结束下述回退流程,继续运行S版本(Android 12);或者,OUC可以通知显示引擎输出提示信息,以提示用户重新下载R版本(Android 11)的系统安装包,即继续执行上述S02。
在一些实施例中,上述校验内容可以包括下述至少一项:系统安装包的版本号,以及系统安装包的数据完整性和合法性等。例如,OUC可以采用MD5(checksum)校验方式,对系统安装包进行散列运算来检查数据的正确性。如果计算出的散列值和伴随数据传输的散列值相同,那么可以确定传输的安装包完整无误、没有被窜改过。
应理解,对系统安装包进行基础数据校验,可以有效避免升级文件不完整或存在错误导致系统回退失败,从而提高了系统回退的成功率。
S04、在对R版本(Android 11)的系统安装包进行基础数据校验成功的情况下,OUC将R版本(Android 11)的系统安装包以数据加密形式存储至用户数据分区。
对用户数据分区的元数据进行加密,为S版本(Android 12)的强制操作,且加密方式尚未公开。因此在终端设备的开发商或厂商基于开源的S版本(Android 12)推出操作系统时,无法直接对用户数据分区中的数据进行解密。
S05、OUC向升级引擎发送通知消息,该通知消息可以用于指示升级引擎安装R版本(Android 11)的操作系统。
S06、升级引擎响应于该通知消息,调用系统文件管理器的接口(即系统文件接口),以block为单位读取在用户数据分区中存储的明文数据,建立R版本(Android 11)的系统安装包的文件信息映射表(即map表),以及将该文件信息映射表存储到可用分区。
其中,用户数据分区与可用分区为两个不同的数据存储区域:用户数据分区存储密文,比如加密后的系统安装包;可用分区存储明文数据,比如系统安装包的明文数据。
结合上述实施例S62的描述,由于系统安装包包含多个数据,因此终端设备在用户数据分区中为系统安装包分配了多个空闲的block,即,R版本(Android 11)的系统安装包以block为单位在用户数据分区中进行存储管理。这样,利用系统文件接口具备在从用户数据分区读取时自动解密的特性,升级引擎可以调用系统文件接口,以block为单位依次对在用户数据分区中存储的加密数据进行读取,得到明文数据。
除此之外,升级引擎还建立了一个文件信息映射表,该文件信息映射表包含了用于存储系统安装包的各个block的信息,比如:用于存储系统安装包的子分区的起止地址和结束地址,用于存储系统安装包的各个block等。文件信息映射表用于对各个block进行管理。
应理解,一方面,在调用系统文件接口读取明文数据,并调用驱动接口将明文数据回写至用户数据分区后的过程中,可能会发生错误,导致回写到用户数据分区的系统安装包无法正常使用,因此通过建立文件信息映射表,可以记录系统安装包的各个block的信息,从而便于后期对回写到用户数据分区的数据进行校验。另一方面,通过建立文件信息映射表,使得后期启动recovery服务时,根据文件信息映射表读取已解密数据,完成系统回退。
S07、升级引擎调用内核层的驱动接口,将裸数据直接回写到用户数据分区的源位置。
结合上述实施例S63和S64的描述,系统文件接口能够解密在用户数据分区的被加密数据,驱动接口能够在用户数据分区中回写裸数据,因此调用系统文件接口和驱动接口可以完成对用户数据分区中系统安装包的解密。
下面结合图11,对以block为单位进行回退包解密的流程进行示例说明。如图11所示,在用户数据分区的block1、block2、block3、block4、block5和block6中存储已加密的回退包。升级引擎可以调用系统文件接口和驱动接口,执行下述步骤:
步骤1、升级引擎调用系统文件接口对block1的密文1解密,得到明文数据1。然后,升级引擎调用读写接口,将明文数据1回写至block1,即,在block1中明文数据1覆盖了密文1。
步骤2、升级引擎调用系统文件接口对block2的密文2解密,得到明文数据2。然后,升级引擎调用读写接口,将明文数据2回写至block2,即,在block2中明文数据2覆盖了密文2。
步骤3、升级引擎调用系统文件接口对block3的密文3解密,得到明文数据3。然后,升级引擎调用读写接口,将明文数据3回写至block3,即,在block3中明文数据3覆盖了密文3。
步骤4、升级引擎调用系统文件接口对block4的密文4解密,得到明文数据4。然后,升级引擎调用读写接口,将明文数据4回写至block4,即,在block4中明文数据4覆盖了密文4。
步骤5、升级引擎调用系统文件接口对block5的密文5解密,得到明文数据5。然后,升级引擎调用读写接口,将明文数据5回写至block5,即,在block5中明文数据5覆盖了密文5。
步骤6、升级引擎调用系统文件接口对block6的密文6解密,得到明文数据6。然后,升级引擎调用读写接口,将明文数据6回写至block6,即,在block6中明文数据6覆盖了密文6。至此,6个block中的密文数据全部替换为明文数据,完成了回退包的解密。
S08、升级引擎根据文件信息映射表对用户数据分区进行校验。
示例性地,升级引擎可以根据文件信息映射表计算两个哈希值,一个哈希值与原用户数据分区关联,另一个哈希值与现用户数据分区关联。通过比较两个哈希值,可以确定各个block中存储的数据是否发生错误,从而提高系统回退的功能率。
在对用户数据分区校验成功的情况下,可以继续执行下述S09。在对用户数据分区校验失败的情况下,可以重新执行S05至S08,或者从重新执行S02至S08,或者继续运行S版本(Android 12)。
S09、在对用户数据分区校验成功后,主系统(main system)重启,启动recovery服务。
S10、recovery服务从用户数据分区读取解密后的系统安装包。
示例性地,终端设备的上层应用可以通过调用Android标准的RecoverySystem类的接口,来完成与recovery服务的通信。比如,可以调用installPackage()函数向recovery分区写入回退命令,从而主系统重新启动进入recovery模式。recovery服务从用户数据分区读取解密后的系统安装包,并安装R版本(Android 11)的操作系统,这个操作也可称为“恢复出厂”。
S11、主系统再次重启,运行R版本(Android 11)的操作系统。
在recovery服务完成后,先通过finish_recovery()函数清除启动控制信息块(bootloader control block,BCB),避免重启后再次进入recovery模式,再通过callreboot()函数,主系统再次重启,运行R版本(Android 11)的操作系统。至此,已经成了从S版本(Android 12)回退至R版本(Android 11)的操作系统。
需要说明的是,上述实施例均是以调用驱动接口将明文数据回写至用户数据分区的源位置为例进行说明的,其并不对本申请实施例形成限定。本申请实施例提供了另外一种数据回写方法:在通过系统文件接口每次得到与一个块对应的明文数据之后,通过升级引擎调用驱动接口,将与一个块对应的明文数据回写至用户数据分区的另一个块。在将与多个块对应的全部明文数据回写至与多个块不同的多个块后,得到已解密的安装包。即,用于存储加密的数据包的区域,以及用于存储已解密的数据包的区域,为用户数据分区中的不同区域。
示例性地,假设用户数据分区包括两个区域:一个区域由block1、block2、block3、block4、block5和block6组成,用于存储加密的数据包;另一个区域由block7、block8、block9、block10、block11和block12组成,用于存储已解密的数据包。如图12所示,升级引擎可以调用系统文件接口和驱动接口,执行下述步骤:
步骤1、升级引擎调用系统文件接口对block1的密文1解密,得到明文数据1。然后,升级引擎调用读写接口,将明文数据1回写至block7。
步骤2、升级引擎调用系统文件接口对block2的密文2解密,得到明文数据2。然后,升级引擎调用读写接口,将明文数据2回写至block8。
步骤3、升级引擎调用系统文件接口对block3的密文3解密,得到明文数据3。然后,升级引擎调用读写接口,将明文数据3回写至block9。
步骤4、升级引擎调用系统文件接口对block4的密文4解密,得到明文数据4。然后,升级引擎调用读写接口,将明文数据4回写至block10。
步骤5、升级引擎调用系统文件接口对block5的密文5解密,得到明文数据5。然后,升级引擎调用读写接口,将明文数据5回写至block11。
步骤6、升级引擎调用系统文件接口对block6的密文6解密,得到明文数据6。然后,升级引擎调用读写接口,将明文数据6回写至block12。至此,6个block中的密文数据全部替换为明文数据,完成了回退包的解密。
此外还需要说明的是,在本申请实施例中,用于存储加密的数据包的多个块可以为地址连续的块,也可以为地址不连续的块。用于存储已解密的数据包的多个块可以为地址连续的块,也可以为地址不连续的块。
上述主要从终端设备的角度对本申请实施例提供的方案进行了介绍。可以理解的是,这些设备为了实现上述功能,其包含了执行每一个功能相应的硬件结构或软件模块,或两者结合。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对终端设备进行功能模块的划分,例如,可以对应每一个功能划分每一个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。下面以采用对应每一个功能划分每一个功能模块为例进行说明。
图13示出了本申请实施例提供的一种装置的结构图,该装置可以为终端设备、终端设备中的芯片、片上系统、或者其他能够实现上述方法中终端设备的功能的装置等,该装置30可以用于执行上述方法实施例中涉及的终端设备的功能。如图13所示装置30包括:系统运行模块31、数据存储模块32和数据处理模块33。
系统运行模块31,用于运行第一操作系统,第一操作系统采用虚拟AB升级方案。数据存储模块32,用于响应于用户操作,基于虚拟AB升级方案,在用户数据分区以数据加密形式存储第二操作系统的安装包。数据处理模块33,用于调用系统文件接口从用户数据分区读取第二操作系统的安装包的明文数据,并在可用分区存储该明文数据;以及用于调用驱动接口,将在可用分区存储的该明文数据回写至用户数据分区。系统运行模块31,还用于重启进入recovery模式,根据用户数据分区中已解密的第二操作系统的安装包,从第一操作系统回退至第二操作系统。其中,第二操作系统的版本低于第一操作系统的版本。
在一些实施例中,数据存储模块32,具体用于在用户数据分区的多个块中以数据加密形式存储第二操作系统的安装包。
在一些实施例中,数据处理模块33,具体用于启动升级引擎;通过升级引擎调用系统文件接口,以块为单位依次对在多个块的每个块中存储的加密数据进行读取,得到与每个块对应的明文数据。
在一些实施例中,数据处理模块33,具体用于在系统文件接口每次得到与一个块对应的明文数据之后,通过升级引擎调用驱动接口,将在与该一个块对应的明文数据回写至该一个块,该一个块为多个块中的任意一个块。或者,数据处理模块33,具体用于在通过系统文件接口每次得到与一个块对应的明文数据之后,通过升级引擎调用驱动接口,将与一个块对应的明文数据回写至另一个块,该一个块为多个块中的任意一个块,该另一个块为用户数据分区中与该多个块不同的块。
在一些实施例中,系统运行模块31,具体用于:响应于用户操作,向服务器发送请求消息,请求消息用于请求第二操作系统的安装包;接收来自服务器的第二操作系统的安装包;在对第二操作系统的安装包进行基础数据校验成功的情况下,调用系统文件接口,基于虚拟AB升级方案,在用户数据分区的多个块中以数据加密形式存储第二操作系统的安装包。
在一些实施例中,数据处理模块33,还用于在调用系统文件接口从用户数据分区读取第二操作系统的安装包的明文数据之后,建立第二操作系统的安装包的文件信息映射表,以及存储该文件信息映射表,该文件信息映射表包括用于多个块的信息。
在一些实施例中,系统运行模块31,还用于:根据文件信息映射表对多个块进行校验;在对多个块校验成功的情况下,重启主系统进入recovery模式。
在一些实施例中,系统运行模块31,具体用于:从用户数据分区中读取已解密的第二操作系统的安装包;根据已解密的第二操作系统的安装包,安装第二操作系统;重启主系统,并运行第二操作系统。
图14为本申请实施例提供的终端设备的结构示意图。终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,USB接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是终端设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。在一些实施例中,处理器110可以包括一个或多个接口。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。图14中的天线1和天线2的结构仅为一种示例。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
在一些实施例中,终端设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。
终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,终端设备100可以包括1个或N个显示屏194,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序;当该计算机可读存储介质在终端设备或网络设备上运行时,使得该终端设备或网络设备执行如上所示的方法。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘或磁带),光介质或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行上述各实施例中的方法。
本申请实施例还提供了一种芯片,该芯片与存储器耦合,该芯片用于读取并执行存储器中存储的计算机程序或指令,以执行上述各实施例中的方法。该芯片可以为通用处理器,也可以为专用处理器。需要说明的是,该芯片可以使用下述电路或者器件来实现:一个或多个现场可编程门阵列(field programmable gate array,FPGA)、可编程逻辑器件(programmable logic device,PLD)、控制器、状态机、门逻辑、分立硬件部件、任何其他适合的电路、或者能够执行本申请通篇所描述的各种功能的电路的任意组合。
需要说明的是,本申请的说明书、权利要求书及附图中的术语“第一”和“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上,“至少两个”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”或其类似表达,是指这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b或c中的至少一项,可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请实施例中,“与A对应的B”表示B与A相关联。例如,可以根据A可以确定B。还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。此外,本申请实施例中出现的“连接”是指直接连接或者间接连接等各种连接方式,以实现设备间的通信,本申请实施例对此不做任何限定。
本申请实施例中出现的“传输”(transmit/transmission)如无特别说明,是指双向传输,包含发送和/或接收的动作。具体地,本申请实施例中的“传输”包含数据的发送,数据的接收,或者数据的发送和数据的接收。或者说,这里的数据传输包括上行和/或下行数据传输。数据可以包括信道和/或信号,上行数据传输即上行信道和/或上行信号传输,下行数据传输即下行信道和/或下行信号传输。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备,如:可以是单片机,芯片等,或处理器执行本申请各个实施例提供方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (14)

1.一种系统回退方法,其特征在于,所述方法包括:
运行第一操作系统,所述第一操作系统采用虚拟AB升级方案;
响应于用户操作,基于所述虚拟AB升级方案,在用户数据分区以数据加密形式存储第二操作系统的安装包,所述第二操作系统的版本低于所述第一操作系统的版本;
调用系统文件接口,从所述用户数据分区读取所述安装包的明文数据;
调用驱动接口,将读取到的所述明文数据回写至所述用户数据分区;
重启进入恢复模式,根据所述用户数据分区中已解密的所述安装包,从所述第一操作系统回退至所述第二操作系统。
2.根据权利要求1所述的方法,其特征在于,在调用所述系统文件接口,从所述用户数据分区读取所述安装包的明文数据之前,所述安装包在所述用户数据分区的多个块中以数据加密形式存储;
所述调用系统文件接口,从所述用户数据分区读取所述安装包的明文数据,包括:
启动升级引擎;
通过所述升级引擎调用所述系统文件接口,以块为单位依次对在所述多个块的每个块中存储的加密数据进行读取,得到与每个块对应的明文数据。
3.根据权利要求2所述的方法,其特征在于,所述调用驱动接口,将读取到的所述明文数据回写至所述用户数据分区,包括:
在通过所述系统文件接口每次得到与一个块对应的明文数据之后,通过所述升级引擎调用所述驱动接口,将与所述一个块对应的明文数据回写至所述一个块,所述一个块为所述多个块中的任意一个块;
在将与所述多个块对应的全部明文数据回写至所述多个块后,得到已解密的所述安装包。
4.根据权利要求2所述的方法,其特征在于,所述调用驱动接口,将读取到的所述明文数据回写至所述用户数据分区,包括:
在通过所述系统文件接口每次得到与一个块对应的明文数据之后,通过所述升级引擎调用所述驱动接口,将与所述一个块对应的明文数据回写至另一个块,所述一个块为所述多个块中的任意一个块,所述另一个块为所述用户数据分区中与所述多个块不同的块;
在将与所述多个块对应的全部明文数据回写至与所述多个块不同的多个块后,得到已解密的所述安装包。
5.根据权利要求1所述的方法,其特征在于,所述响应于用户操作,基于所述虚拟AB升级方案,在用户数据分区以数据加密形式存储第二操作系统的安装包,包括:
响应于所述用户操作,向服务器发送请求消息,所述请求消息用于请求所述安装包;
接收来自所述服务器的所述安装包;
在对所述安装包进行基础数据校验成功的情况下,调用所述系统文件接口,基于所述虚拟AB升级方案,在所述用户数据分区的多个块中以数据加密形式存储所述安装包。
6.根据权利要求1所述的方法,其特征在于,在调用所述系统文件接口,从所述用户数据分区读取所述安装包的明文数据之前,所述安装包在所述用户数据分区的多个块中以数据加密形式存储;
所述调用系统文件接口,从所述用户数据分区读取所述安装包的明文数据之后,所述方法还包括:
建立所述安装包的文件信息映射表,以及存储所述文件信息映射表,所述文件信息映射表包括所述多个块的信息。
7.根据权利要求6所述的方法,其特征在于,所述重启进入恢复模式,包括:
根据所述文件信息映射表对所述多个块进行校验;
在对所述多个块校验成功的情况下,重启主系统进入所述恢复模式。
8.根据权利要求1所述的方法,其特征在于,所述根据所述用户数据分区中已解密的所述安装包,从所述第一操作系统回退至所述第二操作系统,包括:
从所述用户数据分区中读取已解密的所述安装包;
根据所述已解密的所述安装包,安装所述第二操作系统;
重启主系统,并运行所述第二操作系统。
9.根据权利要求1至8中任意一项所述的方法,其特征在于,所述第一操作系统和所述第二操作系统为基于安卓的操作系统。
10.根据权利要求1至8中任意一项所述的方法,其特征在于,所述第二操作系统采用所述虚拟AB升级方案,或者,所述第二操作系统未采用所述虚拟AB升级方案。
11.根据权利要求1至8中任意一项所述的方法,其特征在于,所述第二操作系统为所述第一操作系统的上一版本的操作系统,或者,所述第二操作系统为所述第一操作系统的上一版本之前版本的操作系统。
12.根据权利要求1至8中任意一项所述的方法,其特征在于,所述驱动接口位于内核层。
13.一种终端设备,其特征在于,包括通信接口、处理器和存储器;
其中,所述通信接口用于连接服务器;所述处理器与所述存储器耦合;所述处理器用于执行所述存储器中存储的计算机程序或指令,以使得所述终端设备实现如权利要求1至12中任一项所述的系统回退方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在终端设备上运行时,使得所述终端设备执行如权利要求1至12中任一项所述的系统回退方法。
CN202211292292.1A 2022-10-21 2022-10-21 系统回退方法、设备及存储介质 Active CN115357295B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211292292.1A CN115357295B (zh) 2022-10-21 2022-10-21 系统回退方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211292292.1A CN115357295B (zh) 2022-10-21 2022-10-21 系统回退方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115357295A true CN115357295A (zh) 2022-11-18
CN115357295B CN115357295B (zh) 2023-03-31

Family

ID=84007831

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211292292.1A Active CN115357295B (zh) 2022-10-21 2022-10-21 系统回退方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115357295B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117215839A (zh) * 2023-10-30 2023-12-12 广州鼎甲计算机科技有限公司 基于Web的系统还原方法、装置、设备、介质和程序产品

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110029A (zh) * 2009-12-25 2011-06-29 中国长城计算机深圳股份有限公司 一种备份还原系统的方法
CN103197987A (zh) * 2012-01-04 2013-07-10 中兴通讯股份有限公司 一种数据备份的方法、数据恢复的方法及系统
US20150378842A1 (en) * 2014-06-27 2015-12-31 Martin Tomlinson Systems and methods for quorum-based data recovery
US20160012233A1 (en) * 2014-07-14 2016-01-14 Lenovo (Singapore) Pte, Ltd. Verifying integrity of backup file in a multiple operating system environment
US20170060597A1 (en) * 2014-02-13 2017-03-02 Fujitsu Technology Solutions Intellectual Property Gmbh Method of booting a production computer system
US20170076081A1 (en) * 2014-12-09 2017-03-16 Sofin Raskin Method and apparatus for securing user operation of and access to a computer system
CN107526608A (zh) * 2017-06-08 2017-12-29 青岛海信移动通信技术股份有限公司 一种ota升级包升级方法及设备
CN107784233A (zh) * 2016-08-25 2018-03-09 中兴通讯股份有限公司 一种从加密用户数据分区中读取升级包的方法及装置
CN107908503A (zh) * 2012-11-26 2018-04-13 亚马逊科技公司 从备份系统流式恢复数据库
US20190079746A1 (en) * 2017-09-11 2019-03-14 Apple Inc. Software updating methods and systems
CN109804359A (zh) * 2016-08-11 2019-05-24 图科塞拉公司 用于将数据回写到存储设备的系统和方法
CN109871296A (zh) * 2018-12-24 2019-06-11 航天信息股份有限公司 一种数据备份方法及系统、数据恢复方法及系统和移动终端
CN109992453A (zh) * 2019-04-30 2019-07-09 Oppo广东移动通信有限公司 系统恢复方法及相关产品
US20190243950A1 (en) * 2018-02-07 2019-08-08 NEC Laboratories Europe GmbH Allowing remote attestation of trusted execution environment enclaves via proxy
CN111222152A (zh) * 2020-01-03 2020-06-02 上海达梦数据库有限公司 一种数据写入方法、装置、设备及存储介质
CN111858185A (zh) * 2020-08-26 2020-10-30 河南工业大学 一种计算机信息备份还原系统
CN113495806A (zh) * 2020-03-20 2021-10-12 宇龙计算机通信科技(深圳)有限公司 恢复用户数据的方法、装置、存储介质及终端
CN113704205A (zh) * 2021-07-29 2021-11-26 荣耀终端有限公司 日志存储的方法、芯片、电子设备和可读存储介质

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110029A (zh) * 2009-12-25 2011-06-29 中国长城计算机深圳股份有限公司 一种备份还原系统的方法
CN103197987A (zh) * 2012-01-04 2013-07-10 中兴通讯股份有限公司 一种数据备份的方法、数据恢复的方法及系统
CN107908503A (zh) * 2012-11-26 2018-04-13 亚马逊科技公司 从备份系统流式恢复数据库
US20170060597A1 (en) * 2014-02-13 2017-03-02 Fujitsu Technology Solutions Intellectual Property Gmbh Method of booting a production computer system
US20150378842A1 (en) * 2014-06-27 2015-12-31 Martin Tomlinson Systems and methods for quorum-based data recovery
US20160012233A1 (en) * 2014-07-14 2016-01-14 Lenovo (Singapore) Pte, Ltd. Verifying integrity of backup file in a multiple operating system environment
US20170076081A1 (en) * 2014-12-09 2017-03-16 Sofin Raskin Method and apparatus for securing user operation of and access to a computer system
CN109804359A (zh) * 2016-08-11 2019-05-24 图科塞拉公司 用于将数据回写到存储设备的系统和方法
CN107784233A (zh) * 2016-08-25 2018-03-09 中兴通讯股份有限公司 一种从加密用户数据分区中读取升级包的方法及装置
CN107526608A (zh) * 2017-06-08 2017-12-29 青岛海信移动通信技术股份有限公司 一种ota升级包升级方法及设备
US20190079746A1 (en) * 2017-09-11 2019-03-14 Apple Inc. Software updating methods and systems
US20190243950A1 (en) * 2018-02-07 2019-08-08 NEC Laboratories Europe GmbH Allowing remote attestation of trusted execution environment enclaves via proxy
CN109871296A (zh) * 2018-12-24 2019-06-11 航天信息股份有限公司 一种数据备份方法及系统、数据恢复方法及系统和移动终端
CN109992453A (zh) * 2019-04-30 2019-07-09 Oppo广东移动通信有限公司 系统恢复方法及相关产品
CN111222152A (zh) * 2020-01-03 2020-06-02 上海达梦数据库有限公司 一种数据写入方法、装置、设备及存储介质
CN113495806A (zh) * 2020-03-20 2021-10-12 宇龙计算机通信科技(深圳)有限公司 恢复用户数据的方法、装置、存储介质及终端
CN111858185A (zh) * 2020-08-26 2020-10-30 河南工业大学 一种计算机信息备份还原系统
CN113704205A (zh) * 2021-07-29 2021-11-26 荣耀终端有限公司 日志存储的方法、芯片、电子设备和可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117215839A (zh) * 2023-10-30 2023-12-12 广州鼎甲计算机科技有限公司 基于Web的系统还原方法、装置、设备、介质和程序产品
CN117215839B (zh) * 2023-10-30 2024-03-12 广州鼎甲计算机科技有限公司 基于Web的系统还原方法、装置、设备、介质和程序产品

Also Published As

Publication number Publication date
CN115357295B (zh) 2023-03-31

Similar Documents

Publication Publication Date Title
US8874892B1 (en) Assessing BIOS information prior to reversion
CN106293507B (zh) 具有外部存储器的电子设备及操作电子设备的方法
CN109964227B (zh) 更新SELinux安全策略的方法及终端
WO2011127845A2 (zh) 一种移动通信终端间进行系统升级的方法、系统及终端
EP3399408B1 (en) Information processing apparatus and computer readable storage medium
KR101541112B1 (ko) Fota 시스템 및 그 실행 방법
US20130227565A1 (en) Apparatus and method for managing application for guest operating system
CN110597542A (zh) 软件自动ota升级方法及装置、电子设备
CN115357295B (zh) 系统回退方法、设备及存储介质
KR20120071060A (ko) 동적으로 확장 가능한 기능을 제공하는 스토리지 장치 및 그것의 동작 방법
WO2024078218A1 (zh) 系统启动方法及电子设备
CN114780127A (zh) 嵌入式设备固件更新方法、嵌入式设备、开发端设备
CN116737214A (zh) 操作系统的升级方法、电子设备及存储介质
CN111459524A (zh) 软件的升级方法、装置、系统
CN112416411A (zh) 升级方法及装置、设备端、服务器、计算机可读介质
WO2023198056A1 (zh) 嵌入式设备固件更新方法以及嵌入式设备
CN116382791B (zh) 一种配置文件的保护方法及电子设备
KR20100062148A (ko) 이동 통신 단말기 및 이의 펌웨어 업데이트 방법
CN115951920A (zh) 移动设备升级方法、装置、存储单元和移动设备
EP3992783A1 (en) Patch releasing method, server and terminal device
CN117177246B (zh) 一种用于锁死电子设备的方法、电子设备及服务器
CN113190244A (zh) 无线模组升级的方法、装置、计算机设备和存储介质
CN117707630A (zh) 分区切换过程中的中断处理方法、设备及存储介质
CN117290164B (zh) 重启时的信息记录方法、电子设备及可读存储介质
CN117707629A (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
GR01 Patent grant
GR01 Patent grant