CN114489814B - 一种终端设备的开机方法及终端设备 - Google Patents
一种终端设备的开机方法及终端设备 Download PDFInfo
- Publication number
- CN114489814B CN114489814B CN202110962381.1A CN202110962381A CN114489814B CN 114489814 B CN114489814 B CN 114489814B CN 202110962381 A CN202110962381 A CN 202110962381A CN 114489814 B CN114489814 B CN 114489814B
- Authority
- CN
- China
- Prior art keywords
- card slot
- partition
- terminal device
- operating system
- boot
- 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
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
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种终端设备的开机方法及终端设备,涉及终端技术领域。该方法可以在终端设备无法从其中一个卡槽成功启动时,自动切换到另一个卡槽,并尝试从另一个卡槽启动,降低终端设备无法启动的风险,减少用户将终端设备送到维修和保修中心进行维修的情形,提升用户体验。该方法应用于包括处于活动状态的第一卡槽及处于非活动状态的第二卡槽,第一卡槽及第二卡槽部署有相同的操作系统。该方法包括:响应于接收到开机指令,终端设备从第一卡槽启动,响应于确定终端设备从第一卡槽启动失败,终端设备将第二卡槽设置为活动状态,并从第二卡槽启动。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种终端设备的开机方法及终端设备。
背景技术
终端设备的软件操作系统是保证终端设备能够正常运行的关键,软件操作系统的系统数据是使终端设备可以正常启动并运行的最基本的数据。目前,在用户使用终端设备的过程中,可能会由于用户的不当操作(例如,刷机操作)或者存储器异常使得系统数据出现异常,从而导致终端设备无法开机正常使用。
通常情况下,在终端设备无法开机时,用户是无法自行修复终端设备的。用户需要把终端设备拿到生产厂商或者售后维修点,由专业维修人员借助其他设备来修复终端设备。这种修复终端设备的方式耗时耗力,极大地降低了用户的满意度和体验。
发明内容
本申请提供一种终端设备的开机方法及终端设备,可以减小手机无法开机导致手机不可操作的风险。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种终端设备的开机方法,应用于终端设备,终端设备包括处于活动状态的第一卡槽及处于非活动状态的第二卡槽,第一卡槽及第二卡槽部署有相同的操作系统,方法包括:响应于接收到开机指令,终端设备从第一卡槽启动;响应于确定终端设备从第一卡槽启动失败,终端设备将第二卡槽设置为活动状态,并从第二卡槽启动。
可见,终端设备可以在其可以正常运行时同步第一卡槽上的操作系统与第二卡槽上的操作系统,使得第一卡槽与第二卡槽上部署的操作系统相同。从而,在由于第一卡槽上的部分数据或程序异常导致终端设备无法从第一卡槽正常启动时,终端设备可以切换至操作系统还正常的第二卡槽,使得终端设备可以从第二卡槽正常开机。可以降低终端设备无法启动的风险,减少用户将终端设备送到维修和保修中心进行维修的情形,提升用户体验。
在一种可选的实施方式中,方法还包括:响应于确定终端设备从第一卡槽启动失败,终端设备将第一卡槽设置为非活动状态。由于终端设备只会从处于活动状态的卡槽启动,因此为了不干扰手机的启动过程,可以将第一卡槽设置为非活动状态。
在一种可选的实施方式中,在响应于接收到开机指令,终端设备从第一卡槽启动之前,方法还包括:获取数据更新包;其中,数据更新包用于更新操作系统;基于数据更新包更新第二卡槽上的操作系统;响应于确定第二卡槽上的操作系统完成更新,终端设备将第二卡槽设置为活动状态并将第一卡槽设置为非活动状态;响应于接收到重启指令,终端设备从第二卡槽重新启动;若终端设备从第二卡槽启动失败,终端设备将第一卡槽设置为活动状态,并从第一卡槽重新启动;响应于确定终端设备从第一卡槽启动成功,终端设备将第一卡槽上的操作系统同步至第二卡槽。
其中,在终端设备进行更新时,更新的是用户暂时未使用的第二卡槽上的操作系统,如此,既不会影响用户在手机进行系统更新期间的正常使用,又能实现系统更新,提升了用户在手机进行系统更新期间的使用体验。此外,在终端设备从第二卡槽启动失败时,终端设备可以重新切换至第一卡槽,并将第一卡槽上的操作系统同步至第二卡槽,以使得进行数据同步操作后的第二卡槽上的操作系统正常。如此,可以确保在第一卡槽发生故障时,手机还可以从第二卡槽启动。
在一种可选的实施方式中,方法还包括:若终端设备从第二卡槽启动成功,终端设备将第二卡槽上的操作系统同步至第一卡槽。可以理解地,手机从第二卡槽启动成功,可以认为更新后的第二操作系统可以正常启动。此时将第二卡槽的操作系统同步至第一卡槽,可以使第一卡槽上的操作系统也可以被正常启动。从而,在处于活动状态的卡槽(第一卡槽或第二卡槽)出现故障时,手机还可以从另一个卡槽成功启动。
在一种可选的实施方式中,终端设备还包括动态分区,方法还包括:若终端设备从第二卡槽启动成功,终端设备基于数据更新包更新动态分区。可以理解地,手机从第二卡槽启动成功,则可以认为更新后的操作系统可以正常启动。此时基于数据更新包更新动态分区,可以实现对系统应用的更新,从而完成整个升级流程。
第二方面,本申请还提供了一种终端设备,包括:无线通信模块、存储器和一个或多个处理器;无线通信模块、存储器与处理器耦合;其中,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令;当计算机指令被处理器执行时,使得终端设备执行如第一方面中任一项的终端设备的开机方法。
第三方面,本申请还提供了一种计算机可读存储介质,包括计算机指令;
当计算机指令在终端设备上运行时,使得终端设备执行如第一方面中任一项的终端设备的开机方法。
第四方面,本申请提供了一种芯片系统,该芯片系统包括一个或多个接口电路和一个或多个处理器。该接口电路和处理器通过线路互联。该芯片系统可以应用于包括通信模块和存储器的终端设备。该接口电路可以读取终端设备中存储器中存储的指令,并将该指令发送给处理器。当指令被处理器执行时,可使得终端设备执行如第一方面中任一项的方法。
第五方面,本申请提供一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行如第一方面中任一项所述的终端设备的开机方法。
可以理解地,上述提供的第二方面所述的终端设备、第三方面所述的计算机存储介质、第四方面所述的芯片系统,以及第五方面所述的计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的手机的结构示意图;
图2为本申请实施例提供的手机的一种存储结构示意图;
图3为本申请实施例提供的手机的一种存储结构示意图;
图4为本申请实施例提供的一种终端设备的开机方法的部分流程图;
图5为本申请实施例提供的界面图;
图6为本申请实施例提供的界面图;
图7A为本申请实施例提供的界面图;
图7B为本申请实施例提供的界面图;
图7C为本申请实施例提供的界面图;
图8为本申请实施例提供的一种终端设备的开机方法的流程图;
图9为本申请实施例提供的芯片系统的结构示意图。
具体实施方式
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
下面将结合附图对本实施例的实施方式进行详细描述。
在用户使用终端设备的过程中,终端设备可能会因为操作系统的程序或数据错误而无法开机运行。示例性的,用户的恶意刷机操作(即给终端重装系统)可能会导致引导分区损坏,从而使得终端设备无法开机。又例如,终端设备的存储器件异常或者双倍速率同步动态随机存储器(double data rate synchronous dynamic random access memory,DDRSDRAM)异常引起跳变,导致终端设备由于无法正常加载引导分区而无法开机。
在这种情况下,通常需要专业维修人员进行刷机操作来修复终端设备。但这种方式需要用户自行送修,较为耗时,且用户自己通常难以自行完成,给用户带来了较大不变。
有鉴于此,本申请实施例提供了一种终端设备的开机方法,终端设备包括处于活动状态的第一卡槽及处于非活动状态的第二卡槽,第一卡槽及第二卡槽上均部署有终端设备的操作系统。当终端设备无法从第一卡槽启动时,可以将第二卡槽设置为活动状态,并从第二卡槽启动。可见,即使第一卡槽上运行的操作系统出现问题,终端设备还可以切换至第二卡槽上的操作系统运行,从而降低终端设备无法启动的可能性,避免手机变砖(即避免手机无法开机导致的不可操作的问题)。同时,这也意味着用户需要将终端设备送到维修和保修中心进行更换和刷机的情况将会减少,提升用户体验。
本申请实施例中以终端设备是手机为例,对本申请实施例提供的终端设备的结构进行举例说明。如图1所示,手机可以包括:处理器210,外部存储器接口220,内部存储器221,通用串行总线(universal serial bus,USB)接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块250,无线通信模块260,音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及SIM卡接口295等。
其中,上述传感器模块280可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器和骨传导传感器等传感器。
可以理解的是,本实施例示意的结构并不构成对手机的具体限定。在另一些实施例中,手机可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是手机的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对手机的结构限定。在另一些实施例中,手机也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块240用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。充电管理模块240为电池242充电的同时,还可以通过电源管理模块241为移动终端供电。
电源管理模块241用于连接电池242,充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210,内部存储器221,外部存储器,显示屏294,摄像头293,和无线通信模块260等供电。在一些实施例中,电源管理模块241和充电管理模块240也可以设置于同一个器件中。
手机的无线通信功能可以通过天线1,天线2,移动通信模块250,无线通信模块260,调制解调处理器以及基带处理器等实现。在一些实施例中,手机的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得手机可以通过无线通信技术与网络以及其他设备通信。
天线1和天线2用于发射和接收电磁波信号。手机中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块250可以提供应用在手机上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块250可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块250可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。
移动通信模块250还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块250的至少部分功能模块可以被设置于处理器210中。在一些实施例中,移动通信模块250的至少部分功能模块可以与处理器210的至少部分模块被设置在同一个器件中。
无线通信模块260可以提供应用在手机上的包括WLAN(如(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellitesystem,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near fieldcommunication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
手机通过GPU,显示屏294,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏294和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏294用于显示图像,视频等。该显示屏294包括显示面板。
手机可以通过ISP,摄像头293,视频编解码器,GPU,显示屏294以及应用处理器等实现拍摄功能。ISP用于处理摄像头293反馈的数据。摄像头293用于捕获静态图像或视频。在一些实施例中,手机可以包括1个或N个摄像头293,N为大于1的正整数。
外部存储器接口220可以用于连接外部存储卡,例如Micro SD卡,实现扩展手机的存储能力。外部存储卡通过外部存储器接口220与处理器210通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器210通过运行存储在内部存储器221的指令,从而执行手机的各种功能应用以及数据处理。例如,在本申请实施例中,处理器210可以通过执行存储在内部存储器221中的指令,内部存储器221可以包括存储程序区和存储数据区。
其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如拨打电话功能,声音播放功能,图像播放功能等)等。例如,在本申请实施例中,存储程序区至少包括第一卡槽(分区)及第二卡槽(分区),第一卡槽可存储第一操作系统,第二卡槽可存储第二操作系统。存储数据区可存储手机使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
手机可以通过音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
按键290包括开机键,音量键等。按键290可以是机械按键。也可以是触摸式按键。马达291可以产生振动提示。马达291可以用于来电振动提示,也可以用于触摸振动反馈。指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口295用于连接SIM卡。SIM卡可以通过插入SIM卡接口295,或从SIM卡接口295拔出,实现和手机的接触和分离。手机可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口295可以支持Nano SIM卡,Micro SIM卡,SIM卡等。
上述手机中可以部署有两个操作系统(例如,Android)。在一种可能的设计中,如图2所示,手机的内部存储器221可以包括第一卡槽、第二卡槽、第一动态分区及第二动态分区。其中,第一卡槽及第二卡槽分别为两个存储分区,第一卡槽用于存储启动第一操作系统所需的部分系统数据,第二卡槽用于存储启动第二操作系统所需的部分系统数据。其中,第一操作系统及第二操作系统作为管理手机硬件与软件资源的计算机程序,可以处理如管理与配置内存、决定系统资源供需的优先次序、操作网络与管理文件系统等基本事务,并提供让用户与系统交互的操作界面。手机正常运行时,只有一个操作系统(第一操作系统或第二操作系统)可以运行。第一动态分区用于存储第一操作系统的部分应用数据及相关硬件参数,第二动态分区用于存储第二操作系统的部分应用数据及相关硬件参数。
示例性的,在基于图2所示的存储结构中,手机的分区表可以如表1所示。
表1
名称 | 大小 | 地址空间 |
bootloader_a | 256KB | 地址空间1 |
bootloader_b | 256KB | 地址空间2 |
boot_a | 8M | 地址空间3 |
boot_b | 8M | 地址空间4 |
vendor_boot_a | 256KB | 地址空间5 |
vendor_boot_b | 256KB | 地址空间6 |
dtbo_a | 128KB | 地址空间7 |
dtbo_b | 128KB | 地址空间8 |
vbmeta_a | 128KB | 地址空间9 |
vbmeta_b | 128KB | 地址空间10 |
system_a | 256M | 地址空间11 |
system_b | 256M | 地址空间12 |
vendor_a | 8M | 地址空间13 |
vendor_b | 8M | 地址空间14 |
product_a | 2M | 地址空间15 |
product_b | 2M | 地址空间16 |
odm_a | 4M | 地址空间17 |
odm_b | 4M | 地址空间18 |
userdata | 32M | 地址空间19 |
其中,第一卡槽可以包括bootloader_a、boot_a、vendor_boot_a、dtbo_a、vbmeta_a等分区,第二卡槽可以包括bootloader_b、boot_b、vendor_boot_b、dtbo_b、vbmeta_b等分区,第一动态分区可以包括system_a、vendor_a、product_a、odm_a等分区,第二动态分区可以包括system_b、vendor_b、product_b、odm_b等分区。该分区表可以包括每个分区的分区名、大小(即所占用存储空间)及地址空间(即存储空间的地址)等。示例性的,bootloader_a分区的存储空间大小可以为256KB,其地址空间可以为地址空间1(例如,0x00000100~0x000001FF),boot_a分区的存储空间大小可以为8M,其地址空间可以为地址空间3(例如,0x00000A00~0x000049FF)。
其中,bootloader_a分区用于存储第一操作系统的引导加载程序,bootloader_b分区用于存储第二操作系统的引导加载程序。操作系统(第一操作系统、第二操作系统)的引导加载程序可以在对应的操作系统(第一操作系统、第二操作系统)的内核运行之前运行,用于初始化硬件设备、建立内存空间映射图,以便为调用操作系统的内核准备好正确的环境。boot_a分区用于存储第一操作系统的内核及配置信息,boot_b分区用于存储第二操作系统的内核及配置信息。操作系统的内核是基于硬件的第一层软件扩充,可以提供操作系统的最基本的功能,可以负责管理操作系统的进程、内存、设备驱动程序、文件和网络系统。vendor_boot_a分区及vendor_boot_b分区用于存放开机阶段需要加载的驱动程序文件(例如,以“ko”作为后缀的文件)。dtbo_a分区及dtbo_b分区用于存储手机的设备参数,例如内存型号、内存容量大小等。vbmeta_a分区用于存储启动第一卡槽时的验证公钥,vbmeta_b分区用于存储启动第二卡槽时的验证公钥。该验证公钥可以为Android验证引导(androidverify boot,AVB)公钥,用于验证镜像数据的完整性及可靠性。system_a用于存放第一操作系统的系统应用程序和库文件,system_b用于存放第二操作系统的系统应用程序和库文件。vendor_a分区用于存放第一操作系统的系统应用(即开发厂商定制的应用)和库文件,vendor_b分区用于存放第二操作系统的系统应用和库文件。product_a分区及product_b分区用于存储手机的强相关信息。odm_a分区及odm_b分区用于存储手机中相关硬件的参数及库文件,相关硬件可以包括相机、拾音器等。
在另一种可能的设计中,如图3所示,手机的内部存储器221可以包括第一卡槽、第二卡槽及动态分区。其中,第一卡槽用于存储启动第一操作系统所需的部分系统数据,第二卡槽上用于存储启动第二操作系统所需的部分系统数据。动态分区用于存储第一操作系统和第二操作系统共用的部分应用数据及相关硬件参数。
示例性的,在基于图3所示的存储结构中,手机的分区表可以如表2所示。
表2
名称 | 大小 | 地址空间 |
bootloader_a | 256KB | 地址空间1 |
bootloader_b | 256KB | 地址空间2 |
boot_a | 8M | 地址空间3 |
boot_b | 8M | 地址空间4 |
vendor_boot_a | 256KB | 地址空间5 |
vendor_boot_b | 256KB | 地址空间6 |
dtbo_a | 128KB | 地址空间7 |
dtbo_b | 128KB | 地址空间8 |
vbmeta_a | 128KB | 地址空间9 |
vbmeta_b | 128KB | 地址空间10 |
system | 256M | 地址空间11 |
vendor | 8M | 地址空间12 |
product | 2M | 地址空间13 |
odm | 4M | 地址空间14 |
userdata | 32M | 地址空间15 |
其中,第一卡槽可以包括bootloader_a、boot_a、vendor_boot_a、dtbo_a、vbmeta_a等分区,第二卡槽可以包括bootloader_b、boot_b、vendor_boot_b、dtbo_b、vbmeta_b等分区,动态分区可以包括system、vendor、product、odm等分区。该分区表可以包括每个分区的分区名、大小(即所占用存储空间)及地址空间(即存储空间的地址)等。示例性的,根据表2所示的分区表可知,system分区所占的存储空间为256M,其地址空间可以为地址空间11(例如,0x00008A00-0x000889FF)。
可见,图3中的存储结构相对于图2中的存储结构,实际上是将图2中的第一动态分区和第二动态分区合并为一个动态分区,使得不同的操作系统可以共用一个动态分区。通过使不同的操作系统复用一个动态分区,可以减小部署两套操作系统所需的存储空间,从而使得内存较小的手机(或其他电子设备,例如平板)也可以部署两套操作系统,以便为本申请提供的开机方法提供运行环境。
卡槽(第一卡槽及第二卡槽)可以包括两种状态,分别为活动状态及非活动状态。其中,卡槽处于活动状态用于指示手机可以从该卡槽启动,卡槽处于非活动状态用于指示手机无法从该卡槽启动。例如,手机处于关机状态时,可以接收用户的开机操作(例如,长按电源键)。响应于用户的开机操作,手机可以从处于活动状态的卡槽(即活动卡槽,包括第一卡槽或第二卡槽)启动。在一种可选的实施方式中,活动卡槽具备活动标识,该活动标识可以是手机处于正常开机状态时,给当前处于活动状态的卡槽添加的。示例性的,该活动标识可以为active。需要说明的是,只有一个卡槽可以被添加活动标识。也即,只有一个卡槽可以作为活动卡槽被启动。如此,手机可以通过验证第一卡槽及第二卡槽是否存在活动标识,来确认第一卡槽为活动卡槽,或者第二卡槽为活动卡槽。若第一卡槽存在活动标识,则手机可以从第一卡槽启动;若第二卡槽存在活动标识,则手机可以从第二卡槽启动。此外,手机还包括处于非活动状态的卡槽(非活动卡槽),即不可以启动的卡槽。
在手机执行本申请提供的终端设备的开机方法之前,可以先同步第一卡槽与第二卡槽的数据,以确保在第一卡槽或第二卡槽出现故障时,手机上至少存在一个可以正常启动和使用的卡槽(操作系统)。需要说明的是,本申请中涉及到卡槽出现故障(第一卡槽出现故障或者第二卡槽出现故障),实际上是指该卡槽内操作系统的程序或数据存在异常,出现故障。
本申请实施例提供的开机方法可运行于具备图2或图3所示的存储结构的终端设备上。接下来,基于图3所示的存储结构,且以第一卡槽处于活动状态,第二卡槽处于非活动状态为例,说明手机在无线下载(Over-the-Air,OTA)期间,同步第一卡槽与第二卡槽的数据的过程。请参阅图4,手机同步第一卡槽与第二卡槽的数据的流程包括:
S401,手机向服务器发送系统更新请求。
其中,系统更新请求用于指示服务器查询是否有可用的数据更新包。在一种可选的实施方式中,为了避免干扰用户的正常使用过程,手机可以在处于闲时维护模式期间(如夜间)或者用户设置的任意时刻,且已连接到WLAN网络时向服务器发送系统更新请求。在另一种可选的实施方式中,手机也可以给用户提供用于查询新版本的选项。示例性的,如图5中的(a)所示,手机可以显示主界面501。主界面501上可以包括设置选项502。手机可以接收用户点击设置选项502的操作,响应于该操作,如图5中的(b)所示,手机可以跳转至界面503。界面503上可以包括无线和网络、设备连接、应用和通知、系统等选项。手机可以接收用户点击系统选项504的操作,响应于该操作,如图6中的(a)所示,手机可以跳转至界面505。界面505可以包括关于手机、系统更新等选项。手机可以接收用户点击系统更新选项506的操作,响应于该操作,如图6中的(b)所示,手机可以显示界面507。界面507上可以显示当前所使用的操作系统的版本(例如,LND-AL30 9.1.0.0238(C00)),以及检查更新按钮508。手机可以接收用户点击检查更新按钮508的操作,响应于该操作,手机可以向服务器发送系统更新请求。
系统更新请求可以包括当前系统版本等信息。当前系统版本可以指示手机的所安装的操作系统的版本。系统更新请求用于指示服务器查询是否存在新版本。
S402,响应于系统更新请求,服务器查询是否存在新版本。
接收到系统更新请求后,服务器可以从系统更新请求中解析出当前系统版本,并获取最新系统版本。然后,服务器可以比对当前系统版本与最新系统版本。若当前系统版本与最新系统版本一致,则认为不存新版本;若当前系统版本与最新系统版本不一致,则可以存在新版本。示例性的,当前系统版本为LND-AL30 9.1.0.0238(C00),最新系统版本为LND-AL30 9.2.0.0238(C00),则经过比对可知,当前系统版本与最新系统版本不一致,服务器中存在新版本。
S403,服务器向手机发送查询结果。
示例性的,若当前系统版本与最新系统版本不一致,则查询结果可以包括第一指示信息,第一指示信息用于指示存在新版本。若当前系统版本与最新系统版本一致,则查询结果可以包括第二指示信息,第二指示信息用于指示不存在新版本。
S404,根据查询结果,手机判断是否存在新版本。
若手机确认查询结果包括第一指示信息,则可以确定存在新版本,可以执行S405。若手机确认查询结果中包括第二指示信息,则可以确定不存在新版本,从而结束流程。
S405,响应于确认存在新版本,手机获取数据更新包。
其中,数据更新包可以使部署于非活动卡槽(即处于非活动状态的卡槽)上的操作系统(例如,第二操作系统)升级至新版本。在一种可能的设计中,手机可以在处于闲时维护模式期间(如夜间)并已连接到WLAN网络时获取数据更新包。这样既不影响用户正常使用,也不会浪费用户的流量。示例性的,手机可以在确定有新版本时,调用程序更新驱动(update_engine)向服务器发送获取数据更新包的请求,响应于该请求,服务器向手机发送数据更新包。
S406,手机基于数据更新包更新第二操作系统。
在一种可选的实施方式中,手机获取数据更新包后,可以显示如图7A中的(a)所示的界面701,界面701可以显示提示信息702。提示信息702用于提示用户存在可更新的版本。手机可以接收用户点击提示信息702的操作,响应于该操作,如图7A中的(b)所示,手机可以显示数据更新包的信息及立即安装按钮703。示例性的,图7A中的(b)指示数据更新包的大小为62M。手机可以接收用户点击立即安装按钮703的操作,响应于该操作,手机基于数据更新包更新第二操作系统。
可以理解地,由于第一卡槽处于活动状态,第二卡槽处于非活动状态。可以看出,第一卡槽上的第一操作系统处于运行状态,第二卡槽上的第二操作系统处于未运行状态。在更新期间,手机可以利用第一操作系统继续正常运行,同时基于数据更新包对用户暂时未使用的第二操作系统进行更新。如此,既不会影响用户在手机进行系统更新期间的正常使用,又能实现系统更新,提升了用户在手机进行系统更新期间的使用体验。
示例性的,手机可以调用update_engine将数据更新包的数据写入第二卡槽,以更新第二操作系统。在一种可能的设计中,update_engine可以在流式传输(streamtransfer)数据更新包的同时,在第二卡槽上更新第二操作系统。换句话说,在一种可能的设计中,S405与S406可以同时进行。
S407,响应于确定第二操作系统完成更新,手机将第二卡槽设置为活动状态。
在一种可选的实施方式中,可以根据update_engine的运行结果确定数据更新包是否安装成功(即第二操作系统是否完成更新)。若确定第二操作系统已经完成更新,手机可以将第二卡槽设置为活动状态,使得手机在下次启动时,可以从第二卡槽启动(从而启动至更新后的第二操作系统)。
示例性的,手机可以调用setActiveBootSlot()函数,将第二卡槽添加活动标识,以使第二卡槽变为活动状态。可以理解地,在将第二卡槽设置为活动状态时,手机也会将第一卡槽设置为非活动状态。
S408,响应于接收到重启指令,手机从第二卡槽重新启动。
在一种可能的设计中,第二操作系统完成安装后,如图7B所示,手机可以显示重启提示框704。重启提示框704可以包括提示信息705及确认按钮706。提示信息705可以指示用户重启手机。手机可以接收用户点击确认按钮706的操作,响应于该操作,手机重新从第二卡槽启动。
S409,判断手机是否从第二卡槽启动成功。
若手机从第二卡槽启动成功,可以执行S410;若手机从第二卡槽启动失败,可以执行S412。其中,若手机可以正常变为开机状态,则可以认为手机从第二卡槽启动成功;否则,手机从第二卡槽启动失败。
在一种可选的实施方式中,手机中包括系统服务(system_server)。system_server可以监测手机的开机进程。system_server可以在监测到手机开机后发送开机广播(例如,android.intent.action.BOOT_COMPLETED)。因此,可以通过监听开机广播确认手机是否从第二卡槽启动成功。其中,若可以监听到开机广播,则可以认为手机从第二卡槽启动成功;若没有监听到开机广播,则可以认为手机从第二卡槽启动失败。
S410,基于数据更新包更新动态分区。
若手机从第二卡槽启动成功,则可以认为更新后的第二操作系统可以正常启动。此时基于数据更新包更新动态分区(即将数据更新包中的数据写入(merge)动态分区),可以实现对系统应用的更新,从而完成整个升级流程。
需要说明的是,若图4所示的流程运行于如图2所示的存储结构上,手机可以基于数据更新包更新第二动态分区,即更新第二操作系统对应的动态分区。
S411,手机将第二卡槽上的数据同步至第一卡槽。
若手机从第二卡槽启动成功,可以认为更新后的第二操作系统可以正常启动。此时将第二卡槽的数据同步至第一卡槽,以同步更新第一卡槽的数据。如此,手机既可以正常地从第一卡槽启动至第一操作系统,又可以正常地从第二卡槽启动至第二操作系统。从而,在活动卡槽(第一卡槽或第二卡槽)出现故障时,手机还可以从另一个卡槽成功启动。
S412,手机将第一卡槽设置为活动状态,并从第一卡槽重新启动。
若手机从第二卡槽启动失败,则可以认为更新后的第二操作系统存在问题,无法启动。因此将第一卡槽设置为活动状态,使得手机可以从第一卡槽启动至第一操作系统,保证手机可以被正常使用。
S413,响应于确定手机第一卡槽启动成功,手机将第一卡槽上的数据同步至第二卡槽。
手机从第一卡槽成功启动后,再次将第一卡槽上的数据同步至第二卡槽,以使得进行数据同步操作后的第二卡槽上的数据正常。如此,可以确保在第一操作系统发生故障时,手机还可以从第二卡槽启动至第二操作系统。
可见,通过上述操作,使第一操作系统与第二操作系统互为备份,从而确保手机中始终存在两个可用的操作系统。使得其中一个操作系统故障后,手机还可以启动至另一个操作系统。
在另一种可选的设计中,手机也可以在正常运行期间同步第一卡槽与第二卡槽的数据。示例性的,如图7C所示,手机可以定时在主界面707(或者其他应用的界面)显示提示框708。提示框708可以包括提示信息709及确认选项710。提示信息709用于提示用户同步第一卡槽与第二卡槽的数据,例如“是否同步数据至备用操作系统”。用户希望同步数据时,可以点击确认选项710。手机可以接收用户点击确认选项710的操作,响应于该操作,手机可以将活动卡槽(例如,第一卡槽)的数据同步至另一个卡槽(例如,第二卡槽)。
本申请实施例提供了一种终端设备的开机方法,应用于部署有相同的操作系统的终端设备。其中,相同的操作系统可以指,第一操作系统与第二操作系统具有相同的版本信息。接下来,继续以第一卡槽处于活动状态,第二卡槽处于非活动状态,说明终端设备(如手机)的开机流程。请参阅图8,为本申请实施例提供的终端设备的开机方法的流程图。该方法包括:
S801,响应于接收到开机指令,手机从第一卡槽启动。
在一种可能的设计中,手机可以利用get_suffix()函数获取处于活动状态的卡槽。示例性的,通过get_suffix()函数确认第一卡槽处于活动状态,接收到开机指令后,手机可以从第一卡槽启动。
需要说明的是,该开机指令可以为指示手机从关机状态下开机运行的指令,也可以为指示手机从开机状态下重新启动的指令。
S802,响应于确定手机从第一卡槽启动失败,手机将第一卡槽设置为非活动状态。
可以理解地,当第一操作系统的程序或数据异常时,手机无法正常从第一卡槽启动。手机将第一卡槽设置为非活动状态,以便于手机从另一个卡槽重新启动。示例性的,手机可以调用setActiveBootSlot()函数,将第一卡槽设置为非活动状态。
S803,手机将第二卡槽设置为活动状态,并从第二卡槽启动。
可以理解地,由于手机是在一个卡槽可以正常运行时才会同步两个卡槽间的数据。可以认为在同步数据后,第一卡槽与第二卡槽上的程序及数据是正常的。因此,当由于第一卡槽上的部分数据或程序异常导致手机无法从第一卡槽正常启动时,可以切换至数据及程序还正常的第二卡槽,使得手机可以启动至第二操作系统,正常开机。
需要说明的是,若手机从第二卡槽也启动失败,则手机无法开机,可以通过刷机操作重装系统。
可见,本申请提供的终端设备的开机方法,通过保持多个操作系统的一致性,使得在用户的常规使用过程中,用户正在使用的操作系统出现故障时,可以自动切换至另一个操作系统,降低终端设备无法启动的风险,减少用户将终端设备送到维修和保修中心进行维修的情形,提升用户体验。
本申请一实施例提供一种芯片系统900,如图9所示,该芯片系统900包括至少一个处理器901和至少一个接口电路902。处理器901和接口电路902可通过线路互联。例如,接口电路902可用于从其它装置(例如,终端设备的存储器)接收信号。又例如,接口电路902可用于向其它装置(例如处理器901)发送信号。
例如,接口电路902可读取终端设备中存储器中存储的指令,并将该指令发送给处理器901。当所述指令被处理器901执行时,可使得终端设备执行上述各实施例中的各个步骤。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。
Claims (5)
1.一种终端设备的开机方法,其特征在于,应用于终端设备,所述终端设备包括处于活动状态的第一卡槽、处于非活动状态的第二卡槽以及动态分区,所述第一卡槽及所述第二卡槽部署有相同的操作系统,所述第一卡槽包括bootloader_a分区、boot_a分区、vendor_boot_a分区、dtbo_a分区、vbmeta_a分区,所述第二卡槽包括bootloader_b分区、boot_b分区、vendor_boot_b分区、dtbo_b分区、vbmeta_b分区,所述bootloader_a分区用于存储第一操作系统的引导加载程序,所述bootloader_b分区用于存储第二操作系统的引导加载程序,所述boot_a分区用于存储所述第一操作系统的内核及配置信息,所述boot_b分区用于存储所述第二操作系统的内核及配置信息,所述vendor_boot_a分区以及所述vendor_boot_b分区用于存放开机阶段需要加载的驱动程序文件,所述dtbo_a分区以及所述dtbo_b分区用于存储所述终端设备的设备参数,所述vbmeta_a分区用于存储启动所述第一卡槽时的验证公钥,所述vbmeta_b分区用于存储启动所述第二卡槽时的验证公钥,所述方法包括:
获取数据更新包;其中,所述数据更新包用于更新所述操作系统;
基于所述数据更新包更新所述第二卡槽上的操作系统;
响应于确定所述第二卡槽上的操作系统完成更新,所述终端设备将所述第二卡槽设置为活动状态并将所述第一卡槽设置为非活动状态;
响应于接收到重启指令,所述终端设备从所述第二卡槽重新启动;
若所述终端设备从所述第二卡槽启动失败,所述终端设备将所述第一卡槽设置为活动状态、将所述第二卡槽设置为非活动状态,并从所述第一卡槽重新启动;
响应于确定所述终端设备从所述第一卡槽启动成功,所述终端设备将所述第一卡槽上的操作系统同步至所述第二卡槽;
响应于接收到开机指令,所述终端设备从所述第一卡槽启动;
响应于确定所述终端设备从所述第一卡槽启动失败,所述终端设备将所述第二卡槽设置为活动状态、将所述第一卡槽设置为非活动状态,并从所述第二卡槽启动。
2.根据权利要求1所述的方法,其特征在于,所述响应于接收到重启指令,所述终端设备从所述第二卡槽重新启动,还包括:
若所述终端设备从所述第二卡槽启动成功,所述终端设备将所述第二卡槽上的操作系统同步至所述第一卡槽。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述终端设备从所述第二卡槽启动成功,所述终端设备基于所述数据更新包更新所述动态分区。
4.一种终端设备,其特征在于,所述包括:无线通信模块、存储器和一个或多个处理器;所述无线通信模块、所述存储器与所述处理器耦合;
其中,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令被所述处理器执行时,使得所述终端设备执行如权利要求1-3中任一项所述的终端设备的开机方法。
5.一种计算机可读存储介质,其特征在于,包括计算机指令;
当所述计算机指令在终端设备上运行时,使得所述终端设备执行如权利要求1-3中任一项所述的终端设备的开机方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110962381.1A CN114489814B (zh) | 2021-08-20 | 2021-08-20 | 一种终端设备的开机方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110962381.1A CN114489814B (zh) | 2021-08-20 | 2021-08-20 | 一种终端设备的开机方法及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114489814A CN114489814A (zh) | 2022-05-13 |
CN114489814B true CN114489814B (zh) | 2023-01-17 |
Family
ID=81491529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110962381.1A Active CN114489814B (zh) | 2021-08-20 | 2021-08-20 | 一种终端设备的开机方法及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114489814B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116954782A (zh) * | 2023-03-31 | 2023-10-27 | 荣耀终端有限公司 | 软件检查状态显示方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408153A (zh) * | 2018-11-01 | 2019-03-01 | 百度在线网络技术(北京)有限公司 | 软件启动方法和软件升级方法 |
CN110543321A (zh) * | 2019-09-06 | 2019-12-06 | 深圳市英博超算科技有限公司 | Ota升级方法、装置、终端以及计算机可读存储介质 |
CN111373379A (zh) * | 2018-07-20 | 2020-07-03 | 华为技术有限公司 | 一种数据备份方法及终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113189907A (zh) * | 2021-04-28 | 2021-07-30 | 前海七剑科技(深圳)有限公司 | 一种车载系统恢复方法和装置 |
-
2021
- 2021-08-20 CN CN202110962381.1A patent/CN114489814B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111373379A (zh) * | 2018-07-20 | 2020-07-03 | 华为技术有限公司 | 一种数据备份方法及终端 |
CN109408153A (zh) * | 2018-11-01 | 2019-03-01 | 百度在线网络技术(北京)有限公司 | 软件启动方法和软件升级方法 |
CN110543321A (zh) * | 2019-09-06 | 2019-12-06 | 深圳市英博超算科技有限公司 | Ota升级方法、装置、终端以及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114489814A (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8522004B2 (en) | Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM) | |
CN110764825B (zh) | 一种开机方法及终端设备 | |
KR20200140555A (ko) | 전자 장치 및 전자 장치의 듀얼 스탠바이 모드 및 싱글 스탠바이 모드의 전환 방법 | |
WO2020015259A1 (zh) | 一种数据备份方法及终端 | |
KR20190024169A (ko) | 스마트키 서비스를 제공하기 위한 방법 및 그 전자 장치 | |
CN113900699B (zh) | 一种系统升级方法和电子设备 | |
CN115328563B (zh) | 系统启动方法及电子设备 | |
CN114461239A (zh) | 软件升级系统和软件升级方法 | |
CN114489814B (zh) | 一种终端设备的开机方法及终端设备 | |
JPWO2007119550A1 (ja) | システム管理装置 | |
CN116048628B (zh) | 设备启动方法及电子设备 | |
US20150363188A1 (en) | Information Processing Device and Information Processing System | |
CN111399874A (zh) | 一种系统升级方法、装置、存储介质及智能穿戴设备 | |
CN113138878A (zh) | 可信执行环境操作系统崩溃处理方法及电子设备 | |
KR100873327B1 (ko) | 이동통신 단말기의 펌웨어 업데이트 방법 및 장치 | |
CN113672297A (zh) | 一种recovery模式升级过程中的重启方法及终端 | |
CN116382791B (zh) | 一种配置文件的保护方法及电子设备 | |
CN114253558A (zh) | 一种补丁包安装方法和装置 | |
CN116244008B (zh) | 应用启动方法、电子设备以及存储介质 | |
KR20070094167A (ko) | 이동 단말기에서 메모리를 이용한 멀티 운영 체제 구동장치 및 방법 | |
CN110083484B (zh) | Fpga重加载方法、设备、存储介质及系统 | |
CN111726848B (zh) | 设备绑定方法、目标启动装置、固定终端及存储介质 | |
CN115454454A (zh) | 应用部署方法、分布式操作系统、电子设备及存储介质 | |
CN113612884A (zh) | 关机闹钟的实现方法、电子设备及计算机可读存储介质 | |
CN107766089B (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 |