CN108399079A - 差分升级方法及装置、终端 - Google Patents

差分升级方法及装置、终端 Download PDF

Info

Publication number
CN108399079A
CN108399079A CN201710066987.0A CN201710066987A CN108399079A CN 108399079 A CN108399079 A CN 108399079A CN 201710066987 A CN201710066987 A CN 201710066987A CN 108399079 A CN108399079 A CN 108399079A
Authority
CN
China
Prior art keywords
version
subregion
dilatation
size
difference
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.)
Withdrawn
Application number
CN201710066987.0A
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201710066987.0A priority Critical patent/CN108399079A/zh
Priority to PCT/CN2017/090082 priority patent/WO2018145392A1/zh
Publication of CN108399079A publication Critical patent/CN108399079A/zh
Withdrawn 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
    • G06F8/658Incremental updates; Differential updates
    • 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/445Program loading or initiating

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)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种差分升级方法及装置、终端;其中,该方法包括:获取终端中版本分区中的剩余空间大小,其中,版本分区用于存储系统版本的版本数据;判断剩余空间大小与差分升级包的大小之差是否小于第一预定阈值;在判断结果为小于第一预定阈值的情况下,对版本分区进行扩容;将依据差分升级包对系统版本进行升级后的版本数据写入扩容后的版本分区中。通过本发明,解决了相关技术中的版本分区大小不够导致系统版本升级失败的问题,保证了系统版本的成功升级。

Description

差分升级方法及装置、终端
技术领域
本发明涉及通信领域,具体而言,涉及一种差分升级方法及装置、终端。
背景技术
目前,差分升级技术已经广泛的应用于移动终端的系统版本升级。差分升级包很小,通过空口的方式从服务器下发,它能够实现对终端系统分区未发生变化的系统版本进行快速升级。现在,系统版本不停的优化,新的应用也不断加入,如果在旧的系统版本上通过差分升级升到的新版本大小大于了装载版本分区的大小,那么差分升级则会失败,这种情况在特别是在小内存(内存紧张)的功能机、数据卡、路由器等非智能产品的系统版本升级中常见。针对这种情况,目前的处理方式是设定一个差分包大小的阈值,在升级时如果差分包大于这个阈值则不进行系统版本的差分升级,同时上报升级失败。
针对相关技术中的上述技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种差分升级方法及装置、终端,以至少解决相关技术中的版本分区大小不够导致系统版本升级失败的问题。
根据本发明的一个实施例,提供了一种差分升级方法,包括:获取终端中版本分区中的剩余空间大小;判断剩余空间大小与差分升级包的大小之差是否小于第一预定阈值;在判断结果为小于第一预定阈值的情况下,对版本分区进行扩容;将依据差分升级包对系统版本进行升级后的版本数据写入扩容后的版本分区中。
可选地,扩容后的版本分区的空间大小与未扩容的版本分区的空间大小之差大于或者等于差分升级包的大小。
可选地,对版本分区进行扩容包括:判断与版本分区相邻的相邻分区的剩余空间是否大于第二预定阈值;在判断结果为大于第二预定阈值的情况下,将相邻分区中的预定空间借用给版本分区;其中,预定空间大于或者等于差分升级包的大小。
可选地,将相邻分区中的预定空间借用给版本分区包括:将相邻分区中的数据沿远离版本分区的方向移动预定距离;将相邻分区中空余出的预定距离所对应的空间分配给版本分区;其中,预定距离所对应的空间的大小为预定空间。
可选地,对版本分区进行扩容之后,方法还包括:在存储启动装载文件的分区对原始启动装载文件进行备份,得到备份的启动装载文件;将扩容后的版本分区的地址信息和移动后的相邻分区的地址信息更新到备份的启动装载文件中,得到更新后的启动装载文件。
可选地,在将依据差分升级包对系统版本升级后的版本数据写入扩容后的版本分区中之后,方法还包括:删除原始启动装载文件;利用更新后的启动装载文件,加载系统文件。
根据本发明的一个实施例,提供了一种差分升级装置,包括:获取模块,用于获取终端中版本分区中的剩余空间大小;判断模块,用于判断剩余空间大小与差分升级包的大小之差是否小于第一预定阈值;扩容模块,用于在判断结果为小于第一预定阈值的情况下,对版本分区进行扩容;写入模块,用于将依据差分升级包对系统版本进行升级后的版本数据写入扩容后的版本分区中。
可选地,扩容模块,还用于判断与版本分区相邻的相邻分区的剩余空间是否大于第二预定阈值;以及在判断结果为大于第二预定阈值的情况下,将相邻分区中的预定空间借用给版本分区;其中,预定空间大于或者等于差分升级包的大小。
可选地,扩容模块,还用于将相邻分区中的数据沿远离版本分区的方向移动预定距离;以及将相邻分区中空余出的预定距离所对应的空间分配给版本分区;其中,预定距离所对应的空间的大小为预定空间。
可选地,装置还包括:备份模块,用于在存储启动装载文件的分区对原始启动装载文件进行备份,得到备份的启动装载文件;更新模块,用于将扩容后的版本分区的地址信息和移动后的相邻分区的地址信息更新到备份的启动装载文件中,得到更新后的启动装载文件。
根据本发明的一个实施例,提供了一种终端,包括:处理器,用于获取终端中版本分区中的剩余空间大小,其中,版本分区用于存储系统版本的版本数据;判断剩余空间大小与差分升级包的大小之差是否小于第一预定阈值;以及在判断结果为小于第一预定阈值的情况下,对版本分区进行扩容;读写器,用于将依据差分升级包对系统版本进行升级后的版本数据写入扩容后的版本分区中。
根据本发明的又一个实施例,还提供了一种存储介质。该存储介质设置为存储用于执行以下步骤的程序代码:获取终端中版本分区中的剩余空间大小,其中,版本分区用于存储系统版本的版本数据;判断剩余空间大小与差分升级包的大小之差是否小于第一预定阈值;在判断结果为小于第一预定阈值的情况下,对版本分区进行扩容;将依据差分升级包对系统版本进行升级后的版本数据写入扩容后的版本分区中。
通过本发明,由于在版本分区中的剩余空间大小与差分升级包的大小之差小于第一预定阈值的情况下,对版本分区进行扩容,进而可以使得系统版本升级后的版本数据可以写入扩容后的版本分区中,进而可以完成系统版本升级,因此,可以解决相关技术中的版本分区大小不够导致系统版本升级失败的问题,保证了系统版本的成功升级。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种差分升级方法的移动终端的硬件结构框图;
图2是根据本发明实施例的差分升级方法的流程图;
图3是根据本发明实施例的差分升级装置的结构框图;
图4是根据本发明实施例提供的终端的结构示意图;
图5是根据本发明优选实施例提供的升级方法的流程示意图;
图6是根据本发明优选实施例提供的FLASH分区的示意图;
图7是根据本发明优选实施例提供的数据移动的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
本申请实施例1所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种差分升级方法的移动终端的硬件结构框图。如图1所示,移动终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的差分升级方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端的差分升级方法,图2是根据本发明实施例的差分升级方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取终端中版本分区中的剩余空间大小;
步骤S204,判断剩余空间大小与差分升级包的大小之差是否小于第一预定阈值;
步骤S206,在判断结果为小于第一预定阈值的情况下,对版本分区进行扩容;
步骤S208,将依据差分升级包对系统版本进行升级后的版本数据写入扩容后的版本分区中。
通过上述步骤,由于在版本分区中的剩余空间大小与差分升级包的大小之差小于第一预定阈值的情况下,对版本分区进行扩容,进而可以使得系统版本升级后的版本数据可以写入扩容后的版本分区中,进而可以完成系统版本升级,因此,可以解决相关技术中的版本分区大小不够导致系统版本升级失败的问题,保证了系统版本的成功升级。
需要说明的是,上述版本分区用于存储系统版本的版本数据,但并不限于此。
需要说明的是,在上述判断结果为大于或者等于上述第一预定阈值的情况下,可以直接进行版本的差分升级。
需要说明的是,上述扩容后的版本分区的空间大小与未扩容的版本分区的空间大小之差大于或者等于差分升级包的大小,即能够保证扩容后的版本分区能够容纳升级后的系统版本的版本数据。
需要说明的是,上述第一预定阈值可以根据实际情况进行设定,但需要说明的是,第一预定阈值为一个正数。
在本发明的一个实施例中,上述步骤S206可以表现为:判断与版本分区相邻的相邻分区的剩余空间是否大于第二预定阈值;在判断结果为大于第二预定阈值的情况下,将相邻分区中的预定空间借用给版本分区;其中,预定空间大于或者等于差分升级包的大小。即通过向相邻分区借用一定的空间来对版本分区进行扩容。
需要说明的是,上述预定空间可以根据实际情况进行设定,比如可以根据差分升级包的大小进行设定,但并不限于此。
需要说明的是,将相邻分区中的预定空间借用给版本分区可以表现为:将相邻分区中的数据沿远离版本分区的方向移动预定距离;将相邻分区中空余出的预定距离所对应的空间分配给版本分区;其中,预定距离所对应的空间的大小为预定空间。
以低于所述版本分区所在的地址的相邻分区为例来说明对版本分区的扩容:相邻分区的大小包括地址1到地址4,其中,地址1上存储数据1,地址2存储数据2,地址3存储数据3,地址4为空的,即相邻分区中数据和地址的对应关系如下:
数据1,数据2,数据3
地址1,地址2,地址3,地址4
那么,对版本分区的扩容包括:
(1)将数据3移至地址4,将数据2移至地址3,将数据1移至地址2,因而地址1此时为空,即相邻分区中数据和地址的对应关系变为:
数据1,数据2,数据3
地址1,地址2,地址3,地址4
(2)将相邻分区的起始地址变更为地址2;将空余的地址1化为版本分区里面,即将版本分区的结束地址变更为地址1,完成了对版本分区的扩容。
上述地址1对应的空间大小为上述预定空间。
需要说明的是,上述第二预定阈值可以根据实际情况进行设定,在相邻分区的剩余空间不足的情况下,还可以继续向上述相邻分区的下一个分区借用空间,以保证版本分区升级空间的需要。
需要说明的是,在上述步骤S208之前,上述方法还可以包括:将版本分区中的版本数据读出,根据差分算法,将差分升级包的数据差分升级到版本数据中,得到升级后的版本数据。
在本发明的一个实施例中,在上述步骤S206之后,上述方法还可以包括:在存储启动装载文件的分区对原始启动装载文件进行备份,得到备份的启动装载文件;将扩容后的版本分区的地址信息和移动后的相邻分区的地址信息更新到备份的启动装载文件中,得到更新后的启动装载文件。
需要说明的是,启动装载文件中记录有每个分区的空间大小和每个分区的起始地址等信息。
需要说明的是,在上述步骤S208之后,上述方法还可以包括:删除原始启动装载文件;利用更新后的启动装载文件,加载系统文件。
可选地,上述步骤的执行主体可以为终端等,但不限于此。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种差分升级装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本发明实施例的差分升级装置的结构框图,如图3所示,该装置包括:
获取模块32,用于获取终端中版本分区中的剩余空间大小;
判断模块34,与上述获取模块32连接,用于判断剩余空间大小与差分升级包的大小之差是否小于第一预定阈值;
扩容模块36,与上述判断模块34连接,用于在判断结果为小于第一预定阈值的情况下,对版本分区进行扩容;
写入模块38,与上述扩容模块36连接,用于将依据差分升级包对系统版本进行升级后的版本数据写入扩容后的版本分区中。
通过上述装置,由于在版本分区中的剩余空间大小与差分升级包的大小之差小于第一预定阈值的情况下,上述扩容模块36对版本分区进行扩容,进而可以使得系统版本升级后的版本数据可以写入扩容后的版本分区中,进而可以完成系统版本升级,因此,可以解决相关技术中的版本分区大小不够导致系统版本升级失败的问题,保证了系统版本的成功升级。
需要说明的是,上述版本分区用于存储系统版本的版本数据,但并不限于此。
需要说明的是,上述扩容后的版本分区的空间大小与未扩容的版本分区的空间大小之差大于或者等于差分升级包的大小,即能够保证扩容后的版本分区能够容纳升级后的系统版本的版本数据。
需要说明的是,上述第一预定阈值可以根据实际情况进行设定,但需要说明的是,第一预定阈值为一个正数。
在本发明的一个实施例中,上述扩容模块36,还可以用于判断与版本分区相邻的相邻分区的剩余空间是否大于第二预定阈值;以及在判断结果为大于第二预定阈值的情况下,将相邻分区中的预定空间借用给版本分区;其中,预定空间大于或者等于差分升级包的大小。
需要说明的是,上述预定空间可以根据实际情况进行设定,比如可以根据差分升级包的大小进行设定,但并不限于此。
需要说明的是,上述扩容模块36,还可以用于将相邻分区中的数据沿远离版本分区的方向移动预定距离;以及将相邻分区中空余出的预定距离所对应的空间分配给版本分区;其中,预定距离所对应的空间的大小为预定空间。
在本发明的一个实施例中,上述装置还可以包括:备份模块,与上述扩容模块36连接,用于在存储启动装载文件的分区对原始启动装载文件进行备份,得到备份的启动装载文件;更新模块,与上述扩容模块36连接,用于将扩容后的版本分区的地址信息和移动后的相邻分区的地址信息更新到备份的启动装载文件中,得到更新后的启动装载文件。
在本发明的一个实施例中,上述装置还可以包括:删除模块,用于在将依据差分升级包对系统版本升级后的版本数据写入扩容后的版本分区中之后,删除原始启动装载文件。
需要说明的是,需要说明的是,启动装载文件中记录有每个分区的空间大小和每个分区的起始地址等信息。
需要说明的是,上述更新后的启动装载文件用于加载系统文件。
需要说明的是,上述装置可以位于终端中,但并不限于此。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本发明实施例还提供了一种终端,图4是根据本发明实施例提供的终端的结构示意图,如图4所示,该终端包括:
处理器42,用于获取终端中版本分区中的剩余空间大小;判断剩余空间大小与差分升级包的大小之差是否小于第一预定阈值;以及在判断结果为小于第一预定阈值的情况下,对版本分区进行扩容;
读写器44,与上述处理器42连接,用于将依据差分升级包对系统版本进行升级后的版本数据写入扩容后的版本分区中。
通过上述终端,由于在版本分区中的剩余空间大小与差分升级包的大小之差小于第一预定阈值的情况下,上述处理器32对版本分区进行扩容,进而可以使得系统版本升级后的版本数据可以写入扩容后的版本分区中,进而可以完成系统版本升级,因此,可以解决相关技术中的版本分区大小不够导致系统版本升级失败的问题,保证了系统版本的成功升级。
需要说明的是,上述版本分区用于存储系统版本的版本数据,但并不限于此。
需要说明的是,上述扩容后的版本分区的空间大小与未扩容的版本分区的空间大小之差大于或者等于差分升级包的大小,即能够保证扩容后的版本分区能够容纳升级后的系统版本的版本数据。
需要说明的是,上述第一预定阈值可以根据实际情况进行设定,但需要说明的是,第一预定阈值为一个正数。
在本发明的一个实施例中,上述处理器42,还可以用于判断与版本分区相邻的相邻分区的剩余空间是否大于第二预定阈值;以及在判断结果为大于第二预定阈值的情况下,将相邻分区中的预定空间借用给版本分区;其中,预定空间大于或者等于差分升级包的大小。
需要说明的是,上述预定空间可以根据实际情况进行设定,比如可以根据差分升级包的大小进行设定,但并不限于此。
在本发明的一个实施例中,上述处理器42,还可以用于将相邻分区中的数据沿远离版本分区的方向移动预定距离;以及将相邻分区中空余出的预定距离所对应的空间分配给版本分区;其中,预定距离所对应的空间的大小为预定空间。
在本发明的一个实施例中,上述读写器44还用于在存储启动装载文件的分区对原始启动装载文件进行备份,得到备份的启动装载文件;以上述处理器42还可以将扩容后的版本分区的地址信息和移动后的相邻分区的地址信息更新到备份的启动装载文件中,得到更新后的启动装载文件。
在本发明的一个实施例中,上述处理器42,还可以用于在将依据差分升级包对系统版本升级后的版本数据写入扩容后的版本分区中之后,删除原始启动装载文件。
需要说明的是,需要说明的是,启动装载文件中记录有每个分区的空间大小和每个分区的起始地址等信息。
需要说明的是,上述更新后的启动装载文件用于加载系统文件。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行实施例1中的方法的步骤的程序代码。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行实施例1中的方法的步骤。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
为了更好的理解本发明,以下结合优选的实施例对本发明做进一步解释。
本发明优选实施例提出了一种动态分区的差分升级方法,通过对装载系统分区进行动态扩容,解决了分区大小不够导致升级失败问题。该方法包括:
将新旧两个系统版本的差分升级包通过空口的方式下载到移动终端,对差分升级包进行完整性校验,校验通过后,写入预留给差分包的Flash分区空间,重启手机进入Recover模式进行差分升级。
首先,读取装载版本分区的大小和装载的版本大小,算出分区的剩余空间大小。如果剩余空间大小减去差分包的大小小于某一个正数阈值,这时就必须对分区空间进行扩容,扩容的空间大小为差分包的大小。阈值取为正数是因为任何的分区都必须有一定的缓冲空间,因为分区中极有可能存在无法使用的坏块。接着在存储Bootloader文件的分区备份Bootloader文件,继续使用原始Bootloader文件继续升级流程。然后判断相邻于版本分区的分区剩余空间大小,如果剩余空间大小大于某个阈值(一般取得比较大,保证剩余空间足够),则向此分区借差分包大小的区域给版本分区,就需要把此分区的起始位置向后移差分包大小的距离,同时将此分区的地址更新到备份的Bootloader中。如果相邻分区剩余空间不够,则继续向下一个分区借空间来保证版本分区升级空间的需要。一般来讲,版本分区后的分区一般是文件系统分区或者user分区(因不同系统而异),空间都是足够的。最后UA(升级代理)完成差分升级,同时升级完成后,需要将备份的Bootloader文件更新到原始文件,重启样机完成系统加载。
图5是根据本发明优选实施例提供的升级方法的流程示意图,如图5所示,该方法具体的交互步骤如下:
S501:通过空口将版本差分升级包下载到移动终端
S502:对差分包进行完整性校验,主要是版本是否比配,包大小是否正确,数据是否被篡改。包如果不正确则此次升级直接结束。
S503:将差分包写入预留的Flash分区。
S504:读取装载版本分区的大小和装载的版本大小,算出分区的剩余空间大小。如果剩余空间大小减去差分包的大小小于某一个正数阈值,这时就必须对此分区空间进行扩容,扩容的空间大小为差分包的大小。如果版本分区空间足够,那么就UA就按照正常升级流程进行升级,升级完成重启终端。
S505:在移动相邻下一个分区之前,先对Bootloader文件进行备份,分区信息改变后,同步也要升级Bootloader文件。
S506:一般版本分区后相邻的分区为文件系统分区或者user data分区,空间剩余比较多,所以直接移动版本分区的相邻分区的数据,移动大小为差分包大小。
S507:把移动后新的分区地址更新到备份的Bootloader文件。
S508:UA执行升级流程,将版本分区的版本数据读出,同时根据查分算法,将差分包的数据差分升级到版本数据中,然后将升级后的版本数据重新写回版本分区中,完成版本升级。
S509:升级完成后,删除旧的Bootloader文件,使用新的Bootloader文件,重启终端,加载系统文件。
图6是根据本发明优选实施例提供的FLASH分区的示意图,如图6所示,该FLASH分区分为Boot分区、Kernel分区、版本或系统分区和文件系统分区。需要说明的是,当版本分区大小不够的情况下,可以是相邻分区借用空间使用,但优选的,可以向文件分区借用,但并不限于此。
图7是根据本发明优选实施例提供的数据移动的示意图,如图7所示,地址位由低到高存储数据,将数据1向高地址处移动一格,那么地址1就不存储数据,用于版本分区的扩容。
以一款手机内存为128M到256M左右为例。版本文件amss.mbn大约40兆左右,分配空间50兆,文件系统efs.mbn大约60兆,分配空间接近75兆。如果是128兆的内存空间,基本上就被使用完,当然如果内存是256兆,那么空间还比较充足。
以128兆配置来说明,保留5兆的文件系统空间来存储下载的差分包,按照查分算法,差分包最大不会超过版本文件的10%,也就是不会超过4.5兆,根据功能机差分升级的经验,差分包一般在2兆左右,那么如果升级一次,版本分区就会被占用2兆的空间,本来所剩的空间不多,同时还要预留一部分空间来保证坏块,版本缓冲空间。如果版本分区剩余空间的阈值设置为5兆,那么剩下的5兆的版本空间最多能升级两次,如果还要升级第三次就必须向文件系统扩容空间,如果差分包2兆,那么就把文件系统空间向高地址移动2兆,来保证版本的差分升级。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种差分升级方法,其特征在于,包括:
获取终端中版本分区中的剩余空间大小;
判断所述剩余空间大小与差分升级包的大小之差是否小于第一预定阈值;
在判断结果为小于所述第一预定阈值的情况下,对所述版本分区进行扩容;
将依据所述差分升级包对系统版本进行升级后的版本数据写入扩容后的所述版本分区中。
2.根据权利要求1所述的方法,其特征在于,扩容后的所述版本分区的空间大小与未扩容的所述版本分区的空间大小之差大于或者等于所述差分升级包的大小。
3.根据权利要求1所述的方法,其特征在于,对所述版本分区进行扩容包括:
判断与所述版本分区相邻的相邻分区的剩余空间是否大于第二预定阈值;
在判断结果为大于所述第二预定阈值的情况下,将所述相邻分区中的预定空间借用给所述版本分区;其中,所述预定空间大于或者等于所述差分升级包的大小。
4.根据权利要求3所述的方法,其特征在于,将所述相邻分区中的预定空间借用给所述版本分区包括:
将所述相邻分区中的数据沿远离所述版本分区的方向移动预定距离;
将所述相邻分区中空余出的预定距离所对应的空间分配给所述版本分区;其中,所述预定距离所对应的空间的大小为所述预定空间。
5.根据权利要求4所述的方法,其特征在于,对所述版本分区进行扩容之后,所述方法还包括:
在存储启动装载文件的分区对原始启动装载文件进行备份,得到备份的启动装载文件;
将扩容后的所述版本分区的地址信息和移动后的所述相邻分区的地址信息更新到所述备份的启动装载文件中,得到更新后的启动装载文件。
6.根据权利要求5所述的方法,其特征在于,在将依据所述差分升级包对所述系统版本升级后的版本数据写入扩容后的所述版本分区中之后,所述方法还包括:
删除所述原始启动装载文件;
利用所述更新后的启动装载文件,加载系统文件。
7.一种差分升级装置,其特征在于,包括:
获取模块,用于获取终端中版本分区中的剩余空间大小;
判断模块,用于判断所述剩余空间大小与差分升级包的大小之差是否小于第一预定阈值;
扩容模块,用于在判断结果为小于所述第一预定阈值的情况下,对所述版本分区进行扩容;
写入模块,用于将依据所述差分升级包对系统版本进行升级后的版本数据写入扩容后的所述版本分区中。
8.根据权利要求7所述的装置,其特征在于,所述扩容模块,还用于判断与所述版本分区相邻的相邻分区的剩余空间是否大于第二预定阈值;以及在判断结果为大于所述第二预定阈值的情况下,将所述相邻分区中的预定空间借用给所述版本分区;其中,所述预定空间大于或者等于所述差分升级包的大小。
9.根据权利要求8所述的装置,其特征在于,所述扩容模块,还用于将所述相邻分区中的数据沿远离所述版本分区的方向移动预定距离;以及将所述相邻分区中空余出的预定距离所对应的空间分配给所述版本分区;其中,所述预定距离所对应的空间的大小为所述预定空间。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
备份模块,用于在存储启动装载文件的分区对原始启动装载文件进行备份,得到备份的启动装载文件;
更新模块,用于将扩容后的所述版本分区的地址信息和移动后的所述相邻分区的地址信息更新到所述备份的启动装载文件中,得到更新后的启动装载文件。
11.一种终端,其特征在于,包括:
处理器,用于获取终端中版本分区中的剩余空间大小,其中,所述版本分区用于存储系统版本的版本数据;判断所述剩余空间大小与差分升级包的大小之差是否小于第一预定阈值;以及在判断结果为小于所述第一预定阈值的情况下,对所述版本分区进行扩容;
读写器,用于将依据所述差分升级包对所述系统版本进行升级后的版本数据写入扩容后的所述版本分区中。
CN201710066987.0A 2017-02-07 2017-02-07 差分升级方法及装置、终端 Withdrawn CN108399079A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710066987.0A CN108399079A (zh) 2017-02-07 2017-02-07 差分升级方法及装置、终端
PCT/CN2017/090082 WO2018145392A1 (zh) 2017-02-07 2017-06-26 差分升级方法及装置、终端、存储介质、处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710066987.0A CN108399079A (zh) 2017-02-07 2017-02-07 差分升级方法及装置、终端

Publications (1)

Publication Number Publication Date
CN108399079A true CN108399079A (zh) 2018-08-14

Family

ID=63094388

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710066987.0A Withdrawn CN108399079A (zh) 2017-02-07 2017-02-07 差分升级方法及装置、终端

Country Status (2)

Country Link
CN (1) CN108399079A (zh)
WO (1) WO2018145392A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110221856A (zh) * 2019-06-25 2019-09-10 努比亚技术有限公司 一种可穿戴设备升级方法、可穿戴设备及存储介质
CN111596945A (zh) * 2020-04-03 2020-08-28 红石阳光(北京)科技股份有限公司 嵌入式系统动态多分区固件的差分升级方法
CN112752154A (zh) * 2019-10-29 2021-05-04 青岛海尔多媒体有限公司 软件升级方法及装置、智能电视
WO2021097623A1 (zh) * 2019-11-18 2021-05-27 深圳市欢太科技有限公司 一种文件处理方法、文件处理装置及终端设备
CN112947952A (zh) * 2019-11-26 2021-06-11 中盈优创资讯科技有限公司 通讯设备版本管理方法及装置
CN113778490A (zh) * 2021-09-16 2021-12-10 深圳市易平方网络科技有限公司 基于智能终端的软件升级处理方法、装置、智能终端

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149508B2 (en) * 2003-02-05 2006-12-12 Samsung Electronics Co., Ltd. System and method for delta-based over-the-air software upgrades for a wireless mobile station
CN104714811A (zh) * 2013-12-13 2015-06-17 中兴通讯股份有限公司 差分升级包的制作方法及装置、系统差分升级方法及装置
CN104077234B (zh) * 2014-07-10 2017-03-08 三星电子(中国)研发中心 一种嵌入式系统分区的动态调整方法和装置
CN106231140B (zh) * 2016-09-30 2020-01-24 深圳市微网力合信息技术有限公司 一种移动终端fota升级容错装置及方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110221856A (zh) * 2019-06-25 2019-09-10 努比亚技术有限公司 一种可穿戴设备升级方法、可穿戴设备及存储介质
CN110221856B (zh) * 2019-06-25 2024-03-19 努比亚技术有限公司 一种可穿戴设备升级方法、可穿戴设备及存储介质
CN112752154A (zh) * 2019-10-29 2021-05-04 青岛海尔多媒体有限公司 软件升级方法及装置、智能电视
WO2021097623A1 (zh) * 2019-11-18 2021-05-27 深圳市欢太科技有限公司 一种文件处理方法、文件处理装置及终端设备
CN114303131A (zh) * 2019-11-18 2022-04-08 深圳市欢太科技有限公司 一种文件处理方法、文件处理装置及终端设备
CN112947952A (zh) * 2019-11-26 2021-06-11 中盈优创资讯科技有限公司 通讯设备版本管理方法及装置
CN111596945A (zh) * 2020-04-03 2020-08-28 红石阳光(北京)科技股份有限公司 嵌入式系统动态多分区固件的差分升级方法
CN111596945B (zh) * 2020-04-03 2021-09-14 红石阳光(北京)科技股份有限公司 嵌入式系统动态多分区固件的差分升级方法
CN113778490A (zh) * 2021-09-16 2021-12-10 深圳市易平方网络科技有限公司 基于智能终端的软件升级处理方法、装置、智能终端

Also Published As

Publication number Publication date
WO2018145392A1 (zh) 2018-08-16

Similar Documents

Publication Publication Date Title
CN108399079A (zh) 差分升级方法及装置、终端
CN102129375B (zh) 一种移动终端系统升级的方法和设备
CN106708543A (zh) 一种操作系统的ota升级方法及装置
CN107247603A (zh) 支持固件自动恢复功能的远程升级方法与系统
CN100403263C (zh) 按配置下载设备软件的方法
CN105407130A (zh) 一种移动端插件系统及移动端插件处理方法
CN107911741A (zh) 可用存储空间提升方法、智能电视及计算机可读存储介质
CN109358882A (zh) 一种电视终端进行固件升级的方法及装置
CN108804118A (zh) 固件升级方法、设备及存储介质
CN109445815B (zh) 一种智能卡及其应用升级方法
CN102375744B (zh) 一种网络电视升级方法
CN104915226A (zh) 一种网络设备软件启动方法、装置及网络设备
CN101770383A (zh) 一种跨平台版本在线升级的方法及装置
CN106066802A (zh) 一种加载mbn文件的方法和装置
CN102004657A (zh) 一种电子设备及其升级方法
CN110286932A (zh) 一种程序下载方法及装置
CN104267985A (zh) 一种软件加载方法和设备
CN107861744A (zh) 系统升级方法及装置
CN104484211B (zh) 共享镜像文件的方法及装置
CN108170456A (zh) 电子设备的固件升级方法及装置
CN102984330A (zh) 一种通讯装置的联系人数据管理方法
CN106708569B (zh) 一种跨线列车中vobc配置文件的热加载方法及装置
CN100452907C (zh) 在用户识别模块和移动终端之间传输数据的方法及其装置
CN107562572A (zh) 文件下载装置及系统软件管理装置
CN104182258A (zh) 一种pos终端升级装置及其升级方法

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
WW01 Invention patent application withdrawn after publication

Application publication date: 20180814

WW01 Invention patent application withdrawn after publication