CN118819567A - 刷机方法、装置、移动终端与可读存储介质 - Google Patents

刷机方法、装置、移动终端与可读存储介质 Download PDF

Info

Publication number
CN118819567A
CN118819567A CN202310416844.3A CN202310416844A CN118819567A CN 118819567 A CN118819567 A CN 118819567A CN 202310416844 A CN202310416844 A CN 202310416844A CN 118819567 A CN118819567 A CN 118819567A
Authority
CN
China
Prior art keywords
operating system
partition
mobile terminal
flashing
package
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
CN202310416844.3A
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.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software 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 Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN202310416844.3A priority Critical patent/CN118819567A/zh
Publication of CN118819567A publication Critical patent/CN118819567A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Telephone Function (AREA)

Abstract

本公开涉及一种刷机方法、装置、移动终端与可读存储介质,涉及系统更新技术领域。包括:获取服务器中的刷机包,该刷机包用于更新移动终端的操作系统;在该刷机包与该移动终端的机型匹配的情况下,采用该刷机包将移动终端的操作系统从第一操作系统更新为第二操作系统,该第一操作系统与第二操作系统为不同类型的操作系统。使用本公开提出的刷机方法,用户可以使用移动终端即可进行刷机,而不必借助计算机。

Description

刷机方法、装置、移动终端与可读存储介质
技术领域
本公开涉及系统更新技术领域,尤其涉及一种刷机方法、装置、移动终端与可读存储介质。
背景技术
随着移动终端的逐渐发展,移动终端上随之出现多种功能,其中刷机是移动终端的一种功能,刷机指的是改变移动终端的操作系统。
相关技术中,计算机可以将刷机包通过通信协议,发送给移动终端的程序,程序再使用刷机包对移动终端进行刷机,从而改变移动终端的操作系统,然而,采用这种计算机对移动终端进行刷机的方式,还需要用户对计算机与移动终端进行物理连接,给用户操作带来不便。
发明内容
为克服相关技术中存在的问题,本公开提供一种刷机方法、装置、移动终端与可读存储介质。
根据本公开实施例的第一方面,提供一种刷机方法,包括:
获取服务器中的刷机包,所述刷机包用于更新移动终端的操作系统;
在所述刷机包与所述移动终端的机型匹配的情况下,采用所述刷机包将移动终端的操作系统从第一操作系统更新为第二操作系统,所述第一操作系统与第二操作系统为不同类型的操作系统。
可选地,所述采用所述刷机包将移动终端的操作系统从第一操作系统更新为第二操作系统,包括:
通过所述移动终端的备用系统,将所述移动终端的操作系统从第一操作系统更新为第二操作系统。
可选地,所述通过所述移动终端的备用系统,将所述移动终端的操作系统从第一操作系统更新为第二操作系统,包括:
接收引导程序控制模块发送的刷机指令与系统启动信息;
基于所述系统启动信息,启动所述备用系统;
通过所述备用系统以所述刷机指令,将所述移动终端的操作系统从第一操作系统更新为第二操作系统。
可选地,所述采用所述刷机包将移动终端的操作系统从第一操作系统更新为第二操作系统,包括:
清除分区中所述第一操作系统的数据;
将所述第二操作系统的刷机包刷入所述分区,以使所述移动终端的操作系统从第一操作系统更新为第二操作系统。
可选地,所述第一操作系统的数据为用户数据,所述分区为第一分区,所述清除分区中所述第一操作系统的数据,包括:
在调用所述第一方法对所述第一分区中的用户数据清除失败的情况下,调用第二方法对所述用户数据进行清除;
在调用所述第二方法对所述用户数据清除失败的情况下,在所述第一分区中填充目标数据并格式化所述第一分区。
可选地,所述第一操作系统的数据为非用户数据,所述非用户数据包括关键数据与非关键数据,所述分区为第二分区,所述清除分区中所述第一操作系统的数据,包括:
存储所述第二分区的非用户数据中的关键数据;
在调用所述第一方法对所述非关键数据清除失败的情况下,调用第二方法对所述非用户数据进行清除;
在调用所述第二方法对所述非用户数据清除失败的情况下,在所述第二分区中填充目标数据并格式化所述第二分区;
将所述关键数据恢复至所述第二分区。
可选地,所述刷机包括至少一个系统镜像,所述将所述第二操作系统的刷机包刷入所述分区,包括:
在所述系统镜像为压缩格式的情况下,解析所述系统镜像并将解析后的所述系统镜像刷入所述分区;
在所述系统镜像为非压缩格式的情况下,将所述系统镜像刷入所述分区。
可选地,所述分区为第一分区,所述将所述第二操作系统的刷机包刷入所述分区,包括:
将所述第一分区中刷机包的至少一个系统镜像拷贝至内存;
卸载所述第一分区;
将所述至少一个系统镜像刷入所述第一分区。
可选地,所述方法还包括:
根据预定时长、所述移动终端的处理器比率与所述刷机包的大小比率,确定在每个更新阶段中,更新所述移动终端的操作系统的更新时长;
在不同的阶段,以不同的更新时长更新所述移动终端的操作系统。
根据本公开实施例的第二方面,提供刷机装置,包括:
接收模块,被配置为获取服务器中的刷机包,所述刷机包用于更新移动终端的操作系统;
刷机模块,被配置为在所述刷机包与所述移动终端的机型匹配的情况下,采用所述刷机包将移动终端的操作系统从第一操作系统更新为第二操作系统,所述第一操作系统与第二操作系统为不同类型的操作系统。
根据本公开实施例的第三方面,提供一种移动终端,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
执行本公开实施例的第一方面提供的刷机方法的步骤。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开第一方面所提供的刷机方法的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:
移动终端可以获取服务器中的刷机包,并在刷机包与移动终端的机型匹配的情况下,采用刷机包对移动终端本身的操作系统进行更新。在此过程中,用户使用移动终端本身就可以进行刷机操作,无需借助计算机就可以实现刷机,自然也就不需要用户对计算机与移动终端进行物理连接;并且移动终端可以自行从服务器下载完整的刷机包,而无需服务器将刷机包的子文件分批发送给移动终端,从而使得刷机包的传输速率更快,自然,刷机所耗费的时长也更短。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的刷机方法的步骤流程图;
图2是根据一示例性实施例示出的移动终端与服务器进行刷机的交互示意图;
图3是根据一示例性实施例示出的移动终端中空气刷机模块的示意图;
图4是根据一示例性实施例示出的移动终端中主系统操作的示意图;
图5是根据一示例性实施例示出的刷机方法的逻辑示意图;
图6是根据一示例性实施例示出的刷机方法的步骤流程图;
图7是根据一示例性实施例示出的清除分区中数据的逻辑示意图;
图8是根据一示例性实施例示出的刷入数据至分区中的逻辑示意图;
图9是根据一示例性实施例示出的刷机装置的结构框图;
图10是根据一示例性实施例示出的移动终端的结构框图;
图11是根据一示例性实施例示出的服务器的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
需要说明的是,本公开中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
相关技术中,计算机可以将刷机包通过通信协议,发送给移动终端的bootloader程序或fastboot程序,这两个程序通过fastboot协议对移动终端进行刷机,从而改变移动终端的操作系统。
然而,采用这种计算机对移动终端进行刷机的方式,存在以下缺陷:
(1)、需要用户对计算机与移动终端进行物理连接,给用户操作带来不便。例如需要用户采用数据线连接移动终端与计算机。
(2)、在没有计算机的情况下,则无法对移动终端进行刷机。
(3)、计算机通过通信协议将刷机包传输给移动终端时,受制于通信协议的限制,计算机需要将刷机包中的子文件分批发送给移动终端,导致刷机包的传输速率较慢,自然,刷机所耗费的时长也较长。
基于此,本公开提出一种刷机方法,请参阅图1所示,图1是根据一示例性实施例示出的一种刷机方法的流程图,如图1所示,刷机方法用于移动终端中,包括以下步骤。可以理解的是,移动终端可以为手机、平板电脑、手环等便携式终端。
在步骤S101中,获取服务器中的刷机包,所述刷机包用于更新移动终端的操作系统。
在一些实施例中,请参阅图2所示,移动终端可以通过蓝牙(Bluetooth)、WIFI或者其他通信方式连接到服务器,再通过蓝牙或WIFI下载服务器中的刷机(ROM)包,刷机包中包含有更新后的操作系统的数据。
在一些实施例中,移动终端中具有主系统与备用系统,主系统是移动终端当前所使用的操作系统,备用系统是用于将移动终端的主系统从第一操作系统更新至第二操作系统的系统。可以理解的是,在经历多次刷机得到多个不同的主系统后,备用系统并不会发生改变,区别在于,在不同的主系统中存在的是不同版本的备用系统;而主系统在进行刷机之后则会变化为不同类型的主系统。
在一些实施例中,在移动终端的主系统能够使用的情况下,通过移动终端的主系统下载服务器的刷机包,备用系统从主系统获取刷机包,以进行刷机操作。
可选地,请参阅图3所示,移动终端中包含有应用程序、框架以及备用系统。应用程序包括下载模块,应用程序为移动终端前端的应用程序(App);框架(Frame Work)为移动终端前端的软件开发框架,备用系统(Recovery)包括下载模块,备用系统与移动终端中的主系统是隔离的,当移动终端的主系统无法使用时,备用系统能够正常使用,所以可以采用备用系统来将移动终端的主系统从一种操作系统更新为另外一种操作系统。
可选地,移动终端可以通过应用程序中的下载模块来下载服务器中的刷机包,并通过备用系统使用刷机包来对终端的操作系统进行更新。
在一些实施例中,在移动终端的主系统无法使用的情况下,通过备用系统下载服务器的刷机包,备用系统再使用刷机包进行刷机操作。
可选地,移动终端可以通过备用系统中的下载模块来下载服务器中的刷机包,并通过备用系统来对移动终端的操作系统进行更新。
在步骤S102中,在所述刷机包与所述移动终端的机型匹配的情况下,采用所述刷机包将移动终端的操作系统从第一操作系统更新为第二操作系统。
在一些实施例中,第一操作系统为移动终端未进行刷机前的操作系统,第二操作系统为采用刷机包对移动终端进行刷机后的操作系统。第一操作系统与第二操作系统为不同类型的操作系统。例如第一操作系统为安卓(Android)操作系统,第二操作系统为MIUI(MI User Interface,小米用户界面)操作系统;又如,第一操作系统为工厂生产过程中提供的测试操作系统,第二操作系统为Android操作系统。
在一些实施例中,不同的移动终端配置有不同版本的刷机包,不同版本的刷机包包含了不同类型的操作系统的数据。例如,刷机包A包含了Android操作系统的数据,刷机包B包含了MIUI操作系统,那么与刷机包A匹配的移动终端的机型是机型A,机型A的移动终端能够适用Android操作系统,以及与刷机包B匹配的移动终端的机型则是机型B,机型B的移动终端能够适用MIUI操作系统。
可选地,在刷机包与移动终端的机型匹配的情况下,说明该版本的刷机包能够将移动终端原有的第一操作系统更新为刷机包对应的第二操作系统。
在一些实施例中,请参阅图3所示,移动终端中包含有主系统与备用系统,主系统包括应用程序与框架。应用程序包括下载模块、解压模块与指令传递模块;框架包括备用系统接口模块与备用系统服务模块;备用系统包括解压模块、解析模块、刷机模块、分区清除模块、显示模块与下载模块。
在一些实施例中,在移动终端的主系统能够使用的情况下,移动终端进行刷机的流程包括:
(11)、主系统的应用程序中的下载模块从服务器下载刷机包,将刷机包发送至解压模块,通过解压模块对刷机包进行解压后,将解压后的刷机包存储至第一分区的文件系统;解压模块再将解压后的刷机包发送至指令传递模块;指令传递模块调用框架的备用系统接口模块,将刷机指令、刷机包路径、刷机包版本以及系统启动信息等参数,按照与备用系统约定的参数格式写入框架。
其中,第一分区为用户数据(userdata)分区,用于存放用户数据与刷机包。
其中,刷机指令用于指示备用系统采用刷机包进行刷机;刷机包路径是刷机包存储在第一分区的文件系统中的存储地址;刷机包版本是为了与移动终端的机型进行匹配,以确定移动终端当前接收的刷机包能否用于对移动终端的操作系统进行更新;系统启动信息用于指示移动终端启动的操作系统,例如为主系统还是备用系统。
(12)、主系统的框架中的备用系统接口模块通过binder调用备用系统服务模块,备用系统服务模块与备用系统提供的帮助程序(Native)进行套接字(socket)通信,将这些参数写入引导程序控制模块(Bootloader Control Block,BCB);备用系统服务模块通过电源管理(PowerManager)主动重启移动终端;引导程序(Bootloader)根据引导程序控制模块中的系统启动信息来启动备用系统,并将引导程序控制模块中的刷机指令与刷机包路径发送至备用系统。
其中,在启动备用系统前,会先启动引导程序,再通过引导程序来启动移动终端中的操作系统。由于移动终端中包含有备用系统与主系统等多个操作系统,所以引导程序获取到系统启动信息之后,若系统启动信息与备用系统关联,引导程序则会启动备用系统,以利用备用系统来对移动终端进行刷机;若系统启动信息不关联任何系统,引导程序则会默认启动主系统,不进行刷机操作。
其中,备用系统接口模块与备用系统服务模块属于两种不同的进程,所以备用系统接口模块通过binder可以与备用系统服务模块跨进程通信。
其中,引导程序控制模块是备用系统在进行刷机前需要读取参数的分区。
(13)、备用系统挂载第一分区;备用系统判断刷机包是否是压缩包;若是压缩包,则通过解压模块对压缩包进行解压;备用系统再通过解析模块解析刷机包中的刷机文件,确定刷机包是否与移动终端的机型匹配,如果匹配,将第一操作系统中需要清除的分区记录至第一集合中,将第一操作系统中需要刷入的分区与刷机包中的系统镜像进行对应,记录到映射表中;再通过分区清除模块清除第一集合中的数据,再通过刷机模块根据映射表中刷机包的系统镜像与分区之间的映射关系,将刷机包的系统镜像刷入对应的分区中;备用系统再对移动终端执行重启操作,完成刷机。
其中,备用系统挂载第一分区后,可以访问第一分区,后续备用系统可以从第一分区中获取刷机包与用户数据,
其中,刷机可以为空气刷机,控制刷机指的是移动终端通过WIFI、蓝牙等通信方式获取刷机包,然后完成刷机的一种功能。
可选地,请参阅图4所示,在主系统能够使用的情况下,应用程序与框架所执行的操作由移动终端中的主系统执行,主系统会下载刷机包,解压刷机包并调用备用系统接口模块;还会启动备用系统,将刷机指令与刷机包路径发送至备用系统,备用系统再根据刷机包路径查询得到刷机包,利用刷机包来对将移动终端的主系统从第一操作系统更新至第二操作系统。
示例地,以第一操作系统为工厂定制的测试操作系统,第二操作系统为安卓操作系统,移动终端为安卓设备举例。工厂生产完一台安卓设备之后,首先并不是将安卓操作系统刷入安卓设备,而是先将测试操作系统刷入安卓设备,进而来测试安卓设备。其中,测试操作系统为安卓设备提供工厂生产过程中所需的系统能力,协助工厂完成出厂安卓设备所需的老化测试与显示测试等工栈。
如此,安卓设备中先具有测试操作系统,当安卓设备面向用户时,需要根据安卓设备当前所处的工栈,在不影响当前工栈的情况下,安卓设备的主系统从服务器获取刷机包,安卓设备中的备用系统通过刷机包将安卓设备的主系统从测试操作系统更新为安卓操作系统,从而使得生产出的安卓设备中的操作系统是面向用户的安卓操作系统。
在一些实施例中,在移动终端的主系统无法使用的情况下,移动终端进行刷机的流程包括:
(21)、备用系统的下载模块从服务器下载刷机包,将刷机包存储至第一分区的文件系统。
(22)、备用系统进行刷机的操作与上述步骤(13)中的操作相同,在此不再赘述。
示例地,以第一操作系统为安卓操作系统,第二操作系统为MIUI操作系统,移动终端为安卓设备举例。安卓设备中先具有安卓操作系统,当安卓操作系统无法使用时,安卓设备的备用系统从服务器获取刷机包,安卓设备中的备用系统利用刷机包,将安卓设备的主系统从安卓操作系统更新为MIUI操作系统,从而使得更新操作系统后的安卓设备能够正常使用。
可选地,在主系统无法使用的情况下,刷机包的下载操作由备用系统执行,备用系统再根据刷机包路径查询得到刷机包,利用刷机包来对将移动终端的主系统从第一操作系统更新至第二操作系统。
通过上述技术方案,移动终端可以获取服务器中的刷机包,并在刷机包与移动终端的机型匹配的情况下,采用刷机包对移动终端本身的操作系统进行更新。在此过程中,用户使用移动终端本身就可以进行刷机操作,无需借助计算机就可以实现刷机,自然也就不需要用户对计算机与移动终端进行物理连接;并且移动终端可以自行从服务器下载完整的刷机包,而无需服务器将刷机包的子文件分批发送给移动终端,从而使得刷机包的传输速率更快,自然,刷机所耗费的时长也更短。
另外,由于本公开提出的移动终端中设置有备用系统,所以当移动终端的主系统出现无法使用时,可以通过移动终端中的备用系统来对移动终端进行刷机,将移动终端的主系统从无法使用的第一操作系统切换至第二操作系统,由于第二操作系统是从服务器下载的能够正常使用的操作系统,所以用户采用备用系统刷机为第二操作系统后,移动终端能够正常使用;当移动终端的主系统能够正常使用时,可以通过主系统下载刷机包,备用系统再采用刷机包对移动终端进行刷机,由于主系统(例如测试操作系统)在做老化测试或显示测试等工栈的同时可以下载刷机包,而无需备用系统再花费额外的时间来下载刷机包,所以可以缩短刷机时长。
图6是根据一示例性实施例示出的一种刷机方法的步骤流程图,刷机方法包括以下步骤:
在步骤S601中,获取服务器中的刷机包。
在步骤S602中,在所述刷机包与所述移动终端的机型匹配的情况下,清除分区中所述第一操作系统的数据。
在一些实施例中,可以通过备用系统判断引导程序控制模块中的刷机包路径是否是压缩包。
可选地,如果刷机包是压缩包,备用系统可以对刷机包进行解压,将解压后的刷机包的内容存储至目标文件夹中;再自动搜寻解压后的刷机包的根目录路径,根目录路径则是上述提出的刷机包存储在第一分区的文件系统中的存储路径。
其中,将解压后的刷机包的内容存储至目标文件夹中,是为了后续移动终端对目标文件夹中的刷机包进行增删;搜寻解压后的刷机包的根目录路径是为了从第一分区的文件系统中获取刷机包的多个系统镜像。可以理解的是,多个系统镜像组合后可以形成第二操作系统。
可选地,如果刷机包不是压缩包,即是单个目录,则直接搜寻刷机包的根目录路径。
在一些实施例中,请参阅图5所示,搜寻刷机包的根目录路径之后,可以根据根目录路径从第一分区的文件系统中获取到刷机包;再通过备用系统解析刷机包中的刷机文件,确定刷机包是否与移动终端的机型匹配。
可选地,如果刷机包与移动终端的机型匹配,则通过备用系统中将第一操作系统中需要清除的分区记录至第一集合中,再将第一集合的分区中的数据进行清除。并且对于一些敏感分区进行保护,避免敏感分区被清除;对于一些特殊分区,将特殊分区的数据进行清除后,重新创建特殊分区的数据结构,以适用于第二操作系统。
在一些实施例中,分区包括第一分区与第二分区,第一分区为用户数据分区,用于存储刷机包与用户数据,第二分区为非用户数据分区,非用户数据分区为“cache分区”或“rescue分区”,用于存储主系统与备用系统之间的共用数据。
可选地,分区为第一分区,第一操作系统的数据为用户数据,那么清除分区中的第一操作系统的数据包括:在调用所述第一方法对所述第一分区中的用户数据清除失败的情况下,调用第二方法对所述用户数据进行清除;在调用所述第二方法对所述用户数据清除失败的情况下,在所述第一分区中填充目标数据并格式化所述第一分区。
其中,第一方法为BLKSECDISCARD方法,第二方法为BLKDISCARD,第一方法与第二方法均是存储芯片组提供的硬件功能,用于快速且安全地清除分区中的数据。
其中,调用所述第一方法对所述第一分区中的用户数据清除失败包括:无法调用第一方法,或成功调用第一方法后无法使用第一方法清除用户数据;调用第二方法对用户数据清除失败包括:无法调用第二方法,或成功调用第二方法后无法使用第二方法清除用户数据。
示例地,请参阅图7所示,可以判断分区中的数据是否是用户数据,如果是用户数据,则确定该分区是第一分区,进而卸载第一分区;再检查块设备,获取块设备的大小,块设备是第一分区对应的数据结构;再调用第一方法来清除第一分区中的用户数据,如果调用第一方法失败,则调用第二方法,如果第二方法调用失败,则在第一分区中填充0;再确定清除的分区是否为第一分区,如果是,则格式化第一分区,结束流程。
可选地,分区为第二分区,第一操作系统的数据为非用户数据,非用户数据包括关键数据与非关键数据,那么清除分区中的第一操作系统的数据包括:存储所述第二分区的非用户数据中的关键数据;在调用所述第一方法对所述非关键数据清除失败的情况下,调用第二方法对所述非用户数据进行清除;在调用所述第二方法对所述非用户数据清除失败的情况下,在所述第二分区中填充目标数据并格式化所述第二分区;将所述关键数据恢复至所述第二分区。
其中,关键数据指的是主系统与备用系统之间的共用数据,这部分共用数据是重要数据,不能被备用系统清除;非关键数据是能够被备用系统清除的数据。
示例地,请参阅图7所示,可以判断分区中的数据是否是非用户数据,如果是非用户数据,则确定该分区是第二分区,再存储非用户数据中的关键数据,再卸载第二分区;再检查块设备,获取块设备的大小,块设备是第二分区对应的结构;再调用第一方法来清除第二分区中的非关键数据,如果调用第一方法失败,则调用第二方法,如果第二方法调用失败,则在第二分区中填充0;再确定清除的分区是否为第二分区,如果是,则格式化第二分区并将关键数据恢复至第二分区中,结束流程。
其中,调用所述第一方法对所述第二分区中的非关键数据清除失败包括:无法调用第一方法,或成功调用第一方法后无法使用第一方法清除非关键数据;调用第二方法对非关键数据清除失败包括:无法调用第二方法,或成功调用第二方法后无法使用第二方法清除非关键数据。
在步骤S603中,将所述第二操作系统的刷机包刷入所述分区,以使所述移动终端的操作系统从第一操作系统更新为第二操作系统。
在一些实施例中,通过备用系统将第一操作系统中需要刷入的分区与刷机包中的系统镜像进行对应,记录到映射表中;再将第二操作系统的刷机包中的数据,以映射表记录的分区与刷机包的系统镜像之间的映射关系,将刷机包的系统镜像刷入对应的分区。
在一些实施例中,对于第一分区与第二分区而言,在被清除分区中的数据之后,均需要将第二操作系统的系统镜像的数据刷入第一分区或第二分区中,而其刷入方式前均需要判断刷入的系统镜像是否为压缩包格式。可以理解的是,由于第二操作系统是由刷机包更新移动终端后得到的操作系统,且刷机包由至少一个系统镜像组成,所以本公开实施例中会将第二操作系统的数据称为刷机包的系统镜像,或称为第二操作系统的系统镜像,三者可以交替使用。
可选地,请参阅图8所示,在刷机包的系统镜像为压缩格式的情况下,解析系统镜像并将解析后的系统镜像刷入分区的闪存。示例地,请参阅图8所示,判断系统镜像(image)是否是sparse(压缩)格式,若是sparse格式的系统镜像,需要边解析系统镜像,边刷入到分区的闪存(flash)中。
可选地,在刷机包的系统镜像为非压缩格式的情况下,将系统镜像刷入分区。示例地,若系统镜像不是sparse格式,则是raw(非压缩格式)格式的系统镜像,直接将系统镜像写入分区的闪存中即可。
在一些实施例中,分区包括第一分区与第二分区,在主系统能够使用的情况下,由于第一分区中的文件系统中存储了刷机包,若将刷机包的系统镜像同时刷入第一分区的闪存与第二分区的闪存中,备用系统将系统镜像输入至第一分区的闪存的同时,会对第一分区中文件系统内的刷机包进行修改,导致所有的刷机包数据丢失。基于此,请参阅图5所示,本公开可以对第二分区执行完刷入操作之后,再对第一分区执行刷入操作,即图5中先更新第二分区,再更新第一分区。
可选地,备用系统确定有刷机包的系统镜像需要刷入第一分区内时,可以先将第一分区中的刷机包拷贝至内存中;再卸载第一分区,将内存中的刷机包的系统镜像刷入第一分区。可以理解的是,卸载第一分区之后,第一分区是从内存中移除,备用系统无法直接对第一分区中的数据进行修改,再将刷机包的系统镜像刷入第一分区后,可以重新将第一分区挂载在内存中,以便备用系统访问,如此便可以避免备用系统修改第一分区的文件系统的刷机包。
可选地,备用系统确定没有系统镜像刷入第一分区时,备用系统会直接卸载第一分区,再清除第一分区中的用户数据。
在一种可能的实施方式中,备用系统还包括显示模块,显示模块用来显示移动终端更新操作系统的进度。相关技术中,在显示进度时,受制于网络限制或移动终端性能显示,会导致显示的进度条存在卡顿现象,为了使得进度条显示的更加平滑,本公开还提出:根据预定时长、所述移动终端的处理器比率与所述刷机包的大小比率,确定在每个更新阶段中,更新所述移动终端的操作系统的更新时长;在不同的阶段,以不同的更新时长更新所述移动终端的操作系统。
其中,预定时长是开发人员使用测试移动终端和测试刷机包试验多次后得到的,移动终端更新操作系统的平均时长;处理器比率是移动设备的处理器的最大频率与测试移动设备的最大频率之比;刷机包的大小比率为刷机包的大小与测试刷机包的大小之比。
可选地,可以将预定时长除以处理器比率与刷机包的大小比率,来得到移动终端在每个更新阶段所更新的更新时长,进而在不同的阶段,按照不同的更新时长来更新移动终端的操作系统,使得进度条的更新显示更加地平滑。
示例地,若更新时长为1小时,原有的进度条显示为时快时慢,而本公开提出的进度条显示可以让进度条以匀速进行更新。
图9是根据一示例性实施例示出的一种刷机装置的框图。参照图9,该刷机装置900包括接收模块901与刷机模块902。
接收模块901,被配置为获取服务器中的刷机包,所述刷机包用于更新移动终端的操作系统;
刷机模块902,被配置为在所述刷机包与所述移动终端的机型匹配的情况下,采用所述刷机包将移动终端的操作系统从第一操作系统更新为第二操作系统,所述第一操作系统与第二操作系统为不同类型的操作系统。
可选地,刷机模块902包括:
第一刷机子模块,被配置为通过所述移动终端的备用系统,将所述移动终端的操作系统从第一操作系统更新为第二操作系统。
可选地,第一刷机子模块包括:
第一接收子模块,被配置为接收引导程序控制模块发送的刷机指令与系统启动信息;
启动子模块,被配置为基于所述系统启动信息,启动所述备用系统;
第二刷机子模块,被配置为通过所述备用系统以所述刷机指令,将所述移动终端的操作系统从第一操作系统更新为第二操作系统。
可选地,刷机模块902包括:
第一清除子模块,被配置为清除分区中所述第一操作系统的数据;
第三刷机子模块,被配置为将所述第二操作系统的刷机包刷入所述分区,以使所述移动终端的操作系统从第一操作系统更新为第二操作系统。
可选地,所述第一操作系统的数据为用户数据,所述分区为第一分区,第一清除子模块包括:
第二清除子模块,被配置为在调用所述第一方法对所述第一分区中的用户数据清除失败的情况下,调用第二方法对所述用户数据进行清除;
第三清除子模块,被配置为在调用所述第二方法对所述用户数据清除失败的情况下,在所述第一分区中填充目标数据并格式化所述第一分区。
可选地,所述第一操作系统的数据为非用户数据,所述非用户数据包括关键数据与非关键数据,第一清除子模块包括:
第一存储子模块,被配置为存储所述第二分区的非用户数据中的关键数据;
第四清除子模块,被配置为在调用所述第一方法对所述非关键数据清除失败的情况下,调用第二方法对所述非用户数据进行清除;
第五清除子模块,被配置为在调用所述第二方法对所述非用户数据清除失败的情况下,在所述第二分区中填充目标数据并格式化所述第二分区;
将所述关键数据恢复至所述第二分区。
可选地,所述刷机包括至少一个系统镜像,第三刷机子模块包括:
第四刷机子模块,被配置为在所述系统镜像为压缩格式的情况下,解析所述系统镜像并将解析后的所述系统镜像刷入所述分区;
第五刷机子模块,被配置为在所述系统镜像为非压缩格式的情况下,将所述系统镜像刷入所述分区。
可选地,所述分区为第一分区,第三刷机子模块包括:
拷贝子模块,被配置为将所述第一分区中刷机包的至少一个系统镜像拷贝至内存;
卸载子模块,被配置为卸载所述第一分区;
第六刷入子模块,被配置为将所述至少一个系统镜像刷入所述第一分区。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开提供的刷机方法的步骤。
图10是根据一示例性实施例示出的一种用于刷机的装置1000的框图。例如,装置1000可以是移动终端,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图10,装置1000可以包括以下一个或多个组件:处理组件1002,存储器1004,电源组件1006,多媒体组件1008,音频组件1010,输入/输出接口1012,传感器组件1014,以及通信组件1016。
处理组件1002通常控制装置1000的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1002可以包括一个或多个处理器1020来执行指令,以完成上述的刷机方法的全部或部分步骤。此外,处理组件1002可以包括一个或多个模块,便于处理组件1002和其他组件之间的交互。例如,处理组件1002可以包括多媒体模块,以方便多媒体组件1008和处理组件1002之间的交互。
存储器1004被配置为存储各种类型的数据以支持在装置1000的操作。这些数据的示例包括用于在装置1000上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1004可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1006为装置1000的各种组件提供电力。电源组件1006可以包括电源管理系统,一个或多个电源,及其他与为装置1000生成、管理和分配电力相关联的组件。
多媒体组件1008包括在所述装置1000和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1008包括一个前置摄像头和/或后置摄像头。当装置1000处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1010被配置为输出和/或输入音频信号。例如,音频组件1010包括一个麦克风(MIC),当装置1000处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1004或经由通信组件1016发送。在一些实施例中,音频组件1010还包括一个扬声器,用于输出音频信号。
输入/输出接口1012为处理组件1002和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1014包括一个或多个传感器,用于为装置1000提供各个方面的状态评估。例如,传感器组件1014可以检测到装置1000的打开/关闭状态,组件的相对定位,例如所述组件为装置1000的显示器和小键盘,传感器组件1014还可以检测装置1000或装置1000一个组件的位置改变,用户与装置1000接触的存在或不存在,装置1000方位或加速/减速和装置1000的温度变化。传感器组件1014可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1014还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1014还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件1016被配置为便于装置1000和其他设备之间有线或无线方式的通信。装置1000可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1016经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1016还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置1000可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述刷机方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1004,上述指令可由装置1000的处理器1020执行以完成上述刷机方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
上述装置除了可以是独立的电子设备外,也可是独立电子设备的一部分,例如在一种实施例中,该装置可以是集成电路(Integrated Circuit,IC)或芯片,其中该集成电路可以是一个IC,也可以是多个IC的集合;该芯片可以包括但不限于以下种类:GPU(GraphicsProcessing Unit,图形处理器)、CPU(Central Processing Unit,中央处理器)、FPGA(Field Programmable Gate Array,可编程逻辑阵列)、DSP(Digital Signal Processor,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、SOC(System on Chip,SoC,片上系统或系统级芯片)等。上述的集成电路或芯片中可以用于执行可执行指令(或代码),以实现上述的刷机方法。其中该可执行指令可以存储在该集成电路或芯片中,也可以从其他的装置或设备获取,例如该集成电路或芯片中包括处理器、存储器,以及用于与其他的装置通信的接口。该可执行指令可以存储于该存储器中,当该可执行指令被处理器执行时实现上述的刷机方法;或者,该集成电路或芯片可以通过该接口接收可执行指令并传输给该处理器执行,以实现上述的刷机方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的刷机方法的代码部分。
图11是根据一示例性实施例示出的一种用于刷机的装置1100的框图。例如,装置1100可以被提供为一服务器。参照图11,装置1100包括处理组件1122,其进一步包括一个或多个处理器,以及由存储器1132所代表的存储器资源,用于存储可由处理组件1122的执行的指令,例如应用程序。存储器1132中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1122被配置为执行指令,以执行上述刷机方法。
装置1100还可以包括一个电源组件1126被配置为执行装置1100的电源管理,一个有线或无线网络接口1150被配置为将装置1100连接到网络,和一个输入/输出接口1158。装置1100可以操作基于存储在存储器1132的操作系统。
本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (12)

1.一种刷机方法,其特征在于,包括:
获取服务器中的刷机包,所述刷机包用于更新移动终端的操作系统;
在所述刷机包与所述移动终端的机型匹配的情况下,采用所述刷机包将移动终端的操作系统从第一操作系统更新为第二操作系统,所述第一操作系统与第二操作系统为不同类型的操作系统。
2.根据权利要求1所述的方法,其特征在于,所述采用所述刷机包将移动终端的操作系统从第一操作系统更新为第二操作系统,包括:
通过所述移动终端的备用系统,将所述移动终端的操作系统从第一操作系统更新为第二操作系统。
3.根据权利要求2所述的方法,其特征在于,所述通过所述移动终端的备用系统,将所述移动终端的操作系统从第一操作系统更新为第二操作系统,包括:
接收引导程序控制模块发送的刷机指令与系统启动信息;
基于所述系统启动信息,启动所述备用系统;
通过所述备用系统以所述刷机指令,将所述移动终端的操作系统从第一操作系统更新为第二操作系统。
4.根据权利要求1所述的方法,其特征在于,所述采用所述刷机包将移动终端的操作系统从第一操作系统更新为第二操作系统,包括:
清除分区中所述第一操作系统的数据;
将所述第二操作系统的刷机包刷入所述分区,以使所述移动终端的操作系统从第一操作系统更新为第二操作系统。
5.根据权利要求4所述的方法,其特征在于,所述第一操作系统的数据为用户数据,所述分区为第一分区,所述清除分区中所述第一操作系统的数据,包括:
在调用所述第一方法对所述第一分区中的用户数据清除失败的情况下,调用第二方法对所述用户数据进行清除;
在调用所述第二方法对所述用户数据清除失败的情况下,在所述第一分区中填充目标数据并格式化所述第一分区。
6.根据权利要求4所述的方法,其特征在于,所述第一操作系统的数据为非用户数据,所述非用户数据包括关键数据与非关键数据,所述分区为第二分区,所述清除分区中所述第一操作系统的数据,包括:
存储所述第二分区的非用户数据中的关键数据;
在调用所述第一方法对所述非关键数据清除失败的情况下,调用第二方法对所述非用户数据进行清除;
在调用所述第二方法对所述非用户数据清除失败的情况下,在所述第二分区中填充目标数据并格式化所述第二分区;
将所述关键数据恢复至所述第二分区。
7.根据权利要求4所述的方法,其特征在于,所述刷机包括至少一个系统镜像,所述将所述第二操作系统的刷机包刷入所述分区,包括:
在所述系统镜像为压缩格式的情况下,解析所述系统镜像并将解析后的所述系统镜像刷入所述分区;
在所述系统镜像为非压缩格式的情况下,将所述系统镜像刷入所述分区。
8.根据权利要求4所述的方法,其特征在于,所述分区为第一分区,所述将所述第二操作系统的刷机包刷入所述分区,包括:
将所述第一分区中刷机包的至少一个系统镜像拷贝至内存;
卸载所述第一分区;
将所述至少一个系统镜像刷入所述第一分区。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据预定时长、所述移动终端的处理器比率与所述刷机包的大小比率,确定在每个更新阶段中,更新所述移动终端的操作系统的更新时长;
在不同的阶段,以不同的更新时长更新所述移动终端的操作系统。
10.一种刷机装置,其特征在于,包括:
接收模块,被配置为获取服务器中的刷机包,所述刷机包用于更新移动终端的操作系统;
刷机模块,被配置为在所述刷机包与所述移动终端的机型匹配的情况下,采用所述刷机包将移动终端的操作系统从第一操作系统更新为第二操作系统,所述第一操作系统与第二操作系统为不同类型的操作系统。
11.一种移动终端,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
执行权利要求1~9任一所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该程序指令被处理器执行时实现权利要求1~9中任一项所述方法的步骤。
CN202310416844.3A 2023-04-18 2023-04-18 刷机方法、装置、移动终端与可读存储介质 Pending CN118819567A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310416844.3A CN118819567A (zh) 2023-04-18 2023-04-18 刷机方法、装置、移动终端与可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310416844.3A CN118819567A (zh) 2023-04-18 2023-04-18 刷机方法、装置、移动终端与可读存储介质

Publications (1)

Publication Number Publication Date
CN118819567A true CN118819567A (zh) 2024-10-22

Family

ID=93082919

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310416844.3A Pending CN118819567A (zh) 2023-04-18 2023-04-18 刷机方法、装置、移动终端与可读存储介质

Country Status (1)

Country Link
CN (1) CN118819567A (zh)

Similar Documents

Publication Publication Date Title
CN113110852B (zh) 固件升级方法、装置及存储介质
CN107967141B (zh) 操作系统升级方法、装置及终端
US8719810B2 (en) Program upgrade system and method for over the air-capable mobile terminal
KR20200090010A (ko) 펌웨어 업데이트 방법, 이를 위한 전자 장치 및 저장 매체
CN107273160A (zh) 一种版本升级的方法及装置
RU2641257C2 (ru) Способ и аппаратура для управления устройствами
CN107357613B (zh) 应用更新方法、装置及计算机可读存储介质
CN111712794B (zh) 一种分功能模块安装应用程序的方法
KR20100081720A (ko) 포타 서비스 방법 및 시스템
US10067756B2 (en) Communication apparatus, communication system, and communication method
CN110865837B (zh) 一种进行系统升级的方法和终端
CN111221559A (zh) 应用更新方法、装置、存储介质、终端及服务器
CN115328563B (zh) 系统启动方法及电子设备
US20150363188A1 (en) Information Processing Device and Information Processing System
CN105683916A (zh) 通信装置、通信系统、通信方法和通信程序
CN111459523A (zh) 一种画质芯片软件升级方法、装置、电子设备及存储介质
CN112181406B (zh) 一种渲染引擎的共享方法和装置
CN111158735B (zh) 一种热补丁文件处理方法及通信终端
CN104866349A (zh) 应用更新方法及装置
CN118819567A (zh) 刷机方法、装置、移动终端与可读存储介质
CN115562732B (zh) 一种开机方法、电子设备及计算机存储介质
CN110673868B (zh) 系统数据处理方法、装置以及存储介质
CN116048551A (zh) 一种打印机驱动安装方法、装置和可读存储介质
CN114138343A (zh) 一种终端及终端启动方法
CN114138293A (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