CN110515671B - 初始化方法、初始化装置、终端设备及可读存储介质 - Google Patents

初始化方法、初始化装置、终端设备及可读存储介质 Download PDF

Info

Publication number
CN110515671B
CN110515671B CN201910828494.5A CN201910828494A CN110515671B CN 110515671 B CN110515671 B CN 110515671B CN 201910828494 A CN201910828494 A CN 201910828494A CN 110515671 B CN110515671 B CN 110515671B
Authority
CN
China
Prior art keywords
partition
recovery subsystem
attribute
read
initializing
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.)
Active
Application number
CN201910828494.5A
Other languages
English (en)
Other versions
CN110515671A (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.)
Oppo Chongqing Intelligent Technology Co Ltd
Original Assignee
Oppo Chongqing Intelligent Technology 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 Oppo Chongqing Intelligent Technology Co Ltd filed Critical Oppo Chongqing Intelligent Technology Co Ltd
Priority to CN201910828494.5A priority Critical patent/CN110515671B/zh
Publication of CN110515671A publication Critical patent/CN110515671A/zh
Application granted granted Critical
Publication of CN110515671B publication Critical patent/CN110515671B/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供了一种recovery子系统的初始化方法、初始化装置、终端设备及存储介质。所述方法包括:当所述终端设备的操作系统启动时,执行步骤A‑B:A、读取预设的各个分区分别保存的属性文件,其中,所读取的各个属性文件用于对所述操作系统下的recovery子系统进行初始化;B、将读取的所述各个属性文件保存至目标分区;当进入所述操作系统下的recovery子系统时,执行步骤C:C、从所述目标分区读取所述各个属性文件,并根据所述各个属性文件,对所述recovery子系统进行初始化。本申请可以在一定程度上解决OTA升级失败的技术问题。

Description

初始化方法、初始化装置、终端设备及可读存储介质
技术领域
本申请属于操作系统技术领域,尤其涉及一种recovery子系统的初始化方法、初始化装置、终端设备及计算机可读存储介质。
背景技术
当对终端设备进行空中下载技术(Over-the-Air,OTA)升级时,需要启动终端设备的恢复recovery子系统时,且在启动该子系统后,需要利用多个分区分别对应的属性文件对recovery子系统进行初始化。
目前对recovery子系统进行初始化时,所用到的属性文件是在终端设备出厂之前就固定存储至该终端设备中的,并不会随着分区的属性文件的变化而变化,这会使得如果后续用户在使用时单纯对某个分区的属性文件进行更新后,初始化recovery子系统用到的属性文件与实际的属性文件不同,从而可能导致OTA升级失败。
发明内容
有鉴于此,本申请实施例提供了一种recovery子系统的初始化方法、recovery子系统的初始化装置、终端设备及计算机可读存储介质,可以解决初始化recovery子系统时用到的属性文件与实际的属性文件不同,从而导致OTA升级失败的技术问题。
本申请实施例的第一方面提供了一种recovery子系统的初始化方法,应用于终端设备,包括:
当上述终端设备的操作系统启动时,执行步骤A-B:
A、读取预设的各个分区分别保存的属性文件,其中,所读取的各个属性文件用于对上述操作系统下的recovery子系统进行初始化;
B、将读取的上述各个属性文件保存至目标分区;
当进入上述操作系统下的recovery子系统时,执行步骤C:
C、从上述目标分区读取上述各个属性文件,并根据上述各个属性文件,对上述recovery子系统进行初始化。
本申请实施例的第二方面提供了一种recovery子系统的初始化装置,包括:
操作系统启动触发模块,用于当上述终端设备的操作系统启动时,触发上述终端设备执行步骤A-B:
A、读取预设的各个分区分别保存的属性文件,其中,所读取的各个属性文件用于对上述操作系统下的recovery子系统进行初始化;
B、将读取的上述各个属性文件保存至目标分区;
恢复子系统触发模块,用于当进入上述操作系统下的recovery子系统时,触发上述终端设备执行步骤C:
C、从上述目标分区读取上述各个属性文件,并根据上述各个属性文件,对上述recovery子系统进行初始化。
本申请实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面所述方法的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上述第一方面所述方法的步骤。
本申请实施例的第五方面提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被一个或多个处理器执行时实现如上述第一方面所述方法的步骤。
由上可见,本申请提供了一种recovery子系统的初始化方法,首先,当终端设备的操作系统启动(比如,开机)时,读取预设的各个分区分别保存的属性文件(对于Andriod操作系统来说,上述预设的各个分区可以为systen、vendor、product以及odm等分区),并将读取的各个属性文件存储至目标分区。本领域技术人员不难理解,在终端设备的操作系统首次启动后,该目标分区中所保存的上述各个属性文件在该终端设备的操作系统再次被启动时,可以进行更新;当进入操作系统的recovery子系统时,终端设备会从上述目标分区上读取上述各个属性文件,并基于各个属性文件对recovery子系统进行初始化。
显然,本申请所提供的技术方案中,对recovery子系统进行初始化所用到的分区的属性文件是在终端设备操作系统启动后才获得的,并不是传统的技术方案中,是在该终端设备出厂之前就固化在该终端设备中的,因此,本申请所提供的技术方案中,可以在一定程度上避免初始化所用到的属性文件与实际属性文件不同的情况,因此可以在一定程度上解决OTA升级失败的技术问题。综上所述,本申请提供的技术方案可以解决初始化recovery子系统时用到的属性文件与实际的属性文件不同,从而导致OTA升级失败的技术问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例。
图1是本申请实施例一提供的一种recovery子系统的初始化方法流程示意图;
图2是本申请实施例二提供的一种recovery子系统的初始化装置结构示意图;
图3是本申请实施例三提供的终端设备的结构示意图;
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
本申请实施例提供的方法可以适用于终端设备,示例性地,该终端设备包括但不限于:智能手机、平板电脑、笔记本、桌上型计算机、云端服务器等。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
实施例一
下面对本申请实施例一提供的recovery子系统的初始化方法进行描述,该初始化方法应用于终端设备,请参阅附图1,该方法包括分别为在操作系统阶段运行的步骤S101以及在recovery子系统下运行的步骤S102(通过后续描述,本领域技术人员应该能够理解,该步骤S101和步骤S102是分别运行在不同的系统下的两个独立的步骤)。
在步骤S101中:当上述终端设备的操作系统启动时,执行步骤A-B:
在步骤A中,读取预设的各个分区分别保存的属性文件,其中,所读取的各个属性文件用于对上述操作系统下的recovery子系统进行初始化;
在步骤B中,将读取的上述各个属性文件保存至目标分区;
在本申请实施例中,上述操作系统可以为IOS操作系统、Andriod操作系统或者,也可以为Windows系统,本申请对此不做具体限定。终端设备启动操作系统后,读取预设的各个分区分别保存的属性文件。本领域的技术人员不难理解,用户对终端设备进行开机后,一般情况下,终端设备都是进入预先安装在终端设备中的操作系统,比如,安卓手机开机后,进入Andriod操作系统,苹果手机开机后,进入IOS操作系统,电脑开机后进入Windows系统。而对Andriod操作系统来说,预设的各个分区可以是systen、vendor、product以及odm等分区,上述各个分区中的属性文件,在终端设备的操作系统再次被启动时,会再次读取,并将再次读取的各个属性文件保存至目标分区。对于Andriod操作系统来说,上述属性文件可以为后缀为prop的文件。
此外,上述步骤A的逻辑可以写入第二初始化init进程中,以使得终端设备调用该第二init进程来实现上述步骤A的执行逻辑,即:通过运行该第二init进程读取预设的各个分区分别保存的属性文件,并且可以是在该第二init进程的post-fs-data阶段,读取上述各个分区分别保存的属性文件。该第二init进程是指终端设备的操作系统被进入后,该终端设备需执行的初始化进程。
在执行完上述步骤A后,终端设备将读取到的各个属性文件保存到目标分区,该目标分区可以是本领域技术人员常用的缓存分区cache分区,也可以是其他可以储存属性文件的分区(可以是终端设备中已有的分区,也可以是该终端设备新创建的一个分区),本申请在此不做具体限定。此外,终端设备可将读取到的各个属性文件都打包生成一个文件,比如可以将打包生成的该文件命名为runtime.prop,再把该runtime.prop文件保存至目标分区,或者也可以直接将读取到的各个属性文件直接保存至目标分区,本申请在此不做具体限定。
在步骤S102中:当进入上述操作系统下的recovery子系统时,执行步骤C:
在步骤C中,从上述目标分区读取上述各个属性文件,并根据上述各个属性文件,对该recovery子系统进行初始化;
在本实施例中,可以通过组合键的方式或者在终端设备的“设置”里选择“恢复出厂设置模式”进入recovery子系统,进入recovery子系统后,终端设备读取上述目标分区的各个属性文件,当在上述目标分区保存的是整合后的属性文件(比如,上述runtime.prop文件)时,终端设备读取的该整合后的属性文件。
此外,在本申请实施例中,上述C可以具体为:若从上述目标分区读取到上述各个属性文件,则根据读取的该各个属性文件对上述recovery子系统进行初始化;
相应地,在进入上述操作系统下的recovery子系统时,还执行下述步骤D:
在步骤D中,若从上述目标分区未读取到上述各个属性文件,则挂载预设的上述各个分区,并读取上述各个分区分别保存的属性文件,其中,所读取的各个属性文件用于对上述recovery子系统进行初始化;
根据读取的上述各个属性文件实现对上述recovery子系统的初始化;
也即是,当终端设备从未启动过操作系统或者刚做过恢复出厂设置时,此时进入recovery子系统,上述目标分区中并没有保存有用于初始化recovery子系统的属性文件,因此,此时,在recovery子系统下,执行上述步骤D,以获取用于初始化recovery子系统的属性文件。
由此可见,上述步骤S102可以具体为:在进入recovery子系统时,先执行从目标分区读取属性文件的操作,若读取到,则基于读取到的属性文件对recovery子系统进行初始化,若未读取到,则挂载预设的各个分区,从各个分区读取用于初始化的属性问。此外,在本申请实施例中,也可以将“从目标分区读取属性文件”以及“挂载预设的各个分区,从各个分区读取属性文件”的步骤进行调换,也即是:
当进入上述操作系统下的recovery子系统时,先挂载预设的上述各个分区,若成功挂载上述各个分区,则读取上述各个分区分别保存的用于对所述recovery子系统进行初始化的属性文件,再根据读取的上述各个属性文件实现对上述recovery子系统的初始化;若未成功挂载上述各个分区,则从上述目标分区读取上述各个属性文件,并根据上述各个属性文件,对上述recovery子系统进行初始化。
若挂载预设的各个分区失败,则采用从目标分区读取上述属性文件,再根据上述属性文件对上述recovery子系统进行初始化。在recovery子系统下,“先通过从目标分区读取属性文件”的技术方案,与“先挂载预设的各个分区读取属性文件”的技术方案,均能在一定程度上,保证初始化recovery子系统的属性文件与实际中各个分区的属性文件相一致,均能够在一定程度上保证OTA升级成功。另外,本领域技术人员应该能够理解,进入recovery子系统后,“先从目标分区读取属性文件”的技术方案相比于“先对各个分区进行挂载”的技术方案,能够更快速地获取用于初始化的属性文件。此外,上述步骤D的执行逻辑,可以写入recovery子系统启动后所运行的初始化进程(后续称该进程为第一init进程)中,通过调用该第一init进程执行上述步骤D。
通常情况下,在recovery子系统中读取用于初始化的属性文件之后,还需要对属性文件进行修改更新,要能对属性文件进行修改更新,需要在上述第一init进程的第二阶段second stage之前,读取到上述用于初始化的属性文件。对于Andriod系统来说,需要获取system、vendor、product、odem等分区的属性文件,而由于second stage是init进程中较早的一个阶段,在该阶段之前,recovery子系统默认生成的设备(分区对应的设备)中,只有system、vendor、vbmeta、dtbo、recovery这五个设备,是没有生成product以及odem设备的,因此,也就无法对product以及odem分区进行挂载,因此,在本申请实施例中,若需挂载的各个分区中包含有特殊分区时(特殊分区即是recovery子系统默认在second stage之前无法读取属性文件的分区),上述步骤D中的“挂载预设的上述各个分区,并读取上述各个分区分别保存的属性文件”具体为:
调用所述第一初始化init进程,通过运行所述第一初始化init进程实现:
在所述第一初始化init进程的第一阶段first stage,根据所述各个特殊分区的设备号强制创建设备节点,以在所述第一初始化init进程的second stage阶段之前能够读取所述各个特殊分区分别保存的属性文件;
在所述第一初始化init进程的所述second stage之前挂载预设的所述各个分区,并读取所述各个分区分别保存的属性文件。
也即是通过在第一init进程的first stage强制创建设备节点,使得在secondstage之前,能够实现预设的各个分区的挂载以及各个分区中属性文件的读取。
其中,在上述第一初始化init进程的第一阶段first stage,根据上述各个特殊分区的设备号强制创建设备节点。上述设备号指上述各个特殊分区的设备出厂时的编号,根据该编号可以识别分区对应的设备,在recovery子系统中,上述第一初始化init进程通过文件的形式访问上述设备,因此,需要根据上述各个特殊分区的设备号强制创建可识别上述设备的文件,该文件就是上述设备节点,设备节点指包括了上述设备的位置和信息,一个设备节点就是一个文件,因此,根据上述各个特殊分区的设备号强制创建设备节点,以便在上述第一初始化init进程的second stage阶段之前能够挂载各个特殊分区及读取上述各个特殊分区分别保存的属性文件,以及能在上述第一初始化init进程的上述second stage之前挂载目标分区和从目标分区读取上述各个属性文件。
通常情况下,终端设备在进入recovery子系统时,需要运行recovery.img来实现初始化,传统的recovery.img是包含有终端设备中预设分区的属性文件(该属性文件用于初始化recovery子系统)的,因此,导致传统的recovery.img是与终端设备强关联的镜像文件,没有办法在多个终端设备中共用,这会导致终端设备开发商需要针对每一类终端设备生成对应的recovery.img,无疑增大了项目开发成本以及时间。
本申请实施例一中,用于初始化recovery子系统的属性文件是在终端设备出厂后使用的过程中获取的,因此,在终端设备出厂前编译生成的recovery.img完全可以不包含用于初始化的各个属性文件,也即是,recovery.img可以只体现属性文件的获取逻辑,从而使得终端设备在运行该recovery.img时,可以实现属性文件的获取,会使得recovery.img与终端设备的关联程度不大,因此,可以在不同类的终端设备中公用该recovery.img,相比于传统的实现方式,减少了项目开发时间以及成本。
由上可见,本申请的实施例一所提供的技术方案中,对recovery子系统进初始化所用到的分区的属性文件是在终端设备操作系统启动后才获得的,并不是传统技术方案中,是在终端设备出厂前就固化在该终端设备的,因此,本申请所提供的技术方案中,可以在一定程度上避免初始化所用到的属性文件与实际用到的属性文件不同的情况。因此可以在一定程度上解决OTA升级失败的技术问题。
实施例二
本申请实施例二提供了一种recovery子系统的初始化装置,应用于终端设备。为了便于说明,仅示出与本申请相关的部分,如图2所示,该初始化装置200包括:
操作系统启动触发模块201,用于当上述终端设备的操作系统启动时,触发上述终端设备执行步骤A-B:
A、读取预设的各个分区分别保存的属性文件,其中,所读取的各个属性文件用于对上述操作系统下的recovery子系统进行初始化;
B、将读取的上述各个属性文件保存至目标分区;
恢复子系统触发模块202,用于当进入上述操作系统下的recovery子系统时,触发上述终端设备执行步骤C:
C、从上述目标分区读取上述各个属性文件,并根据上述各个属性文件,对上述recovery子系统进行初始化。
可选地,所述恢复子系统触发模块202用于当进入所述操作系统下的recovery子系统时,触发所述终端设备具体执行:
若从所述目标分区读取到所述各个属性文件,则根据读取的所述各个属性文件对所述recovery子系统进行初始化;
相应地,上述初始化装置200还包括:
第一挂载触发模块203,用于当进入上述操作系统下的recovery子系统时,触发上述终端设备执行步骤D:
D、若从上述目标分区未读取到上述各个属性文件,则:
挂载预设的上述各个分区,并读取上述各个分区分别保存的属性文件,其中,所读取的各个属性文件用于对上述recovery子系统进行初始化;
根据读取的上述各个属性文件实现对上述recovery子系统的初始化。
可选地,上述恢复子系统触发模块202具体用于:当进入所述操作系统下的recovery子系统时,通过运行recovery.img文件执行所述步骤C;
可选地,上述第一挂载触发模块203具体用于:当进入所述操作系统下的recovery子系统时,通过运行所述recovery.img文件执行所述步骤D。
可选地,在recovery子系统下,通过运行第一初始化init进程实现对所述各个分区的挂载以及对每个分区中属性文件的读取,并在所述第一初始化init进程的第二阶段second stage之前读取各个分区分别保存的属性文件;且,所述各个分区包括特殊分区,其中,所述特殊分区为recovery子系统默认无法在所述second stage之前读取属性文件的分区;
相应地,上述第一挂载触发模块203具体通过如下步骤实现各个分区属性文件的获取:
调用所述第一初始化init进程,通过运行所述第一初始化init进程实现:
在所述第一初始化init进程的第一阶段first stage,根据所述各个特殊分区的设备号强制创建设备节点,以在所述第一初始化init进程的second stage阶段之前能够读取所述各个特殊分区分别保存的属性文件;
在所述第一初始化init进程的所述second stage之前挂载预设的所述各个分区,并读取所述各个分区分别保存的属性文件。
可选地,上述初始化装置200还包括:
第二挂载触发模块204,用于当进入所述操作系统下的recovery子系统时,还执行如下步骤E:
E、挂载预设的所述各个分区;
若成功挂载所述各个分区,则读取所述各个分区分别保存的属性文件,其中,所读取的各个属性文件用于对所述recovery子系统进行初始化;
根据读取的所述各个属性文件实现对所述recovery子系统的初始化;
可选地,上述操作系统启动触发模块201具体通过如下步骤读取预设的各个分区分别保存的属性文件:
调用第二初始化init进程,通过运行所述第二初始化init进程实现:
在所述第二初始化init进程的post-fs-data阶段,读取所述各个分区分别保存的属性文件。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例一以及方法实施例二基于同一构思,其具体功能及带来的技术效果,具体可参见相应方法实施例部分,此处不再赘述。
实施例三
图3是本申请实施例三提供的终端设备的示意图。如图3所示,该实施例的终端设备300包括:处理器301、存储器302以及存储在上述存储器302中并可在上述处理器301上运行的计算机程序303。上述处理器301执行上述计算机程序303时实现上述各个方法实施例中的步骤。或者,上述处理器301执行上述计算机程序303时实现上述各装置实施例中各模块/单元的功能。
示例性的,上述计算机程序303可以被分割成一个或多个模块/单元,上述一个或者多个模块/单元被存储在上述存储器302中,并由上述处理器301执行,以完成本申请。上述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述上述计算机程序303在上述终端设备300中的执行过程。例如,上述计算机程序303可以被分割成操作系统启动触发模块以及恢复子系统触发模块,各模块具体功能如下:
当上述终端设备的操作系统启动时,执行步骤A-B:
在步骤A中,读取预设的各个分区分别保存的属性文件,其中,所读取的各个属性文件用于对上述操作系统下的recovery子系统进行初始化;
在步骤B中,将读取的上述各个属性文件保存至目标分区;
当进入上述操作系统下的recovery子系统时,执行步骤C:
在步骤C中,从上述目标分区读取上述各个属性文件,并根据上述各个属性文件,对该recovery子系统进行初始化;
上述终端设备可包括,但不仅限于,处理器301、存储器302。本领域技术人员可以理解,图3仅仅是终端设备300的示例,并不构成对终端设备300的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如上述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器301可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述存储器302可以是上述终端设备300的内部存储单元,例如终端设备300的硬盘或内存。上述存储器302也可以是上述终端设备300的外部存储设备,例如上述终端设备300上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,上述存储器302还可以既包括上述终端设备300的内部存储单元也包括外部存储设备。上述存储器302用于存储上述计算机程序以及上述终端设备所需的其它程序和数据。上述存储器302还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述各个方法实施例中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上上述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (7)

1.一种recovery子系统的初始化方法,应用于终端设备,其特征在于,包括:
当所述终端设备的操作系统再次启动时,执行步骤A-B:
A、读取预设的各个分区分别保存的属性文件,其中,所读取的各个属性文件用于对所述操作系统下的recovery子系统进行初始化;
B、将读取的所述各个属性文件保存至目标分区;
当进入所述操作系统下的recovery子系统时,通过运行recovery.img文件执行步骤C:
C、从所述目标分区读取所述各个属性文件,并根据所述各个属性文件,对所述recovery子系统进行初始化;
所述步骤C包括:
若从所述目标分区读取到所述各个属性文件,则根据读取的所述各个属性文件对所述recovery子系统进行初始化;
相应地,当进入所述操作系统下的recovery子系统时,还通过运行所述recovery.img文件执行步骤D:
D、若从所述目标分区未读取到所述各个属性文件,则:
挂载预设的所述各个分区,并读取所述各个分区分别保存的属性文件,其中,所读取的各个属性文件用于对所述recovery子系统进行初始化;
根据读取的所述各个属性文件实现对所述recovery子系统的初始化;
其中,所述recovery.img文件只体现属性文件的获取逻辑。
2.如权利要求1所述的初始化方法,其特征在于,在recovery子系统下,通过运行第一初始化init进程实现对所述各个分区的挂载以及对每个分区中属性文件的读取,并在所述第一初始化init进程的第二阶段second stage之前读取各个分区分别保存的属性文件;且,所述各个分区包括特殊分区,其中,所述特殊分区为recovery子系统默认无法在所述second stage之前读取属性文件的分区;
相应地,所述挂载预设的所述各个分区,并读取所述各个分区分别保存的属性文件,包括:
调用所述第一初始化init进程,通过运行所述第一初始化init进程实现:
在所述第一初始化init进程的第一阶段first stage,根据所述特殊分区的设备号强制创建设备节点,以在所述第一初始化init进程的second stage阶段之前能够读取所述特殊分区分别保存的属性文件;
在所述第一初始化init进程的所述second stage之前挂载预设的所述各个分区,并读取所述各个分区分别保存的属性文件。
3.如权利要求1所述的初始化方法,其特征在于,当进入所述操作系统下的recovery子系统时,还执行如下步骤E:
E、挂载预设的所述各个分区;
若成功挂载所述各个分区,则读取所述各个分区分别保存的属性文件,其中,所读取的各个属性文件用于对所述recovery子系统进行初始化;
根据读取的所述各个属性文件实现对所述recovery子系统的初始化;
相应地,所述步骤C包括:
若未成功挂载所述各个分区,则从所述目标分区读取所述各个属性文件,并根据所述各个属性文件,对所述recovery子系统进行初始化。
4.如权利要求1至3中任一项所述的初始化方法,其特征在于,所述读取预设的各个分区分别保存的属性文件,包括:
调用第二初始化init进程,通过运行所述第二初始化init进程实现:
在所述第二初始化init进程的post-fs-data阶段,读取所述各个分区分别保存的属性文件。
5.一种recovery子系统的初始化装置,应用于终端设备,其特征在于,包括:
操作系统启动触发模块,用于当所述终端设备的操作系统再次启动时,触发所述终端设备执行步骤A-B:
A、读取预设的各个分区分别保存的属性文件,其中,所读取的各个属性文件用于对所述操作系统下的recovery子系统进行初始化;
B、将读取的所述各个属性文件保存至目标分区;
恢复子系统触发模块,用于当进入所述操作系统下的recovery子系统时,触发所述终端设备通过运行recovery.img文件执行步骤C:
C、从所述目标分区读取所述各个属性文件,并根据所述各个属性文件,对所述recovery子系统进行初始化;
所述恢复子系统触发模块用于当进入所述操作系统下的recovery子系统时,触发所述终端设备具体执行:
若从所述目标分区读取到所述各个属性文件,则根据读取的所述各个属性文件对所述recovery子系统进行初始化;
相应地,当进入所述操作系统下的recovery子系统时,还通过运行所述recovery.img文件执行步骤D:
D、若从所述目标分区未读取到所述各个属性文件,则:
挂载预设的所述各个分区,并读取所述各个分区分别保存的属性文件,其中,所读取的各个属性文件用于对所述recovery子系统进行初始化;
根据读取的所述各个属性文件实现对所述recovery子系统的初始化;
其中,所述recovery.img文件只体现属性文件的获取逻辑。
6.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述初始化方法的步骤。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述初始化方法的步骤。
CN201910828494.5A 2019-09-03 2019-09-03 初始化方法、初始化装置、终端设备及可读存储介质 Active CN110515671B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910828494.5A CN110515671B (zh) 2019-09-03 2019-09-03 初始化方法、初始化装置、终端设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910828494.5A CN110515671B (zh) 2019-09-03 2019-09-03 初始化方法、初始化装置、终端设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN110515671A CN110515671A (zh) 2019-11-29
CN110515671B true CN110515671B (zh) 2023-01-31

Family

ID=68630545

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910828494.5A Active CN110515671B (zh) 2019-09-03 2019-09-03 初始化方法、初始化装置、终端设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN110515671B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111722880B (zh) * 2020-05-11 2024-02-09 深圳市共进电子股份有限公司 一种设备生产方法、装置、终端设备及介质
CN113805956B (zh) * 2021-06-15 2022-11-11 荣耀终端有限公司 操作系统的配置方法、设备及存储介质
CN113852717B (zh) * 2021-09-27 2024-03-19 努比亚技术有限公司 一种壁纸模块位置迁移方法、设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014105941A1 (en) * 2012-12-31 2014-07-03 Nielsen Audio, Inc. Apparatus, system and methods for portable device tracking using temporary privileged access
CN107678718A (zh) * 2017-09-19 2018-02-09 惠州Tcl移动通信有限公司 不同分辨率显示屏的兼容处理方法、移动终端及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014105941A1 (en) * 2012-12-31 2014-07-03 Nielsen Audio, Inc. Apparatus, system and methods for portable device tracking using temporary privileged access
CN107678718A (zh) * 2017-09-19 2018-02-09 惠州Tcl移动通信有限公司 不同分辨率显示屏的兼容处理方法、移动终端及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Android 8.0学习(5)---模块化内核;zhangbijun1230;《https://blog.csdn.net/zhangbijun1230/article/details/79956646》;20180416;第4至9页 *
Android 系统启动流程(一) init进程启动过程;Gee丶;《https://blog.csdn.net/Kelly_ge/article/details/96123315》;20190716;第1至8页 *
Gee丶.Android 系统启动流程(一) init进程启动过程.《https://blog.csdn.net/Kelly_ge/article/details/96123315》.2019,第1至8页. *
岁月斑驳7;岁月斑驳7;《https://blog.csdn.net/qq_19923217/article/details/81240302》;20180727;全文 *

Also Published As

Publication number Publication date
CN110515671A (zh) 2019-11-29

Similar Documents

Publication Publication Date Title
CN110515671B (zh) 初始化方法、初始化装置、终端设备及可读存储介质
CN107608693B (zh) 版本升级方法及终端设备
CN110825563B (zh) 系统恢复方法、装置以及电子设备
WO2020001112A1 (zh) 一种支持多类型设备的平台的应用方法、移动终端
CN103412769A (zh) 外接卡参数配置方法、设备以及系统
US20200210203A1 (en) Systems and methods for handling firmware driver dependencies in host operating systems while applying updates from bootable image file
CN110162429B (zh) 系统修复方法、服务器及存储介质
CN109828774B (zh) 一种服务器系统及其启动方法
CN104298913A (zh) 一种通用的智能终端安全启动方法
CN111736906A (zh) 一种基于bios的启动项同步存储方法、系统、终端及存储介质
CN110119623A (zh) 一种利用tpcm实现固件主动度量的可信主板实现方法
CN108762828B (zh) 一种dsp多核阵列二级启动方法和装置
CN110134456B (zh) 用于管理操作系统的方法、装置、设备和存储介质
CN116700768B (zh) 一种应用的处理方法及相关装置
CN113272785B (zh) 一种挂载文件系统的方法、终端设备及存储介质
US11340882B2 (en) Systems and methods for enforcing update policies while applying updates from bootable image file
CN115827522A (zh) Bios的设置方法、bios芯片和电子设备
CN115291951A (zh) Uefi启动方法、装置、电子设备以及存储介质
CN115658152A (zh) 固件升级方法、固件、电子设备和计算机可读存储介质
CN112912855A (zh) 开机检测方法、开机检测装置及移动终端
CN110119625A (zh) 一种可信计算方法
CN115185745A (zh) 数据处理方法、系统、电子设备及计算机可读存储介质
CN111258617B (zh) 一种电子设备
CN111813600B (zh) 一种控制器的恢复方法、装置、终端和介质
CN114968297A (zh) Ota升级方法、电子设备及芯片系统

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