本发明专利技术公开了一种软件升级方法和软件升级装置,其中,一种软件升级方法包括:获取用于升级软件系统的全量升级包;遍历所述全量升级包中的文件,将所述全量升级包中的未存在于所述软件系统的文件拷贝到所述软件系统中,将所述软件系统中的第一文件替换为所述全量升级包中的第二文件,其中,所述第一文件和所述第二文件具有相同的文件名和不同的文件内容;删除存在于所述软件系统且未存在于所述全量升级包的所有文件。本发明专利技术提供的技术方案能够有效降低软件包制作难度,提高软件升级的安全性。
【技术实现步骤摘要】
软件升级方法和软件升级装置
本专利技术涉及软件升级
,具体涉及一种软件升级方法和软件升级装置。
技术介绍
空中固件升级(FOTA,FirmwareOverTheAir)是智能终端系统(例如Android系统)目前主流的升级方式,智能终端和服务器通过网络交互传递升级包,完成智能终端系统的升级。如图1所示为典型的FOTA模型,主机将升级包源代码编译成升级包后上传到服务器,智能终端通过和服务器建立连接,下载需要的升级包进行升级。目前存在全量升级和增量升级两种升级方法,全量升级通过全量升级包进行升级,全量升级包是针对所有文件的升级,因此需要将智能终端系统全部删除(即格式化)再重新升级;增量升级通过增量升级包进行升级,增量升级包需要针对指定历史版本来升级,只升级差异部分,不对无差异部分做修改。上述两种升级方式均存在一定的弊端:由于全量升级需要在升级之前先格式化分区内的文件,再将全量升级包内的文件全部复制过去,因此,这种升级方法的升级失败风险大,一旦升级过程出现问题,原文件被破坏了,智能终端系统难以修复;而增量升级在制作增量升级包时只做和上次版本有差异的升级文件,对历史版本软件依赖程度大,在制作增量升级包时需要和历史版本软件包进行对比和差分处理,制作过程复杂,且当发布的版本较多时,增量升级包的总数量将会非常庞大,使得增量升级包的管理难度增大。
技术实现思路
本专利技术提供一种软件升级方法和软件升级装置,用于降低软件包制作难度,提高软件升级的安全性。本专利技术一方面提供一种软件升级方法,包括:获取用于升级软件系统的全量升级包;遍历上述全量升级包中的文件,将上述全量升级包中的未存在于上述软件系统的文件拷贝到上述软件系统中,将上述软件系统中的第一文件替换为上述全量升级包中的第二文件,其中,上述第一文件和上述第二文件具有相同的文件名和不同的文件内容;删除存在于上述软件系统且未存在于上述全量升级包的所有文件。本专利技术另一方面提供一种软件升级装置,包括:获取单元,用于获取用于升级软件系统的全量升级包;遍历处理单元,用于遍历上述全量升级包中的文件,将上述全量升级包中的未存在于上述软件系统的文件拷贝到上述软件系统中,将上述软件系统中的第一文件替换为上述全量升级包中的第二文件,其中,上述第一文件和上述第二文件具有相同的文件名和不同的文件内容;删除单元,用于删除存在于上述软件系统且未存在于上述全量升级包的所有文件。由上可见,本专利技术中在使用全量升级包对软件系统进行升级过程中,将全量升级包中未存在与软件系统中的文件(即新增文件)拷贝到软件系统中,将软件系统中的第一文件替换为全量升级包中的第二文件(即对软件系统中需要修改的文件进行升级),并删除存在于软件系统且未存在于全量升级包的所有文件(即删除升级后软件系统中不需要的文件),从而实现了增量升级的效果,一方面,由于本专利技术使用全量升级包对软件系统进行升级时不对软件系统进行格式化处理,因此不会破坏原软件系统,即使升级失败也不会影响到该软件系统的正常启动,提高了软件升级的安全性;另一方面,本专利技术实现了通过全量升级包达到增量升级的效果,因此,在需要制作升级包时,只需制作全量升级包即可,无需再制作基于历史版本软件的增量升级包,从而极大降低了软件包的制作难度。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的一种软件升级方法一个实施例流程示意图;图2为本专利技术提供的一种软件升级方法另一个实施例流程示意图图3为本专利技术提供的一种软件升级装置一个实施例结构示意图。具体实施方式为使得本专利技术的专利技术目的、特征、优点能够更加的明显和易懂,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而非全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。下面对本专利技术实施例中的一种软件升级方法进行描述,请参阅图1,本专利技术实施例中的软件升级方法包括:101、获取用于升级软件系统的全量升级包;本专利技术实施例中,全量升级包是针对所有文件的升级而制作的升级包。上述软件系统包括但不限于终端的操作系统、终端上已安装的应用软件系统。可选的,软件升级装置周期性或事件性(例如用户触发软件系统的升级)向服务器发送升级软件系统的请求消息,以便服务器接收该请求消息并在该请求消息的指示下向软件升级装置反馈用于升级该软件系统的全量升级包,软件升级装置接收服务器反馈的全量升级包,从而实现对全量升级包的获取。具体地,软件升级装置集成与终端中,软件升级装置在终端的软件系统操作界面中提供该软件系统的升级包下载控件,用户通过该升级下载控件触发软件升级装置向服务器发送上述升级软件系统的请求消息。当然,也可以由服务器在新的全量升级包出现时,主动向软件升级装置推送该全量升级包;或者,软件升级装置也可以从外部终端或软件升级装置的本地磁盘上获取用于升级软件系统的全量升级包,本专利技术实施例不对软件升级装置获取用于升级软件系统的全量升级包的具体方式进行限定。102、遍历上述全量升级包中的文件,将上述全量升级包中的未存在于上述软件系统的文件拷贝到上述软件系统中,将上述软件系统中的第一文件替换为上述全量升级包中的第二文件;其中,上述第一文件和上述第二文件具有相同的文件名和不同的文件内容。本专利技术实施例中,软件升级装置遍历上述全量升级包中的文件,并针对每一个遍历的文件进行如下处理:判断当前遍历的文件是否存在于上述软件系统中(即判断软件系统中是否存在与当前遍历的文件同名的文件),若判断出当前遍历的文件未存在于上述软件系统中,则将当前遍历的文件拷贝到上述软件系统中,之后遍历上述全量升级包中的下一个文件;若判断出当前遍历的文件存在于上述软件系统中,则使用当前遍历的文件覆盖软件系统中与当前遍历的文件同名的文件,之后遍历上述全量升级包中的下一个文件;或者,可选地,若判断出当前遍历的文件存在于上述软件系统中,则进一步判断当前遍历的文件(为便于描述,下面将当前遍历的文件描述为文件A)与存在于上述软件系统的同名文件(即上述软件系统中与当前遍历的文件同名的文件,为便于描述,下面将此文件描述为文件B)的文件内容是否相同,若文件内容不相同,则将文件B(即上述第一文件)替换为文件A(上述第二文件),之后遍历全量升级包中的下一个文件;若相同,则直接遍历上述全量升级包中的下一个文件。进一步,软件升级装置在判断文件A与文件B的文件内容是否相同时,可以获取文件A与文件B的sha1值(即哈希值)并进行比较,若文件A与文件B的sha1值不同,则表明文件A与文件B的文件内容不同,将文件B(即上述第一文件)替换为文件A(上述第二文件),之后遍历上述全量升级包中的下一个文件,若文件A与文件B的sha1值相同,则表明文件A与文件B的文件内容相同,直接遍历上述全量升级包中的下一个文件。当然,本专利技术实施例也可以通过其它方式判断文件A与文件B的文件内容是否相同时,本文档来自技高网...
【技术保护点】
一种软件升级方法,其特征在于,包括:获取用于升级软件系统的全量升级包;遍历所述全量升级包中的文件,将所述全量升级包中的未存在于所述软件系统的文件拷贝到所述软件系统中,将所述软件系统中的第一文件替换为所述全量升级包中的第二文件,其中,所述第一文件和所述第二文件具有相同的文件名和不同的文件内容;删除存在于所述软件系统且未存在于所述全量升级包的所有文件。
【技术特征摘要】
1.一种软件升级方法,其特征在于,包括:获取用于升级软件系统的全量升级包,所述全量升级包是针对所有文件的升级而制作的升级包;遍历所述全量升级包中的文件,将所述全量升级包中的未存在于所述软件系统的文件拷贝到所述软件系统中,将所述软件系统中的第一文件替换为所述全量升级包中的第二文件,其中,所述第一文件和所述第二文件具有相同的文件名和不同的文件内容;比较所述软件系统和所述全量升级包中的文件,删除存在于所述软件系统且未存在于所述全量升级包的所有文件。2.根据权利要求1所述的方法,其特征在于,所述遍历所述全量升级包中的文件,包括:若当前遍历的文件与所述软件系统中的一文件的文件名相同,则:分别获取所述文件名相同的两个文件的sha1值;比较所述两个文件的sha1值;若所述两个文件的sha1值不相同,则将所述当前遍历的文件确定为所述第二文件,并将所述软件系统中与所述当前遍历的文件同名的文件确定为所述第一文件。3.根据权利要求1或2所述的方法,其特征在于,所述遍历所述全量升级包中的文件,包括:将所述全量升级包中已遍历的文件记录在已遍历文件列表中;所述删除存在于所述软件系统且未存在于所述全量升级包的所有文件,包括:当完成对所述全量升级包中的所有文件的遍历后,删除所述软件系统中的未记录在所述已遍历文件列表中的文件。4.根据权利要求1或2所述的方法,其特征在于,所述获取用于升级软件系统的全量升级包,包括:向服务器发送升级所述软件系统的请求消息;接收所述服务器在所述请求消息的指示下反馈的全量升级包。5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:在完成对所述软件系统的升级后,输出指示所述软件系统升级完成的提醒消息。6.一种软件升级装置,其特征在于,包括:获取单元,用于获取...
【专利技术属性】
技术研发人员:彭芃,
申请(专利权)人:TCL集团股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。