系统升级方法及装置的制造方法
【技术领域】
[0001]本发明实施例涉及计算机技术领域,尤其涉及系统升级方法及装置。
【背景技术】
[0002]目前,各式各样的安装有操作系统的智能终端蜂拥而现,例如智能手机、平板电脑或个人数字助理等。为满足用户需求,提升用户对智能终端的使用体验,往往需要对操作系统进行升级。其中,升级过程可以通过无线或有线两种方式实现。
[0003]OTA(Over the Air Technology,空中下载技术)作为一种无线升级技术,能够为智能终端用户提供多元化和个性化的操作系统升级服务。运营商在发布操作系统升级版本后,通常是将操作系统升级包存储于OTA服务器中,智能终端会基于本机的操作系统版本,利用空中接口从OTA服务器获取相应的升级包,以对操作系统进行升级。
[0004]但是,在现有技术中,智能终端操作系统的升级过程全部是在recovery(恢复)模式下完成的。随着智能终端功能越来越多,内置的应用程序也会越来越多,从而导致system(系统)分区也随着增大,从而在升级时需要的patch(补丁)文件也增多;同时,不同厂商也会自我增加分区以满足个性化定制操作系统的需求,如增加第一分区来存放一些驱动文件,增加第二分区存放静态的开机图片文件,增加第三分区存放通话功能模块文件等,这些分区中的文件也需要升级。以上原因会导致升级包容量较大,使得停留在recovery模式下进行操作系统升级的时间会较长,用户体验较差。
【发明内容】
[0005]本发明实施例提供一种系统升级方法及装置,以对现有的系统升级机制进行优化,缩短recovery模式下的升级时间,提升用户体验。
[0006]—方面,本发明实施例提供了一种系统升级方法,该方法包括:
[0007]在恢复模式下,利用获取到的系统升级包中的第一补丁文件对第一系统文件进行升级;
[0008]在第一系统文件升级操作完成后结束所述恢复模式,根据升级后的第一系统文件启动系统;
[0009]利用所述系统升级包中的第二补丁文件对第二系统文件进行升级。
[0010]另一方面,本发明实施例还提供了一种系统升级装置,该装置包括:
[0011]第一升级单元,用于在恢复模式下,利用获取到的系统升级包中的第一补丁文件对第一系统文件进行升级;
[0012]系统启动单元,用于在第一系统文件升级操作完成后结束所述恢复模式,根据升级后的第一系统文件启动系统;
[0013]第二升级单元,用于利用所述系统升级包中的第二补丁文件对第二系统文件进行升级。
[0014]在本发明实施例中,为解决【背景技术】中存在的技术问题,提供了一种分阶段对系统进行升级的方案,将部分升级操作放在非recovery模式下加以执行,从而可以缩短recovery模式下的升级时间,提升用户体验。
【附图说明】
[0015]图1是本发明实施例一提供的一种系统升级方法的流程示意图;
[0016]图2是本发明实施例三提供的一种系统升级方法的流程示意图;
[0017]图3是本发明实施例四提供的一种系统升级装置的结构示意图。
【具体实施方式】
[0018]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0019]在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0020]实施例一
[0021]图1是本发明实施例一提供的一种系统升级方法的流程示意图。该方法可以由系统升级装置来执行,所述装置由软件实现,应用于诸如智能手机、平板电脑或个人数字助理等之类的安装有操作系统的智能终端上。参见图1,本实施例提供的系统升级方法所包括的执行操作具体如下。
[0022]S110、在恢复模式下,利用获取到的系统升级包中的第一补丁文件对第一系统文件进行升级。
[0023]系统升级包可以为基于OTA从服务器获取到的系统升级包,或者基于有线方式从其他设备获取到的系统升级包。例如,系统升级装置所应用的智能终端为智能手机,系统升级包为从台式电脑这一其他设备获取得到。其中,系统升级包为用于对智能终端上的操作系统进行升级的数据包。
[0024]系统升级包中包括:第一补丁文件和第一升级脚本;以及,第二补丁文件和第二升级脚本。第一补丁文件为启动智能终端的操作系统所必需的各补丁文件;第二补丁文件为不影响智能终端的操作系统的启动的各补丁文件,也即为启动智能终端的操作系统非必需的各补丁文件。
[0025]在恢复模式下,可先对第一升级脚本进行编译,以生成第一可执行程序;而后执行第一可执行程序,以利用获取到的系统升级包中的第一补丁文件对第一系统文件进行升级。其中,第一系统文件为智能终端上启动操作系统所必需的待升级的旧版本系统文件(简称第一旧版本文件),例如可包括:智能终端的操作系统内核文件、开机图片文件等。如果升级方式是增量升级方式,第一补丁文件为与第一系统文件对应的新版本系统文件(简称第一新版本文件);如果升级方式是全量升级方式,第一补丁文件为对所述第一新版本文件和第一旧版本文件进行差分计算确定得到的差分文件。
[0026]S120、在第一系统文件升级操作完成后结束恢复模式,根据升级后的第一系统文件启动系统。具体为启动操作系统。
[0027]S130、利用系统升级包中的第二补丁文件对第二系统文件进行升级。
[0028]具体的,可先对第二升级脚本进行编译,以生成第二可执行程序;而后执行第二可执行程序,以利用获取到的系统升级包中的第二补丁文件对第二系统文件进行升级。其中,第二系统文件为智能终端上启动操作系统非必需的待升级的旧版本系统文件(简称第二旧版本文件)。如果升级方式是增量升级方式,第二补丁文件为与第二系统文件对应的新版本系统文件(简称第二新版本文件);如果升级方式是全量升级方式,第二补丁文件为对所述第二新版本文件和第二旧版本文件进行差分计算确定得到的差分文件。
[0029]作为本实施例的一种【具体实施方式】,可在根据升级后的第一系统文件启动系统的过程中,当系统内核启动的第一个用户级进程(也即init进程)被执行时,通过该进程利用系统升级包中的第二补丁文件对第二系统文件进行升级。需要说明的是,还可在其他状态下利用系统升级包中的第二补丁文件对第二系统文件进行升级,只要保证该状态为除恢复模式状态之外的其他状态即可。
[0030]本实施例提供了一种分阶段对系统进行升级的方案,将部分升级操作放在非recovery模式下加以执行,从而可以缩短recovery模式下的升级时间,提升用户体验。
[0031]实施例二
[0032]本实施例在上述实施例一的基础上,对“利用所述系统升级包中的第二补丁文件对第二系统文件进行升级”的操作进行优化,并增加升级校验的操作。
[0033]具体的,本实施例提供的系统升级方法,在实施例一提供的系统升级方法的基础上,还包括:在恢复模式下,提取所述系统升级包中的第二补丁文件,存储至存储空间的数据分区。
[0034]相应的,利用系统升级包中的第二补丁文件对第二系统文件进行升级,包括:加载数据分区存储的第二补丁文件;利用加载到的第二补丁文件对第二系统文件进行升级。当然,本领域的普通技术人员应理解,还可将第二补丁文件存储至存储空间的其他分区,例如为系统分区。
[0035]优选的,在对第二系统文件进行升级之后,还包括:将数据分区存储的第二补丁文件进行删除。
[0036]使用数据分区而非其他分区来存储系统升级包中的第二补丁文件,其原因在于:通常情况下,数据分区的存储空间较大,即使第二补丁文件为全量升级方式所对应的容量较大的第二新版本文件,也能够完整地存储第二补丁文件,这样有利于升级过程中对第二补丁文件的加载速度。
[0037]如果将第二补丁文件存储在存储空间较小的系统分区,则很可能因该系统分区的存储空间不足,而将第二补丁文件的中部分子文件存储至其他分区,这样会导致后续升级时对第二补丁文件的读取速度。当然,也可在对智能终端上的存储空间进行分区时,本身就将系统分区的存储空间分配大一些,以在恢复模式下能够将全部的第二补丁文件存储在系统分区,但是这样会造成存储资源的极大浪费,因为智能终端的存储空间是设定的,如果系统分区的存储空间大了,数据分区的存储空间也就相应小了,也即该数据分区所要存储的智能终端用户的联系人、短信、设置、用户安装的应用程序等数据量也就少了,严重影响用户体验。
[0038]另外,本实施例提供的方案,在利用获取到的系统升级包中的第一补丁文件对第一系统文件进行升级之前,还包括:在恢复模式下,对系统升级包中的各补丁文件进行升级校验;如果升级校验成功,则执行利用获取到的系统升级包中的第一补丁文件对第一系统文件进行升