CN113010195B - 一种***升级方法、存储介质及终端设备 - Google Patents
一种***升级方法、存储介质及终端设备 Download PDFInfo
- Publication number
- CN113010195B CN113010195B CN201911319025.7A CN201911319025A CN113010195B CN 113010195 B CN113010195 B CN 113010195B CN 201911319025 A CN201911319025 A CN 201911319025A CN 113010195 B CN113010195 B CN 113010195B
- Authority
- CN
- China
- Prior art keywords
- partition
- package
- upgraded
- operating system
- upgrade
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种***升级方法、存储介质及终端设备,所述方法通过预先将操作***的升级包拆分为基础包和若干分区包,在升级时,首先获取基础包以及若干分区包中各分区包的地址信息;然后根据基础包确定待升级的分区包,并根据待升级的分区包对应的地址信息下载其对应的分区包,最后在该待升级的分区包升级完毕后删除其对应的分区包以释放占用的空间,并继续执行下一待分区包的下载以及升级过程,这样在升级过程中,仅需要终端设备的可用空间容量大于基础包以及分区包中最大的升级包的大小,就可以升级成功,从而降低了操作***升级对终端设备的可用空间的需求。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种***升级方法、存储介质及终端设备。
背景技术
目前***升级过程中需要终端设备的可用空间容量大于升级包容量,例如,当升级包的大小为2G时,终端设备的可用空间容量需要大于2G。然而,随着终端设备功能越来越多,内置的应用程序以及用户自行安装的应用程序都会越来越多,从而导致终端设备的可用空间越来越小。那么当需要***升级时,可能会出现因终端设备的可用空间不足而导致升级失败的现象。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种***升级方法、存储介质及终端设备,以解决现有***升级需要终端设备预留可用空间容量大的问题。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种***升级方法,其包括:
获取操作***对应的升级文件中的基础包,以及所述升级文件中的各分区包分别对应的地址信息,其中,分区包对应的地址信息用于下载分区包;
根据所述基础包以及各分区包括的地址信息,对所述操作***进行升级。
所述***升级方法,其中,各分区包是根据所述操作***中满足预设条件的各分区文件打包得到的文件包,其中,所述预设条件为分区文件对应的所需存储空间大于预设阈值。
所述***升级方法,其中,所述预设阈值的确定过程包括:
在所述升级文件中的各分区文件对应的所需存储空间中选取最大所需存储空间;
根据所述最大所需存储空间确定所述操作***对应的预设阈值,以使得所述基础包对应的所需存储空间小于或等于最大所需存储空间。
所述***升级方法,其中,所述根据所述基础包以及各分区包括的地址信息,对所述操作***进行升级具体包括:
根据所述基础包确定一待升级的分区包,并根据确定得到的待升级的分区包对应的地址信息下载所述待升级的分区包,以通过所述待升级的分区包对其对应的操作***的分区进行升级;
当所述待升级的分区包对应的操作***的分区升级完毕后,删除所述待升级的分区包,并继续根据基础包确定待升级的分区包的步骤,直至操作***的待升级的分区包升级完毕;
当所有待升级的分区包升级完成后,根据所述基础包对所述操作***进行升级,以完成操作***升级。
所述***升级方法,其中,所述根据基础包确定待升级的分区包,并根据所述待升级的分区包对应的地址信息下载所述待升级的分区包,以通过所述待升级的分区包对其对应的操作***的分区进行升级具体包括:
根据所述基础包确定所有待升级的分区包,并在所有待升级的分区包中选取一待升级的分区包;
获取所述待升级的分区包对应的地址信息,并根据下载到的分区包对所述待升级的分区包对应的操作***的分区进行升级。
所述根据所述基础包确定所有待升级的分区包,并在所有待升级的分区包中选取一待升级的分区包具体包括:
根据基础包确定所有待升级的分区包,获取获取各分区包所需存储空间;
根据获取到的各分区包所需存储空间在所有待升级的分区包中选取一待升级的分区包,其中,选取得到的待升级的分区包所需存储空间为所有待升级的分区包中所需存储空间最大的待升级的分区包。
所述***升级方法,其中,所述基础包携带升级校验信息;所述获取操作***对应的升级文件中的基础包,以及所述升级文件中的各分区包分别对应的地址信息具体包括:
获取操作***对应的升级文件中的基础包,并根据所述基础包携带的升级校验信息对所述基础包进行校验;
当所述基础包校验成功时,获取若干分区包中各分区包的地址信息;
当所述基础包校验失败时,执行获取操作***对应的升级文件包中的基础包的步骤。
所述***升级方法,其中,所述获取操作***对应的基础包以及若干分区包中各分区包的地址信息之前包括:
检测所述操作***是否处于待升级状态;
当所述操作***处于待升级状态时,执行获取操作***对应的基础包以及若干分区包中各分区包的地址信息的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的***升级方法中的步骤。
一种终端设备,其包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如上任一所述的***升级方法中的步骤。
有益效果:与现有技术相比,本发明提供了一种***升级方法、存储介质及终端设备,所述方法通过预先将操作***的升级包拆分为基础包和若干分区包,在升级时,首先获取基础包以及若干分区包中各分区包的地址信息;然后根据基础包确定待升级的分区包,并根据待升级的分区包对应的地址信息下载其对应的分区包,最后在该待升级的分区包升级完毕后删除其对应的分区包以释放占用的空间,并继续执行下一待分区包的下载以及升级过程,这样在升级过程中,仅需要终端设备的可用空间容量大于基础包以及分区包中最大的升级包的大小,就可以升级成功,从而降低了操作***升级对终端设备的可用空间的需求。
附图说明
图1为本发明提供的***升级方法的流程图。
图2为本发明提供的***升级方法中步骤S20的流程图。
图3为本发明提供的终端设备的结构原理图。
具体实施方式
本发明提供一种***升级方法、存储介质及终端设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
发明人经过研究发现,目前***升级过程中需要终端设备的可用空间容量大于升级包容量,例如,当升级包的大小为2G时,终端设备的可用空间容量需要大于2G。然而,随着终端设备功能越来越多,内置的应用程序以及用户自行安装的应用程序都会越来越多,从而导致终端设备的可用空间越来越小。那么当需要***升级时,可能会出现因终端设备的可用空间不足而导致升级失败的现象。
为了解决上述问题,在本发明实施例中,通过预先将操作***的升级包拆分为基础包和若干分区包,在升级时,首先获取基础包以及若干分区包中各分区包的地址信息;然后根据基础包确定待升级的分区包,并根据待升级的分区包对应的地址信息下载其对应的分区包,最后在该待升级的分区包升级完毕后删除其对应的分区包以释放占用的空间,并继续执行下一待分区包的下载以及升级过程,这样在升级过程中,仅需要终端设备的可用空间容量大于基础包以及分区包中最大的升级包的大小,就可以升级成功,从而降低了操作***升级对终端设备的可用空间的需求。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
图1是本实施例提供的一种***升级方法的流程示意图。该方法可以由***升级装置来执行,所述装置可以由软件实现,应用于诸如智能手机、平板电脑或个人数字助理等之类的安装有操作***的智能终端上。参见图1,本实施例提供的***升级方法具体包括:
S10、获取操作***对应的升级文件中的基础包,以及所述升级文件中的各分区包分别对应的地址信息,其中,分区包对应的地址信息用于下载分区包。
具体地,目前***升级(例如,安卓***以及苹果***等)过程中需要终端设备的可用空间容量大于升级包容量,例如,当升级包的大小为2G时,终端设备的可用空间容量需要大于2G。然而,随着终端设备功能越来越多,内置的应用程序以及用户自行安装的应用程序都会越来越多,从而导致终端设备的可用空间越来越小。那么当需要***升级时,可能会出现因终端设备的可用空间不足而导致升级失败的现象。由此,本实施例中将操作***的升级文件拆分为基础包以及若干分区包,其中,所述基础包包括操作***的升级配置文件等升级数据,分区包包括其对应的***分区对应的升级数据,其中,所述基础包中包含的升级数据与分区包中包含的升级数据不同。例如,操作***的升级文件包括升级数据A,分区1的升级数据B以及分区2的升级数据C,并且分区1和分区2分别单独打包,那么操作***的升级文件包括基础包、分区包1和分区包2,其中,基础包括包含升级数据A,分区包1包含分区1的升级数据B,分区包2包含分区2的升级数据C。
所述基础包以及若干分区包中每个分区包均相互独立存储。由此,在获取操作***的升级包时,所述基础包和若干分区包可以单独下载,例如,单独下载基础包等。此外,所述基础包内包含有操作***的升级信息、校验信息以及部分镜像文件和升级程序,各分区包内包含其对应的操作***的分区的升级文件,例如,分区包内包括system分区对应升级文件等。
进一步,所述地址信息为分区包的存储地址,每个分区包对应的存储地址不同,例如,system分区包对应的存储地址为地址A,vendor分区包对应的存储地址为地址B,地址A和地址B不同。那么根据地址A可以下载到system分区包,根据地址B可以下载到vendor分区包。此外,所述获取得到各分区包的地址信息可以存储于预设存储区。
进一步,所述分区包是根据所述操作***中分区文件单独打包得到的文件包,并且该分区包包括的文件数据可以实现对该分区包对应的***分区进行升级。可以理解的是,每个分区包对应一个操作***的分区,该分区包是由该操作***的分区对应的分区文件打包而成,并且通过该分区包可以对该分区包对应的操作***的分区进行升级。当然,值得说明的,每个分区包对应的操作***的分区不同。
此外,为了避免分区包下载次数过多,所述分区包是根据所述操作***中满足预设条件的各分区文件打包得到的文件包。可以理解的是,在生成分区包时,需要判断所述分区包对应的分区文件是否满足预设条件,当满足预设条件时,将分区文件从操作***的升级文件中分离出来并单独打包,当不满足预设条件时,则将分区保留在操作***的升级文。相应的,在本实施例的一个可能实现方式中,所述分区包的生成过程可以为:获取操作***对应的升级文件中携带各分区文件,并分别判断各分区文件是否满足预设条件,对于满足预设条件的分区文件,将该分区文件从操作***对应的升级文件中分离出来并单独打包以生成分区包;对于未满足预设条件的分区文件,将该分区文件保留与操作***对应的升级文件内,并去除满足预设条件的分区文件的升级文件进行打包以生成基础包。
进一步,在本实施例的一个实现方式中,所述预设条件为所述预设条件为分区文件对应的所需存储空间大于预设阈值。可以理解的是,若干分区包中每个分区包所处的存储空间均大于预设阈值,而基础包内写的各分区文件所需要的存储空间均小于或者等于预设阈值。由此,在对操作***的分区进行单独打包时,可以分别获取操作***的各分区的分区文件的文件大小,并将获取到的各文件大小与预设阈值进行比较,以获取到文件大小大于或者等于预设阈值的候选分区文件,再将各候选分区文件分别从操作***的升级文件中分离出来,并分别单独打包以得到分区包。而对于文件大小小于预设阈值的分区文件,保留在操作***的升级文件,最后对保留在操作***的升级文件中的所有文件一起打包,以得到基础包。这样一方面可以减少基础包的文件大小,另一方面可以避免分区包的数量过多。当然,值得说明的,所述用于单独打包的操作***的分区文件为可以独立进行升级的分区文件。
举例说明:以Andriod8.0***为例,预设阈值为300M,对于该操作***中的升级文件中仅有system分区的升级文件的文件大小和vendor分区的升级文件的文件大小大于300M,这样分别将system分区的升级文件和vendor分区的升级文件从操作***的升级文件分离处理,单独打包以形成system分区包和vendor分区包。其中,system分区包内存储有system分区对应的升级文件,所述升级文件可以包括system.new.dat文件、system.patch.dat以及system.taensfer.list文件,所述vendor分区包内存储有vendor分区对应的升级文件,所述升级文件可以包括vendor.new.dat文件、vendor.patch.dat以及vendor.taensfer.list文件。这样可以将1.38G的操作***升级包括拆分为86M的基础包、893M的vendor分区包以及system分区包。
进一步,所述预设阈值可以是预先设置,也可以是根据操作***的升级文件包括的各分区文件对应的所需存储空间确定。在本实施例的一个实现方式中,所述预设阈值是根据操作***的升级文件包括的各分区文件对应的所需存储空间确定。相应的,所述预设阈值的确定过程包括:
在所述升级文件中的各分区文件对应的所需存储空间中选取最大所需存储空间;
根据所述最大所需存储空间确定所述操作***对应的预设阈值,以使得所述基础包对应的所需存储空间小于或等于最大所需存储空间。
具体地,所述升级文件中各分区文件对应的所需存储空间指的所述升级文件可以用于单独为操作***进行升级的分区文件对应的所需存储空间。可以理解的是,在选取最大所需存储空间时,可以先获取升级文件中可以单独为操作***进行升级的第一分区文件,之后在确定各第一分区文件对应的所需存储空间,最后在确定的各所需存储空间中选取最大所需存储空间,以得到最大所需存储空间。
进一步,在获取到最大所需存储空间后,根据最大所需存储空间确定预设阈值,当根据预设阈值将分区文件从操作***的升级文件中分离后,剩余的升级文件对应的所需存储空间小于或等于最大所需存储空间,即基础包对应的所需存储空间小于或等于最大所需存储空间。此外,在本实施例的一个可能实现方式中,所述根据最大所需存储空间确定预设阈值的过程可以为:将最大所需存储空间作为目标存储空间,最大所需存储空间对应的分区文件作为目标分区文件;将所述目标文件从升级文件生成去除,并根据去除得到的升级文件对应的第一所需存储空间;若第一所需存储空间大于最大所需存储空间,则将满足预设要求的所需存储空间作为目标存储空间,所需存储空间大于或等于目标存储空间的所有分区文件作为目标分区文件,并继续执行将所述目标文件从升级文件生成去除的步骤,其中,所述预设要求为该所需存储空间为各分区文件对应的所有所需存储空间中小于目标存储空间的所有所需存储空间中的最大值;若第一所述存储空间小于或等于最大所需存储空间,则将目标存储空间作为预设阈值。
举例说明:操作***的升级文件对应的所需存储空间为1500MB,操作***的升级文件包括可以5个可以单独打包的分区文件,分别记为分区文件A、分区文件B、分区文件C、分区文件D以及分区文件E,其中,分区文件A对应的所需存储空间为300MB,分区文件B对应的所需存储空间为200MB、分区文件C对应的所需存储空间为100MB、分区文件D对应的所需存储空间为300MB以及分区文件E对应的所需存储空间为500MB。所述预设阈值的确定过程可以为:首先确定最大所需空间为500MB,那么将预设阈值设置为500MB,此时基础包对应的所需存储空间为1000MB,1000MB大于500MB,此时将预设阈值设置300MB,那么单独打包的分区文件分别为分区文件A、分区文件D以及分区文件E,分区文件A、分区文件D以及分区文件E对应的所需存储空间的和为1100MB,基础包对应的所需存储空间为400MB,400MB小于500MB,从而将预设阈值设定为300MB。
进一步,在本实施例的一个实现方式中,所述基础包和若干分区包可以是在操作***的源码编译环境中编译操作***升级包生成的,并且在生成所述基础包和若干分区包后,可以将所述基础包和若干分区包布置在升级服务器上,并为每个分区包分配存储地址。这样当终端设备进行操作***升级时,获取通过升级服务器获取到基础包以及每个分区包的存储地址,并且根据所述存储地址可以从所述升级服务器下载到各分区包。当然,在实际应用中,所述分区包的存储地址可以存储于所述基础包内,当获取到所述基础包后,可以通过解析所述基础包以得到各分区包的存储地址。而各分区包可以布置在升级服务器,也可以部署在其他服务器(如,云服务器等),只要终端设备可以根据存储地址下载到分区包即可。
进一步,在本实施例的一个实现方式中,在获取基础包之前,可以先检测操作***是否需要升级。从而,所述获取操作***对应的基础包以及若干分区包中各分区包的地址信息之前包括:
检测所述操作***是否处于待升级状态;
当所述操作***处于待升级状态时,执行获取操作***对应的基础包以及若干分区包中各分区包的地址信息的步骤。
具体地,所述检测所述操作***是否处于带升级状态可以是将获取操作***的本地版本号与升级服务器上部署的操作***的远程版本号进行比较,当本地版本号小于远程版本号时,判定所述操作***处于待升级状态;当本地版本号等于远程版本号时,判定所述操作***未处于待升级状态;当本地版本号大于远程版本号时,继续执行将获取操作***的本地版本号与升级服务器上部署的操作***的远程版本号进行比较的步骤,直至本地版本号大于远程版本号的连续判定次数达到预设次数时,向升级服务器发送反馈信息,以告知升级服务器操作***版本布置错误。此外,当所述操作***处于待升级状态时,可以产生提示信息以提示操作***需要升级,并在接收到升级指令时,再执行获取操作***对应的基础包以及若干分区包中各分区包的地址信息的步骤。这样可以根据用户的需求执行升级操作,给用户的使用带来方便。当然,值得说明的,在终端设备开启自动更新操作***的功能时,当所述操作***处于待升级状态时,可以直接执行获取操作***对应的基础包以及若干分区包中各分区包的地址信息的步骤。
S20、根据所述基础包以及各分区包括的地址信息,对所述操作***进行升级。
具体地,所述下载所述待升级的分区包指的是根据所述地址信息将所述待升级的分区包下载至终端设备内,以使得终端设备存储有该带升级的分区包。例如,将待升级的分区包下载至data分区内。所述基础包内包含有升级信息,所述升级信息可以以升级脚本的形式存储,该升级脚本内包括有各分区包对应的待升级的分区。可以理解的是,在对操作***进行升级时,根据基础包确定各分区包括对应的待升级的分区,并对各待升级的分区逐一进行升级。
进一步,在本实施例的一个实现方式中,如图2所示,所述根据所述基础包以及各分区包括的地址信息,对所述操作***进行升级具体包括:
S21、根据所述基础包确定待升级的分区包,并根据所述待升级的分区包对应的地址信息下载所述待升级的分区包,以通过所述待升级的分区包对其对应的操作***的分区进行升级;
S22、当所述待升级的分区包对应的操作***的分区升级完毕后,删除所述待升级的分区包,并继续根据基础包确定待升级的分区包的步骤,直至操作***的待升级的分区包升级完毕;
S23、当所有待升级的分区包升级完成后,根据所述基础包对所述操作***进行升级,以完成操作***升级。
具体地,在所述步骤S21中,所述待升级的分区包为单独打包的若干分区中的一个分区包,所述待升级的分区包为当前需要被执行的分区包。在确定待升级的分区包后,可以根据该待升级的分区包对应的地址信息下载所述待升级的分区包,以对待升级的分区包对应的分区进行升级。此外,当该待升级的分区包升级完毕后,将该待升级的分区包从终端设备的存储空间中删除,以释放待升级的分区包所占用的存储空间,以便于下载其他待升级的分区包。此外,各分区包可以配置有升级状态,所述升级状态包括升级完成状态和未升级状态,并且各分区包对应的升级状态存储于基础包内,当待升级的分区包升级完毕后,将基础包中该待升级的分区包的升级状态修改为升级完毕状态。由此,在根据确定待升级的分区包时,选取所有分区包中处于未升级状态的各参考分区包,然后在各参考分区包中选取参考分区包作为待升级的分区包,这样可以避免分区包的重复下载以及重复升级,提高了操作***的升级速度。当然,在实际应用中,在各分区包进行升级完成后,可以将各分区包对应的升级状态进行更新,例如,在分区包A完成升级前,分区包A的升级状态为未升级状态,那么当分区包A完成升级后,将分区包A的升级状态修改为升级完毕状态。
进一步,在本实施例的一个实现方式中,所述根据基础包确定待升级的分区包,并根据所述待升级的分区包对应的地址信息下载所述待升级的分区包,以通过所述待升级的分区包对其对应的操作***的分区进行升级具体包括:
根据所述基础包确定所有待升级的分区包,并在所有待升级的分区包中选取一待升级的分区包;
获取所述待升级的分区包对应的地址信息,并根据下载到的分区包对所述待升级的分区包对应的操作***的分区进行升级。
具体地,所述根据所述基础包确定所有待升级的分区包指的根据基础包内存储的各分区包的升级状态,并将所有升级状态为未升级状态的分区包作为待升级的分区包,并在获取到的所有待升级的分区包内选取一个作为待升级的分区包。其中,在获取到的所有待升级的分区包内选取一个作为待升级的分区包的选取方式可以包括:随机选取以及按照预设升级顺序选取。在本实施例中的一个可能实现方式中,基础包携带各分区包的升级顺序,相应的,在获取到的所有待升级的分区包内选取一个作为待升级的分区包为各分区包的升级顺序选取升级顺序优选的分区包,并将选取到分区包作为待升级的分区包。其中,所述升级顺序可以为预先设置,例如,升级顺序为操作***对应的分区文件整体打包时对应的各分区的升级顺序。此外,所述升级顺序指的是各分区包的升级向后顺序,例如,分区包A的升级顺序为第一位,分区包B的升级顺序为第二位,那么在对分区包进行升级时,需要先完成分区包A的升级后,再执行分区包B的升级。由此,在获取到基础包可以根据基础包携带的各分区的升级顺序确定待升级的分区包。
进一步,在所述步骤S22中,所述待升级的分区包对应的操作***的分区升级完毕指的是采用待升级的分区包携带的升级文件对操作***进行升级完毕,所述操作***升级指的是对分区包对应的终端设备存储的操作***中,该分区包对应的分区文件进行升级。所述删除所述待升级的分区包指的是将待升级的分区包从终端设备中删除,以释放终端设备的存储空间。例如,所述待升级的分区包为system分区包,那么在获取到system分区包后,可以解压所述system分区包采用解压得到的文件对终端装备装载的操作***的system分区进行升级,并当system分区成功后,删除所述system分区包。其中,所述删除system分区包指的是将所述system分区包从所述终端设备中删除,以释放system分区包占用的存储空间。
进一步,在所述步骤S23中,所述分区包为操作***中满足预设条件的分区文件单独打包得到,而操作***中还可以包括未满足预设条件的分区文件。由此,当所有待升级的分区包升级完成后,读取所述基础包中未满足预设条件的分区对应的升级数据,并采用读取到升级数据对各未满足预设条件的分区进行升级。其中,所述未满足预设条件的分区对应的升级数据存储于基础包,在获取到基础包,可以通过解析所述基础包的方式获取到未满足预设条件的分区对应的升级数据,并根据获取到未满足预设条件的分区对应的升级数据对操作***进行升级。例如,所述基础包中包含有分区A对应的升级数据,而待分区A的升级数据所需存储空间小于或等于预设阈值,在将分区包单独打包时,将分区A的升级数据与基础包共同打包,那么在所有单独打包的分区包升级完毕后,根据基础包中携带的分区A对应的升级数据对分区A进行升级。
此外,本实施例在单独打包的分区包升级完毕后,在采用基础包对操作***进行升级,可以避免基础包升级后占用终端设备的剩余存储空间,而造成分区安装包升级失败。这是由于基础包所需存储空间小于最大分区包所需存储空间,那么当终端设备剩余的存储空间等于基础包所需存储空间与最大分区包所需存储空间时,先升级基础包后,由于基础包携带各分区包的升级信息,从而无法将基础包删除,而基础包升级会升级***的占用空间大于未升级前的占用空间,则会造成分区包无法下载。然而,先升级分区包在分区包升级后删除分区包,则不会出现升级包无法下载的问题。
在本实施例的一个实现方式中,为了避免所需存储空小的升级包先升级后,因该升级包升级后操作***所占存储空间变大,而导致剩余审查空间无法满足最大所需存储空间的分区包无法下载,从而所述根据所述基础包确定所有待升级的分区包,并在所有待升级的分区包中选取一待升级的分区包具体包括:
根据基础包确定所有待升级的分区包,获取获取各分区包所需存储空间;
根据获取到的各分区包所需存储空间在所有待升级的分区包中选取一待升级的分区包,其中,选取得到的待升级的分区包所需存储空间为所有待升级的分区包中所需存储空间最大的待升级的分区包。
具体地,选取到的待升级的分区包是所有待升级的分区包中所需存储空间最大,可以理解的是,在对单独打包的各分区包进行升级时,可以按照各升级包所需的存储空间由大到小的顺序进行升级,即各单独打包的分区包的升级顺序可以为各升级包所需的存储空间的大小顺序。例如,单独打包的分区包A所需存储空间为500MB,单独打包的分区包B所需存储空间为800MB,那么在对单独打包的分区包进行打包时,先对分区包B进行升级,在分区包B升级完成后,将分区包B删除后对分区包A进行升级。
进一步,在本实施例的一个实现方式中,为了验证操作***升级的正确性,在获取到基础包后需要对所述基础包进行验证,以确定所述基础包是否为所述操作***所需的升级包。由此,所述基础包携带升级校验信息,并且在获取到基础包后,通过基础包携带的校验信息对所述基础包进行校验。相应的,获取操作***对应的升级文件中的基础包,以及所述升级文件中的各分区包分别对应的地址信息,具体包括:
获取操作***对应的升级文件中的基础包,并根据所述基础包携带的升级校验信息对所述基础包进行校验;
当所述基础包校验成功时,获取若干分区包中各分区包的地址信息;
当所述基础包校验失败时,执行获取操作***对应的升级文件中的基础包的步骤。
具体地,所述操作***在升级时,可以先获取基础包并解析所述基础包以得到其携带校验信息(例如,一组验证码),并将所述校验信息与操作***自身存储的校验信息进行比对,当两者一致时,判定所述基础包为所述操作***所需的基础包,此时在根据所述基础包获取各分区包的地址信息,其中,所述基础包与各分区包的地址信息预先关联,在获取到基础包后,可以根据基础包确定各分区包的地址信息,例如,各分区包的地址信息存储于所述基础包内等。当然,在校验失败的情况,需要重新执行获取操作***对应的基础包等。此外,在基础包校验成功后,可以重新启动操作***并进入***修改模式,以便于在***修改模式下进行分区包的升级操作,即在在所述***修复模型下执行根据基础包确定待升级的分区包的步骤。
综上所述,本实施例提供了一种***升级方法、存储介质及终端设备,所述方法通过预先将操作***的升级包拆分为基础包和若干分区包,在升级时,首先获取基础包以及若干分区包中各分区包的地址信息;然后根据基础包确定待升级的分区包,并根据待升级的分区包对应的地址信息下载其对应的分区包,最后在该待升级的分区包升级完毕后删除其对应的分区包以释放占用的空间,并继续执行下一待分区包的下载以及升级过程,这样在升级过程中,仅需要终端设备的可用空间容量大于基础包以及分区包中最大的升级包的大小,就可以升级成功,从而降低了操作***升级对终端设备的可用空间的需求。
基于上述***升级方法,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的***升级方法中的步骤。
基于上述***升级方法,本发明还提供了一种终端设备,如图3所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
此外,上述存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种***升级方法,其特征在于,其包括:
获取操作***对应的升级文件中的基础包,以及所述升级文件中的各分区包分别对应的地址信息,其中,分区包对应的地址信息用于下载分区包;
其中,各分区包是根据所述操作***中满足预设条件的各分区文件打包得到的文件包,其中,所述预设条件为分区文件对应的所需存储空间大于预设阈值;
根据所述基础包以及各分区包括的地址信息,对所述操作***进行升级;
所述预设阈值的确定过程包括:
在所述升级文件中的各分区文件对应的所需存储空间中选取最大所需存储空间;
根据所述最大所需存储空间确定所述操作***对应的预设阈值,以使得所述基础包对应的所需存储空间小于或等于最大所需存储空间;
将最大所需存储空间作为目标存储空间,所述最大所需存储空间对应的分区文件作为目标分区文件,将所述目标分区文件从升级文件生成去除,并根据去除得到的升级文件对应的第一所需存储空间,若所述第一所需存储空间大于所述最大所需存储空间,则将满足预设要求的所需存储空间作为目标存储空间,所述所需存储空间大于或等于所述目标存储空间的所有分区文件作为目标分区文件,并继续执行将所述目标分区文件从升级文件生成去除的步骤;
所述基础包以及若干分区包中每个分区包均相互独立存储;
根据所述基础包确定待升级的分区包,所述基础包包括操作***的升级信息、文件大小小于预设阈值的分区文件、校验信息以及部分镜像文件和升级程序,各分区包包括其对应的***分区对应的升级数据。
2.根据权利要求1所述***升级方法,其特征在于,所述根据所述基础包以及各分区包括的地址信息,对所述操作***进行升级具体包括:
根据所述基础包确定一待升级的分区包,并根据确定得到的待升级的分区包对应的地址信息下载所述待升级的分区包,以通过所述待升级的分区包对其对应的操作***的分区进行升级;
当所述待升级的分区包对应的操作***的分区升级完毕后,删除所述待升级的分区包,并继续根据基础包确定待升级的分区包的步骤,直至操作***的待升级的分区包升级完毕;
当所有待升级的分区包升级完成后,根据所述基础包对所述操作***进行升级,以完成操作***升级。
3.根据权利要求2所述***升级方法,其特征在于,所述根据所述基础包确定待升级的分区包,并根据所述待升级的分区包对应的地址信息下载所述待升级的分区包,以通过所述待升级的分区包对其对应的操作***的分区进行升级具体包括:
根据所述基础包确定所有待升级的分区包,并在所有待升级的分区包中选取一待升级的分区包;
获取所述待升级的分区包对应的地址信息,并根据下载到的分区包对所述待升级的分区包对应的操作***的分区进行升级。
4.根据权利要求3所述***升级方法,其特征在于,所述根据所述基础包确定所有待升级的分区包,并在所有待升级的分区包中选取一待升级的分区包具体包括:
根据基础包确定所有待升级的分区包,获取各分区包所需存储空间;
根据获取到的各分区包所需存储空间在所有待升级的分区包中选取一待升级的分区包,其中,选取得到的待升级的分区包所需存储空间为所有待升级的分区包中所需存储空间最大的待升级的分区包。
5.根据权利要求1所述***升级方法,其特征在于,所述基础包携带升级校验信息;所述获取操作***对应的升级文件中的基础包,以及所述升级文件中的各分区包分别对应的地址信息具体包括:
获取操作***对应的升级文件中的基础包,并根据所述基础包携带的升级校验信息对所述基础包进行校验;
当所述基础包校验成功时,获取若干分区包中各分区包的地址信息;
当所述基础包校验失败时,执行获取操作***对应的升级文件包中的基础包的步骤。
6.根据权利要求1所述***升级方法,其特征在于,所述获取操作***对应的基础包以及若干分区包中各分区包的地址信息之前包括:
检测所述操作***是否处于待升级状态;
当所述操作***处于待升级状态时,执行获取操作***对应的基础包以及若干分区包中各分区包的地址信息的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1~6任意一项所述的***升级方法中的步骤。
8.一种终端设备,其特征在于,包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如权利要求1-6任意一项所述的***升级方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911319025.7A CN113010195B (zh) | 2019-12-19 | 2019-12-19 | 一种***升级方法、存储介质及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911319025.7A CN113010195B (zh) | 2019-12-19 | 2019-12-19 | 一种***升级方法、存储介质及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113010195A CN113010195A (zh) | 2021-06-22 |
CN113010195B true CN113010195B (zh) | 2023-03-10 |
Family
ID=76382651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911319025.7A Active CN113010195B (zh) | 2019-12-19 | 2019-12-19 | 一种***升级方法、存储介质及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113010195B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113791811B (zh) * | 2021-08-02 | 2024-06-21 | 瑞芯微电子股份有限公司 | 固件升级方法和存储设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375744A (zh) * | 2010-08-11 | 2012-03-14 | 深圳Tcl新技术有限公司 | 一种网络电视升级方法 |
CN105843656A (zh) * | 2016-04-22 | 2016-08-10 | Tcl集团股份有限公司 | 磁盘空间不足的***升级方法、终端设备及服务器 |
CN107766067A (zh) * | 2017-09-28 | 2018-03-06 | 福州瑞芯微电子股份有限公司 | 一种提升压缩镜像烧录速度的方法、存储介质及计算机 |
CN108614837A (zh) * | 2016-12-13 | 2018-10-02 | 杭州海康威视数字技术股份有限公司 | 文件存储和检索的方法及装置 |
CN109460245A (zh) * | 2018-10-31 | 2019-03-12 | 北京众谊越泰科技有限公司 | 一种嵌入式***的远程升级方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8893119B2 (en) * | 2009-04-29 | 2014-11-18 | Adobe Systems Incorporated | Software selection based on estimated available storage space |
-
2019
- 2019-12-19 CN CN201911319025.7A patent/CN113010195B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375744A (zh) * | 2010-08-11 | 2012-03-14 | 深圳Tcl新技术有限公司 | 一种网络电视升级方法 |
CN105843656A (zh) * | 2016-04-22 | 2016-08-10 | Tcl集团股份有限公司 | 磁盘空间不足的***升级方法、终端设备及服务器 |
CN108614837A (zh) * | 2016-12-13 | 2018-10-02 | 杭州海康威视数字技术股份有限公司 | 文件存储和检索的方法及装置 |
CN107766067A (zh) * | 2017-09-28 | 2018-03-06 | 福州瑞芯微电子股份有限公司 | 一种提升压缩镜像烧录速度的方法、存储介质及计算机 |
CN109460245A (zh) * | 2018-10-31 | 2019-03-12 | 北京众谊越泰科技有限公司 | 一种嵌入式***的远程升级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113010195A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3333704B1 (en) | Method and apparatus for repairing kernel vulnerability | |
CN105867947B (zh) | 预置应用程序升级后的数据处理方法及装置 | |
EP2966566B1 (en) | Driver program loading method and embedded device | |
CN107769949B (zh) | 一种应用组件部署方法及部署节点 | |
CN109062617B (zh) | 一种支持多类型设备的平台的应用方法、移动终端 | |
CN110597542B (zh) | 软件自动ota升级方法及装置、电子设备 | |
CN107193593B (zh) | 一种可升级文件的升级方法、机顶盒和存储介质 | |
CN104991793A (zh) | 一种用于应用程序分包的方法、装置以及*** | |
CN105511911A (zh) | ***固件升级包的生成方法及装置 | |
CN109800005B (zh) | 一种客户端热更新方法及装置 | |
CN108509215B (zh) | 一种***软件的更换方法、装置、终端设备及存储介质 | |
US20180059978A1 (en) | Virtual disk expansion method and apparatus | |
CN111045713A (zh) | 一种计算机***的升级方法、***及装置 | |
CN110333876A (zh) | 一种数据清除方法及控制设备 | |
CN106293849B (zh) | 一种应用更新方法和终端 | |
CN110083379A (zh) | 一种服务器部件升级方法及相关装置 | |
CN110941516B (zh) | 操作***还原方法、装置、设备及存储介质 | |
CN113010195B (zh) | 一种***升级方法、存储介质及终端设备 | |
CN106933604B (zh) | 一种***升级方法及装置 | |
CN114327574A (zh) | 一种差分升级方法、电子设备及存储介质 | |
CN112214413A (zh) | 一种应用程序的测试方法、装置、设备及存储介质 | |
WO2021012170A1 (zh) | 固件启动方法、设备及计算机可读存储介质 | |
CN105278993A (zh) | 一种基于Linux***的驱动模块升级方法及装置 | |
CN111736858A (zh) | 一种终端设备的升级方法、存储介质及终端设备 | |
CN112148376A (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 |