首页> 中国专利> 基于补丁升级的文件处理方法、装置、终端以及存储介质

基于补丁升级的文件处理方法、装置、终端以及存储介质

摘要

一种基于补丁升级的文件处理方法、装置、终端以及存储介质,该方法包括:接收文件访问请求,文件访问请求包括:存放路径信息(S101);若存放路径信息指向第一分区,则判断存放路径信息是否存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中(S102);若存在,则查询预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系,获取与存放路径信息对应的补丁升级文件路径信息(S103);从对应的补丁升级文件路径信息指向的目标分区中,获取与补丁升级文件路径信息匹配的补丁升级文件(S104)。上述方法可以实现微小补丁的快速升级,并减小工作量。

著录项

  • 公开/公告号CN108027741A

    专利类型发明专利

  • 公开/公告日2018-05-11

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201680017677.3

  • 发明设计人 陈磊;

    申请日2016-04-27

  • 分类号

  • 代理机构北京同立钧成知识产权代理有限公司;

  • 代理人马爽

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-06-19 05:18:51

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-09

    授权

    授权

  • 2018-06-05

    实质审查的生效 IPC(主分类):G06F9/445 申请日:20160427

    实质审查的生效

  • 2018-05-11

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,尤其涉及一种基于补丁升级的文件处理方法、装置、终端以及存储介质。

背景技术

手机、平板电脑等终端的软件需要不断升级以增加和完善终端的功能,现有的软件升级模式一般包括两种:全镜像升级和差分包升级。其中,全镜像升级模式中,升级包中包含完整的系统文件,在升级过程中会将终端中原有的系统文件全部擦除,然后更换为新文件(即升级包中的系统文件),以完成升级;差分包升级模式中,升级包中只包含两个版本之间的差异数据,该差异数据可完成从指定的A版本到指定的B版本的升级。在上述两种升级模式中,全镜像升级的升级包往往会很大,不适合无线升级,因此,目前多采用差分包升级模式。

另外,对于现有的差分包升级模式,由于在终端的软件版本发布后,有时会存在只需修改个别参数就可以修复的紧急bug,因此,其模式可以采用下述两种模式实现bug修复:第一种,如图1所示,当前已发布的历史版本包括:B101、B102和B103,这些版本都存在上述紧急bug,服务器基于当前已发布的最新版本(B103)发布包含微小补丁patch的补丁包;用户想要修复该bug时,在将当前版本(如B101、B102)升级到最新版本(B103)后,可以下载该补丁包修复bug;举例来说,用户使用的当前版本是B101,则先下载升级包B101→B102将版本升级到B102,再下载升级包B102→B103将版本升级到B103,最后下载合入微小patch的补丁包将版本升级到修复了紧急bug的版本B104。第二种,如图2所示,服务器基于各历史版本(B101、B102、B103)均发布可升级到合入patch的最新版本的升级包(升级包B101→B104、升级包B102→B104和合入微小patch的补丁包),用户可以直接下载针对当前版本的升级包,将版本一次性升级到修复了紧急bug的版本;继续以用户使用的当前版本是B101为例,用户可以下载升级包B101→B104将 当前版本B101直接升级到修复了紧急bug的版本B104。

但是,第一种升级模式中,补丁包只基于最新版本发布,用户只有将当前版本升级到最新版本时,才能够通过补丁包修复bug,例如上述举例中,当前版本是B101的用户需要连续升级两次,将版本升级到B103后才可以通过补丁包修复bug,从而无法满足微小patch快速升级的需求。第二种升级模式中,历史版本都可以一次完成bug修复,但是从老的历史版本升级到合入patch的最新版本,升级包会比较大,例如上述举例中,当前版本是B101的用户所使用的升级包B101→B104中,不仅包含修复上述紧急bug所需的patch,还包含升级包B101→B102和B102→B103中所包含的补丁信息,升级包很大,从而会导致升级较慢,也不满足微小patch快速升级的需求,并且服务器需要发布多个针对历史版本的升级包,工作量巨大。

发明内容

本发明提供一种基于补丁升级的文件处理方法、装置、终端以及存储介质,用于实现微小patch的快速升级,并减小工作量。

第一方面,本发明实施例提供一种基于补丁升级的文件处理方法,包括:

接收文件访问请求,文件访问请求包括:存放路径信息;

若存放路径信息指向第一分区,则判断存放路径信息是否存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中;

若存放路径信息存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中,则查询关联关系,获取与存放路径信息对应的补丁升级文件路径信息;

从与存放路径信息对应的补丁升级文件路径信息指向的目标分区中,获取与补丁升级文件路径信息匹配的补丁升级文件。

通过第一方面提供的文件处理方法,在原文件被访问时,根据路径信息访问补丁文件,实现了软件的补丁升级;基于该升级方法的补丁包可以只包含用于修复紧急bug的补丁文件,补丁包较小,终端可以快速获取补丁包中的路径信息,并在原文件被访问时,根据该路径信息直接访问补丁文件,升级速度很快,且不需要制作多个针对历史版本的升级包,工作量小。

在第一方面的一种可能的实施方式中,在接收文件访问请求之前,上述方法还包括:

获取补丁包;

若补丁包中包括紧急补丁包标识,则将补丁包保存在第二分区中;

则从与存放路径信息对应的补丁升级文件路径信息指向的目标分区中,获取与补丁升级文件路径信息匹配的补丁升级文件,包括:

从第二分区中,获取与补丁升级文件路径信息匹配的补丁升级文件。

通过该实施例提供的文件处理方法,获取补丁包后,若补丁包中包括紧急补丁包标识,则将补丁包保存在第二分区中,从而可以通过第二分区实现不同于现有的全镜像或差分升级方式的紧急补丁升级方法;并且可以对第一分区进行校验保护,提高系统的安全性。

在第一方面的一种可能的实施方式中,在将补丁包保存在第二分区中之后,方法还包括:

若补丁包中包括参数修改脚本,则从第一分区中获取原文件进行处理,在第二分区中生成补丁升级文件。

通过该实施例提供的文件处理方法,将补丁包保存在第二分区后,判断补丁包中是否包含参数修改脚本,从而可以通过参数修改脚本修改可解析文件的参数,修复bug,使得本实施例的适应范围更广。

在第一方面的一种可能的实施方式中,在第二分区中生成补丁升级文件之后,方法还包括:

将生成的补丁升级文件保存在第三分区中;

则从与存放路径信息对应的补丁升级文件路径信息指向的目标分区中,获取与补丁升级文件路径信息匹配的补丁升级文件,包括:

从第三分区中,获取与补丁升级文件路径信息匹配的补丁升级文件。

通过该实施例提供的文件处理方法,将补丁包保存在第三分区中,可以对第二分区进行校验保护,从而进一步提高了系统的安全性。

在第一方面的一种可能的实施方式中,在将补丁包保存在第二分区中之后,方法还包括:

将第二分区中补丁包中的原文件路径信息和补丁升级文件路径信息的关联关系保存至预配置系统中。

在第一方面的一种可能的实施方式中,从第一分区中获取原文件进行处理,在第二分区中生成补丁升级文件,具体包括:

挂载原文件所在的第一分区,并读取第一分区中的原文件;

解析原文件,获取原文件的参数信息;

修改参数信息中待修改的参数,生成补丁升级文件。

在第一方面的一种可能的实施方式中,预配置系统为中间虚拟文件系统。

通过该实施例提供的文件处理方法,系统可以采用虚拟文件系统方便的实现文件跳转访问,从而在不改变第一分区文件的情况下实现对紧急补丁的升级。

第二方面,本发明实施例提供一种基于补丁升级的文件处理装置,包括:

接收模块,用于接收文件访问请求,文件访问请求包括:存放路径信息;

判断模块,用于若存放路径信息指向第一分区,则判断存放路径信息是否存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中;

第一获取模块,用于若存放路径信息存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中,则查询关联关系,获取与存放路径对应的补丁升级文件路径信息;

第二获取模块,用于从与存放路径信息对应的补丁升级文件路径信息指向的目标分区中,获取与补丁升级文件路径信息匹配的补丁升级文件。

基于同一发明构思,由于该装置解决问题的原理以及有益效果可以参见上述第一方面和第一方面的各可能的实施方式以及所带来的有益效果,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

第三方面,本发明实施例提供一种终端,包括:处理器和存储器,存储器存储程序或指令,处理器通过调用存储器存储的程序或指令,用于:

接收文件访问请求,文件访问请求包括:存放路径信息;

若存放路径信息指向第一分区,则判断存放路径信息是否存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中;

若存放路径信息存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中,则查询关联关系,获取与存放路径信息对应的补丁升级文件路径信息;

从与存放路径信息对应的补丁升级文件路径信息指向的目标分区中,获取与补丁升级文件路径信息匹配的补丁升级文件。

所述处理器调用存储在所述存储器中的指令以实现上述第一方面的方法设计中的方案,由于该终端解决问题的实施方式以及有益效果可以参见上述第一方面和第一方面的各可能的实施方式以及有益效果,因此该终端的实施可以参见方法的实施,重复之处不再赘述。

第四方面,本发明实施例提供一种非易失计算机可读存储介质,包含计算机执行指令,计算机执行指令用于使终端执行上述第一方面提供的方法,重复之处不再赘述。

本发明实施例提供的基于补丁升级的文件处理方法、装置、终端以及存储介质,终端接收到文件访问请求后,当文件访问请求中的存放路径信息指向第一分区时,则先判断存放路径信息是否存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中,若存在,则根据该关联关系获取与存放路径信息对应的补丁升级文件路径信息,然后根据该补丁升级文件路径信息去访问获取对应的补丁升级文件,基于这种文件处理方式,在原文件被访问时,根据路径信息访问补丁文件,实现了软件的补丁升级,本实施例的补丁包可以只包含用于修复紧急bug的补丁文件,补丁包较小,终端可以快速获取补丁包中的路径信息,并在原文件被访问时,根据该路径信息直接访问补丁文件,升级速度很快,且不需要制作多个针对历史版本的升级包,工作量小。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为现有的差分包升级模式的一种模式示意图;

图2为现有的差分包升级模式的另一种模式示意图;

图3为本发明的终端的系统架构示意图;

图4为本发明提供的基于补丁升级的文件处理方法实施例一的流程示意 图;

图5为本发明提供的一种文件补丁升级的系统结构示意图;

图6为本发明提供的基于补丁升级的文件处理方法实施例二的流程示意图;

图7为本发明提供的基于补丁升级的文件处理装置实施例一的结构示意图;

图8为本发明提供的基于补丁升级的文件处理装置实施例二的结构示意图;

图9为本发明提供的终端的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应理解,在本发明实施例中,终端可称之为用户设备(User Equipment;简称UE)、移动台(Mobile Station;简称MS)、移动终端(Mobile Terminal)、计算机、微机、电子设备等。该终端可以经无线接入网(Radio Access Network;简称RAN)与一个或多个核心网进行通信,例如,终端可以是移动电话(或称为“蜂窝”电话)、具有移动终端的计算机等,例如,终端还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语音和/或数据。本发明对此并不限定,例如终端还包括具有多承载特征的有线接入的终端。

图3为本发明的终端的系统架构示意图,如图3所示,终端中包含应用层的应用模块、内核kernel中的虚拟文件系统(Virtual File System;简称VFS)、中间虚拟文件系统(如sdcardfs、patchfs等)和硬盘中的各存储分区,其中各存储分区(如数据data分区、补丁patch分区、系统system分区等)采用第四代扩展文件系统(Fourth extended filesystem;简称EXT4)或其他文件系统存储系统运行所需的各种文件,当应用层的应用模块访问这些文件时,VFS 可以通过中间虚拟文件系统或者直接访问这些文件,将文件反馈给应用模块。

图4为本发明提供的基于补丁升级的文件处理方法实施例一的流程示意图,本实施例的执行主体可以为基于补丁升级的文件处理装置或终端,如图4所示,本实施例提供的方法包括:

步骤S101、接收文件访问请求,文件访问请求包括存放路径信息。

具体的,当应用层的某个应用程序访问文件时,会向终端中统一的文件访问接口VFS发送文件访问请求,该文件访问请求中包括存放路径信息,即应用程序欲访问的文件的存放路径;VFS接收到该存放路径信息后,可以为应用程序提供该应用程序欲访问的文件。

步骤S102、若存放路径信息指向第一分区,则判断存放路径信息是否存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中。

具体的,本实施例中,终端获取到补丁升级文件后,可以将补丁升级文件存储在某个分区中,然后将原文件路径信息(即原文件的存放路径)和补丁升级文件路径信息(即补丁升级文件的存放路径)的关联关系存储在预配置系统的路径表中。其中,该预配置系统可以为中间虚拟文件系统,如overleyfs、sdcardfs、patchfs等文件系统。

VFS接收到存放路径信息后,可以获知该存放路径信息指向的分区,若确定存放路径信息指向第一分区(存在bug的原文件所在的分区),说明该存放路径信息对应的待访问文件可能为存在bug的原文件;VFS则先访问预配置系统,查找路径表,判断存放路径信息是否存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中,以确定该存放路径信息对应的待访问文件是否为存在bug的原文件。

步骤S103、若存在,则查询预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系,获取与存放路径信息对应的补丁升级文件路径信息。

若原文件路径信息和补丁升级文件路径信息的关联关系中存在存放路径信息,则表明该存放路径信息对应的待访问文件为存在bug的原文件,则根据该关联关系获取与存放路径信息对应的补丁升级文件路径信息,以访问补丁升级文件。若原文件路径信息和补丁升级文件路径信息的关联关系中不存在存放路径信息,则表明该存放路径信息对应的待访问文件不是存在bug的 原文件,则可以直接根据该存放路径信息访问第一分区中对应的文件。

步骤S104、从与存放路径信息对应的补丁升级文件路径信息指向的目标分区中,获取与补丁升级文件路径信息匹配的补丁升级文件。

VFS获取到与存放路径信息对应的补丁升级文件路径信息后,则可以根据该补丁升级文件路径信息,从该补丁升级文件路径信息指向的目标分区中,获取与补丁升级文件路径信息匹配的补丁升级文件,提供给应用程序。

其中,目标分区具体可以是第一分区,也可以是与第一分区不同的其他分区;第一分区具体可以为system分区、cust分区,目标分区具体可以是system分区、cust分区、data分区、patch分区或者RAMFS等。

为了便于理解本发明的技术方案,下面以升级/system/framework/a.jar和/cust/preinstalled/public/lib/b.so为例进行示例性说明:

图5为本发明提供的一种文件补丁升级的系统结构示意图,如图5所示,system分区(第一分区)中的/system/framework/a.jar文件和cust分区(第一分区)中的/cust/preinstalled/public/lib/b.so文件存在紧急bug需要修复,修复bug后的补丁文件存放在patch分区(目标分区)中,分别为:/patch/system/framework/a.jar和/patch/cust/preinstalled/public/lib/b.so。当system分区和cust分区被访问时,VFS先访问patchfs(预配置系统),通过路径表中的路径信息关联关系判断应用程序欲访问的文件的存放路径信息是否满足指定路径(即是否为/system/framework/a.jar或/cust/preinstalled/public/lib/b.so),若满足,则根据对应的/patch/system/framework/a.jar或/patch/cust/preinstalled/public/lib/b.so跳转到patch分区访问对应的补丁文件,若不满足,则根据应用程序欲访问的文件的存放路径信息访问system分区或cust分区中的文件。

终端中system分区和cust分区(即第一分区)中的大部分文件,历史版本几乎没有修改过,新版本文件可以在所有历史版本中都可有效工作,例如*.so文件等;或者尽管此文件历史版本改动频繁,但是其解耦兼容性做的很好,可以直接用新版本文件进行覆盖,例如*.apk文件等。即这些文件可以用一个统一的更新文件覆盖到所有历史版本。软件升级通常针对的是system分区中的文件,下面以system分区的文件升级为例说明本发明的技术方案。

当system分区的文件出现紧急bug时,现有技术中通过差分包升级模式 升级这些文件时,第一种是基于最新版本发布包含patch的补丁包,这种方式,用户需要将当前版本升级到最新版本时,才能够通过补丁包修复bug,升级速度很慢;第二种是基于各历史版本均发布可升级到合入patch的最新版本的升级包本实施例中,该方式考虑到差分包升级模式在升级时是直接修改system分区中的原文件,为了避免由于升级patch而修改了system分区中的原文件进而导致历史版本不能采用已发布的升级包升级到最新版本,对于老的历史版本,则需要制作一个可升级到合入patch的最新版本的差分包(即升级包),而不能制作一个只包含patch的差分包,因此,差分包会比较大,从而导致升级速度较慢;并且每个历史版本对应的差分包不同,不能直接用一个统一的差分文件覆盖到所有历史版本,需要发布多个针对历史版本的升级包,工作量也很大。

而本实施例中,终端中的VFS接收到文件访问请求后,当文件访问请求中的存放路径信息指向第一分区,即system分区时,则先判断存放路径信息是否存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中,若存在,则根据该关联关系获取与存放路径信息对应的补丁升级文件路径信息,然后根据该补丁升级文件路径信息去访问获取对应的补丁升级文件,即,当存在bug的原文件被访问时,终端可以跳转到补丁升级文件所在分区访问补丁升级文件。基于这种文件处理方式,补丁包中包含的补丁升级文件可以直接为升级后的原文件,其可以存放在与原文件不同的路径中,终端在原文件被访问时,直接根据获取的路径信息访问补丁升级文件,实现软件补丁的升级,不需修改system分区的原文件,从而当用户需要将为历史版本的当前版本升级到最新版本时,可以直接删除补丁包后,采用已发布的差分包升级当前版本,避免由于升级patch而导致历史版本不能采用已发布的升级包升级到最新版本的问题。也就是说,本实施例中,补丁包可以只包含用于修复紧急bug的补丁文件,并且各历史版本可以采用相同的补丁包,一个补丁包中的补丁文件可以覆盖到所有历史版本,不需要制作多个针对历史版本的升级包,因此,补丁包较小,终端可以快速获取补丁包中的路径信息,并在原文件被访问时,根据获取的路径信息直接访问补丁文件,升级速度很快,且工作量小。

本实施例提供的基于补丁升级的文件处理方法,终端接收到文件访问请 求后,当文件访问请求中的存放路径信息指向第一分区时,则先判断存放路径信息是否存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中,若存在,则根据该关联关系获取与存放路径信息对应的补丁升级文件路径信息,然后根据该补丁升级文件路径信息去访问获取对应的补丁升级文件,基于这种文件处理方式,在原文件被访问时,根据路径信息访问补丁文件,实现了软件的补丁升级,本实施例的补丁包可以只包含用于修复紧急bug的补丁文件,补丁包较小,终端可以快速获取补丁包中的路径信息,并在原文件被访问时,根据该路径信息直接访问补丁文件,升级速度很快,且不需要制作多个针对历史版本的升级包,工作量小。

图6为本发明提供的基于补丁升级的文件处理方法实施例二的流程示意图,本实施例是上述图4所示实施例中所访问的补丁包的具体获取和处理过程,在上述图4所示实施例的基础上,如图6所示,在步骤S101之前,本实施例的方法还包括:

步骤S201、获取补丁包。

具体的,补丁包可以是基于空中下载(Over-the-Air;简称OTA)技术从服务器获取到的补丁包,也可以是基于有线方式从其他设备(如台式电脑)获取到的补丁包。其中,在基于OTA获取补丁包时,具体可以是终端主动向服务器发送升级查询请求消息,服务器根据该请求消息查询是否有符合终端当前版本的补丁包,若有,则将补丁包发送给终端;也可以是服务器主动向终端发送广播通知消息,提示终端是否升级,在终端选择升级的情况下,将补丁包发送给终端。

步骤S202、若补丁包中包括紧急补丁包标识,则将补丁包保存在第二分区中。

具体的,补丁包中可以包括紧急补丁包标识,用来区别其他升级包,例如:该紧急补丁包标识可以为patch,终端获取到升级包后,若确定为补丁包的标识为patch,则将补丁包保存在预定的安全分区中。

其中,该预定的安全分区可以是第一分区,也可以是与第一分区不同的第二分区。为了保证系统安全性,可以使用谷歌google的验证启动(verify boot)功能,对system分区和cust分区(即第一分区)的文件进行校验保护,使得 system和cust分区不能使用文件方式进行升级;终端可以新增一个安全的patch分区作为第二分区,终端在获取补丁包后,将获取的补丁包保存在新增的patch分区中,以提高系统安全性。

具体的,终端获取到补丁包之后,可以将补丁包存放在缓存cache分区中,然后重启进入恢复recovery模式,将补丁包保存在第二分区中;也可以将补丁包直接保存在第二分区中。优选的,本实施例中将补丁包先存放在cache分区中,再进入recovery模式保存在第二分区中,以提高系统安全性。

另外,补丁包中可以包括补丁升级文件,补丁包保存在第二分区后,补丁升级文件路径信息指向的目标分区即为第二分区,则上述步骤S104从对应的补丁升级文件路径信息指向的目标分区中,获取与补丁升级文件路径信息匹配的补丁升级文件,一种可能的实现方式为:

从第二分区中,获取与补丁升级文件路径信息匹配的补丁升级文件。

需要说明的是,本实施例中补丁包中的补丁升级文件与现有的全镜像升级包和差分包中的补丁升级文件不同,本实施例中的补丁升级文件为升级后的原文件,即修复bug后的原文件。补丁包中的补丁升级文件也可以采用现有的签名机制进行处理,在将补丁包写入安全的分区时进行签名检查;当然,补丁包也可以采用其他现有的打包技术进行处理,此处不做限定。

步骤S203、若补丁包中包括参数修改脚本,则从第一分区中获取原文件进行处理,在第二分区中生成补丁升级文件。

system分区中有很小一部分文件不能用一个统一的补丁文件覆盖到所有版本,但可以通过一个解析语句直接变动文件中的指定内容,例如*.xml、*.prop、*.txt文件等。以build.prop文件为例,该文件里面包含各个版本的版本号信息,因此不可能用一个新的build.prop替换全部历史版本的build.prop,但要修改其中一个prop项,则可以考虑通过直接解析文件进行修改的策略。

针对上述这种情况,本实施例中,补丁包中可以包含参数修改脚本,通过参数修改脚本修改原文件中待修改的参数后生成新的文件(即补丁升级文件)。

具体的,终端将补丁包保存在第二分区后,在每次开机时,init进程可以通过mount命令挂载第二分区,使第二分区中的文件生效。然后终端可以读取补丁包中的文件,当发现补丁包中包括参数修改脚本,则从第一分区中获 取原文件进行处理,在第二分区中生成补丁升级文件。更为具体的,终端执行参数修改脚本,生成补丁升级文件的过程为:终端先挂载原文件所在的第一分区,读取第一分区中的原文件,然后解析原文件,获取原文件的参数信息;在查找到参数信息中待修改的参数后,修改参数信息中待修改的参数,然后生成补丁升级文件。

在生成补丁升级文件后,可以将补丁升级文件存放在data分区、patch分区或者RAMFS中;data分区的数据容易被篡改,为了保证系统安全性,优选的,补丁升级文件存放在patch分区或者RAMFS中;其中,补丁升级文件存放在RAMFS中的方式适合于例如google M版本那样,对系统只读分区(patch分区)进行校验保护,RAMFS中的文件在系统开机时会消失,该方式在每次开机时都自动生成一遍新文件并存放在RAMFS中;终端若不采用google M版本,则可以直接将补丁升级文件存放在patch分区中,每次开机的时候加载patch分区即可。

本实施例中,优选的,将生成的补丁升级文件保存在第三分区(即RAMFS)中,以进一步提高系统安全性。则上述步骤S104从对应的补丁升级文件路径信息指向的目标分区中,获取与补丁升级文件路径信息匹配的补丁升级文件,另一种可能的实现方式为:

从第三分区中,获取与补丁升级文件路径信息匹配的补丁升级文件。

本实施例中,补丁包中可以只包含补丁升级文件或参数修改脚本,也可以同时包含参数修改脚本和补丁升级文件,具体根据实际需要制作补丁包。

步骤S204、将第二分区中补丁包中的原文件路径信息和补丁升级文件路径信息的关联关系保存至预配置系统中。

补丁包中可以包括补丁升级文件对应的原文件的路径信息(即原文件的存放路径),终端将补丁包保存在第二分区后,就可以读取补丁包中的补丁升级文件对应的原文件的路径信息,同时根据补丁升级文件的存放位置获取到补丁升级文件的路径信息(即补丁升级文件的存放路径);当然,补丁包中也可以直接封装补丁升级文件的路径信息,终端获取补丁包后将其保存在对应位置,再读取补丁包即可获取所有路径信息。

终端获取到原文件路径信息和补丁升级文件路径信息后,可以将原文件路径信息和补丁升级文件路径信息的关联关系保存至预配置系统中,该预配 置系统为中间虚拟文件系统,用于后续的文件跳转访问。

现有的中间虚拟文件系统,如采用overleyfs或sdcardfs技术实现的中间虚拟文件系统都具有对应的分区关联关系,为了便于系统设计和文件的跳转访问,终端可以直接在系统中新增一个中间虚拟文件系统patchfs作为本实施例的预配置系统,然后关联好patchfs与system分区的关系,当获取到原文件路径信息和补丁升级文件路径信息后,挂载patchfs,将路径信息存在patchfs对应的内存中的路径表中,当原文件被访问时,通过路径表引导终端访问目标分区中的文件。其中,patchfs可以采用现有的overleyfs或sdcardfs技术实现。

需要说明的是,步骤S204和步骤S203之间没有严格的时序关系,步骤S204也可以在步骤S203之前执行,具体执行顺序本实施例不做限定。

本实施例提供的基于补丁升级的文件处理方法,终端获取补丁包后,若补丁包中包括紧急补丁包标识,则将补丁包保存在第二分区中,然后将第二分区中补丁包中的原文件路径信息和补丁升级文件路径信息的关联关系保存至预配置系统中,通过第二分区和预配置系统使得用于修复紧急bug的补丁包生效,本实施例的技术方案中,将补丁包保存在第二分区中,提高了系统的安全性;并且将补丁包保存在第二分区后,判断补丁包中是否包含参数修改脚本,从而可以通过参数修改脚本修改可解析文件的参数,修复bug,使得本实施例的适应范围更广。

图7为本发明提供的基于补丁升级的文件处理装置实施例一的结构示意图,本实施例提供的装置可以集成在终端中。如图7所示,本实施例提供的装置包括:

接收模块110,用于接收文件访问请求,文件访问请求包括:存放路径信息;

判断模块120,用于若存放路径信息指向第一分区,则判断存放路径信息是否存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中;

第一获取模块130,用于若存放路径信息存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中,则查询预配置系统中的原 文件路径信息和补丁升级文件路径信息的关联关系,获取与存放路径对应的补丁升级文件路径信息;

第二获取模块140,用于从与存放路径信息对应的补丁升级文件路径信息指向的目标分区中,获取与补丁升级文件路径信息匹配的补丁升级文件。

本实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,此处不再赘述。

图8为本发明提供的基于补丁升级的文件处理装置实施例二的结构示意图,本实施例是对上述图7所示实施例的装置的进一步功能补充,在上述图7所示实施例的基础上,如图8所示,本实施例的装置还包括:

第三获取模块150,用于获取补丁包;

第一存储模块160,用于若补丁包中包括紧急补丁包标识,则将补丁包保存在第二分区中;

则第二获取模块140,具体用于:从第二分区中,获取与补丁升级文件路径信息匹配的补丁升级文件。

可选的,本实施例的装置还包括:生成模块170,用于若补丁包中包括参数修改脚本,则执行参数修改脚本,从第一分区中获取原文件进行处理后,在第二分区中生成补丁升级文件。

作为本发明一种可能的实施方式,本实施例的装置还包括:第二存储模块180,用于将生成的补丁升级文件保存在第三分区中;则第二获取模块140,具体用于:从第三分区中,获取与补丁升级文件路径信息匹配的补丁升级文件。

可选的,本实施例的装置还包括:第三存储模块190,用于将第二分区中补丁包中的原文件路径信息和补丁升级文件路径信息的关联关系保存至预配置系统中。

本实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,此处不再赘述。

图9为本发明提供的终端的结构示意图,如图9所示,本实施例中的终端包括:至少一个处理器210,存储器220,至少一个网络接口230或者其他 用户接口240,至少一个通信总线250,用于显示终端的界面的硬件设备260。

通信总线250用于实现这些组件之间的连接通信。该终端可选的包含用户接口240,包括显示器(例如,触摸屏、LCD、CRT、全息成像(Holographic)或者投影(Projector)等),键盘或者点击设备(例如,鼠标、轨迹球(trackball)、触感板或者触摸屏等)。

存储器220可以包括只读存储器和随机存取存储器,并向处理器210提供指令和数据。

在一些实施方式中,存储器220存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:

操作系统221,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;

应用程序模块222,包含各种应用程序,例如图1所示的CA和TA等,用于实现各种应用业务。

用于显示终端的界面的硬件设备260可以包括显示内存、显示设备、触摸屏等。

可以理解的,图7所示的装置的各模块可以是本实施例中的处理器210的组成部分,处理器210通过执行存储器220中的程序或指令可以实现图7所示装置中各模块的功能。

在本发明实施例中,通过调用存储器220存储的程序或指令,处理器210用于:

接收文件访问请求,文件访问请求包括:存放路径信息;

若存放路径信息指向第一分区,则判断存放路径信息是否存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中;

若存放路径信息存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中,则查询预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系,获取与存放路径信息对应的补丁升级文件路径信息;

从对应的补丁升级文件路径信息指向的目标分区中,获取与补丁升级文件路径信息匹配的补丁升级文件。

基于同一发明构思,由于该终端解决问题的原理与本发明方法实施例中 的通信方法相似,因此该终端的实施可以参见方法的实施,例如用于获取补丁包、在第二分区中生成补丁升级文件和/或本发明方法实施例所描述的技术的其他过程。作为示例,处理器1103用于执行图4中的过程S101~S104、图6中的过程S201~S204。存储器1104用于存储用于终端的程序代码和数据。重复之处不再赘述。

本实施例提供的终端,终端接收到文件访问请求后,当文件访问请求中的存放路径信息指向第一分区时,则先判断存放路径信息是否存在于预配置系统中的原文件路径信息和补丁升级文件路径信息的关联关系中,若存在,则根据该关联关系获取与存放路径信息对应的补丁升级文件路径信息,然后根据该补丁升级文件路径信息去访问获取对应的补丁升级文件,基于这种文件处理方式,在原文件被访问时,根据路径信息访问补丁文件,实现了软件的补丁升级,本实施例的补丁包可以只包含用于修复紧急bug的补丁文件,补丁包较小,终端可以快速获取补丁包中的路径信息,并在原文件被访问时,根据该路径信息直接访问补丁文件,升级速度很快,且不需要制作多个针对历史版本的升级包,工作量小。

本发明实施例提供一种存储一个或多个程序的非易失计算机可读存储介质,其中,一个或多个程序包括指令,该指令当被终端执行时使终端执行上述方法。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一非易失计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号