CN112394969B - 一种补丁发布的方法、服务器及终端设备 - Google Patents
一种补丁发布的方法、服务器及终端设备 Download PDFInfo
- Publication number
- CN112394969B CN112394969B CN201910750608.9A CN201910750608A CN112394969B CN 112394969 B CN112394969 B CN 112394969B CN 201910750608 A CN201910750608 A CN 201910750608A CN 112394969 B CN112394969 B CN 112394969B
- Authority
- CN
- China
- Prior art keywords
- patch
- file
- original
- storage space
- information
- 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
-
- 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
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/64—Retargetable
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical 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)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了一种补丁发布的方法、服务器及终端设备,当存在满载分区的修复问题,或者当终端设备有特性需要扩展,而相关分区的空间已经没有剩余空间,终端设备可以从服务器上搜索下载补丁文件,使用压缩的空设备(loop)来扩展特性。具体地,可以使用空的loop设备与满载分区合成新的设备,能够使用非常小的空间来配置扩充大的空间。此外,基于磁盘块为维度的打包技术,重新对发生变化的文件以磁盘块的维度进行打包,确保满载分区时文件仍能够写入增加的磁盘块,而且通过对变化的补丁文件以磁盘块为维度进行打包,只有该补丁文件的磁盘块发生变化,不影响其他文件的磁盘块,提高了补丁发布的效率。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种补丁发布的方法、服务器及终端设备。
背景技术
当终端设备进行系统更新或升级时,终端设备先从服务器获取最新的文件,安装并覆盖原有的系统安装包;或者在用户通过终端设备使用某款应用程序(application,App)的过程中,当该应用出现bug需要进行紧急修复时,应用程序方一般重新打包App、测试、向各个应用市场和渠道换包、提示用户升级,用户通过终端设备从该应用程序对应的服务器下载补丁包,安装并覆盖原有的应用程序安装包。
以终端设备向服务器请求进行补丁修复为例,在该补丁发布过程中,有时候仅仅是为了修改了一行代码,也要付出巨大的成本进行换包和重新发布。而且,基于文件系统的修复需要将终端设备侧的文件全量进行替换,多个文件的修复将会导致终端设备存在很多的冗余信息;此外,在终端设备的分区紧张的场景下,无法实现快速实现修复。
发明内容
本申请提供一种补丁发布的方法、服务器及终端设备,该方法可以基于磁盘块,重新对内容变化或者新增的文件进行打包,确保满载分区时文件仍能够写入增加的磁盘块,提高了补丁发布的效率。
第一方面,提供了一种补丁发布的方法,该方法包括:服务器获取补丁文件;将该补丁文件划分为多个补丁块;从该多个补丁块中,确定目标补丁块,其中,该目标补丁块包括该补丁文件中相对于终端设备中的原始文件增加或变更的内容;向该终端设备发送更新文件,该更新文件包括该目标补丁块。
结合第一方面,在第一方面的某些实现方式中,该更新文件还包括每个目标补丁块在该补丁文件中的位置的信息。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,每个目标补丁块在该补丁文件中的位置与在该补丁文件中的位置相对应。
应理解,一般补丁文件的大小是有限制的,如果补丁文件过大,则无法准确的发送到终端设备。通过上述技术方案,基于磁盘块为维度的打包技术,重新对发生变化的文件以磁盘块的维度进行打包,确保满载分区时文件仍能够写入增加的磁盘块,使得前后两次的补丁文件的磁盘块偏移量较小,经过差分之后,所确定的最新补丁文件较小,从而可以使用非常小的空间进行修复,而且通过对变化的补丁文件以磁盘块为维度进行打包,只有该补丁文件的磁盘块发生变化,不影响其他文件的磁盘块,提高了补丁发布的效率。
第二方面,提供了一种补丁发布的方法,该方法还包括:服务器获取补丁文件;该服务器根据第一存储空间将该补丁文件划分为至少两个子文件,其中,该第一存储空间是该终端设备用于存储该补丁文件对应的原始文件的存储空间,其中,该至少两个子文件中的第一子文件占用的存储空间的大小小于或等于该第一存储空间的大小;向该终端设备发送该至少两个子文件和第一信息,该第一信息用于指示该至少两个子文件联合成虚拟机设备使用。
结合第二方面,在第二方面的某些实现方式中,该方法还包括:该服务器接收该终端设备发送的第二信息,该第二信息用于指示该第一存储空间的大小与该原始文件占用的存储空间的大小的差值小于或等于预设门限。
结合第二方面和上述实现方式,在第二方面的某些实现方式中,该方法还包括:该服务器接收该终端设备发送的第三信息,该第三信息用于指示该第一存储空间的大小。
上述技术方案,介绍了服务器侧生成新的补丁文件(最新补丁文件)的过程。当存在满载分区的修复问题,或者当终端设备有特性需要扩展,而相关分区的空间已经没有剩余空间,可以使用压缩的空设备(loop)来扩展特性。具体地,可以使用空的loop设备与满载分区合成新的设备,能够使用非常小的空间来配置扩充大的空间,提高了补丁发布的效率。
第三方面,提供了一种补丁发布的方法,该方法包括:终端设备接收服务器发送的更新文件,该更新文件包括目标补丁块,其中,该目标补丁块包括补丁文件中相对于该终端设备中的原始文件增加或变更的内容,该补丁文件被划分为多个补丁块,且该目标补丁块是从多个补丁块中确定的;该终端设备根据该更新文件和该原始文件,确定该补丁文件;该终端设备根据该补丁文件进行更新。
结合第三方面,在第三方面的某些实现方式中,该更新文件还包括每个目标补丁块在该补丁文件中的位置的信息。
结合第三方面和上述实现方式,在第三方面的某些实现方式中,每个目标补丁块在该补丁文件中的位置与在该补丁文件中的位置相对应。
第四方面,提供了一种补丁发布的方法,该方法包括:该终端设备接收该服务器发送的至少两个子文件和第一信息,其中,该至少两个子文件是由补丁文件划分而成,该至少两个子文件中的第一子文件占用的存储空间的大小小于或等于第一存储空间的大小,该第一存储空间是该终端设备用于存储该补丁文件对应的原始文件的存储空间;该终端设备在该第一存储空间存储该第一子文件,在至少一个第二存储空间存储该至少两个子文件中除该第一子文件以外的文件;当运行该补丁文件对应的程序时,该终端设备联合成虚拟机设备使用该至少两个子文件。
结合第四方面,在第四方面的某些实现方式中,该方法还包括:该终端设备向该服务器发送第二信息,该第二信息用于指示该第一存储空间的大小与该原始文件占用的存储空间的大小的差值小于或等于预设门限。
结合第四方面和上述实现方式,在第四方面的某些实现方式中,该方法还包括:该终端设备向该服务器发送第三信息,该第三信息用于指示该第一存储空间的大小。
第五方面,提供了一种补丁发布的装置,该装置包括:获取单元,用于获取补丁文件;处理单元,用于将该补丁文件划分为多个补丁块;该处理单元,还用于从该多个补丁块中,确定目标补丁块,其中,该目标补丁块包括该补丁文件中相对于终端设备中的原始文件增加或变更的内容;发送单元,用于向该终端设备发送更新文件,该更新文件包括该目标补丁块。
结合第五方面,在第五方面的某些实现方式中,该更新文件还包括每个目标补丁块在该补丁文件中的位置的信息。
结合第五方面和上述实现方式,在第五方面的某些实现方式中,每个目标补丁块在该补丁文件中的位置与在该补丁文件中的位置相对应。
第六方面,提供了一种补丁发布的装置,该装置包括:处理单元,用于根据第一存储空间将该补丁文件划分为至少两个子文件,其中,该第一存储空间是该终端设备用于存储该补丁文件对应的原始文件的存储空间,其中,该至少两个子文件中的第一子文件占用的存储空间的大小小于或等于该第一存储空间的大小;发送单元,用于发送该至少两个子文件和第一信息,该第一信息用于指示该至少两个子文件联合成虚拟机设备使用。
结合第六方面,在第六方面的某些实现方式中,该装置还包括:获取单元,用于接收该终端设备发送的第二信息,该第二信息用于指示该第一存储空间的大小与该原始文件占用的存储空间的大小的差值小于或等于预设门限。
结合第六方面和上述实现方式,在第六方面的某些实现方式中,该获取单元还用于:接收该终端设备发送的第三信息,该第三信息用于指示该第一存储空间的大小。
第七方面,提供了一种补丁发布的装置,该装置包括:获取单元,用于接收服务器发送的更新文件,该更新文件包括目标补丁块,其中,该目标补丁块包括补丁文件中相对于该终端设备中的原始文件增加或变更的内容,该补丁文件被划分为多个补丁块,且该目标补丁块是从多个补丁块中确定的;处理单元,用于根据该更新文件和该原始文件,确定该补丁文件;该处理单元,还用于根据该补丁文件进行更新。
结合第七方面,在第七方面的某些实现方式中,该更新文件还包括每个目标补丁块在该补丁文件中的位置的信息。
结合第七方面和上述实现方式,在第七方面的某些实现方式中,每个目标补丁块在该补丁文件中的位置与在该补丁文件中的位置相对应。
第八方面,提供了一种补丁发布的装置,该装置包括:获取单元,用于接收该服务器发送的至少两个子文件和第一信息,其中,该至少两个子文件是由补丁文件划分而成,该至少两个子文件中的第一子文件占用的存储空间的大小小于或等于第一存储空间的大小,该第一存储空间是该终端设备用于存储该补丁文件对应的原始文件的存储空间;处理单元,用于在该第一存储空间存储该第一子文件,在至少一个第二存储空间存储该至少两个子文件中除该第一子文件以外的文件;当运行该补丁文件对应的程序时,联合成虚拟机设备使用该至少两个子文件。
结合第八方面,在第八方面的某些实现方式中,该发送单元还用于:向该服务器发送第二信息,该第二信息用于指示该第一存储空间的大小与该原始文件占用的存储空间的大小的差值小于或等于预设门限。
结合第八方面和上述实现方式,在第八方面的某些实现方式中,该发送单元还用于:向该服务器发送第三信息,该第三信息用于指示该第一存储空间的大小。
第九方面,本申请提供了一种装置,该装置包含在电子装置中,该装置具有实现上述方面及上述方面的可能实现方式中电子装置行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,显示模块或单元、检测模块或单元、处理模块或单元等。
第十方面,本申请提供了一种终端装置,包括:触摸显示屏,其中,触摸显示屏包括触敏表面和显示器;摄像头;一个或多个处理器;存储器;多个应用程序;以及一个或多个计算机程序。其中,一个或多个计算机程序被存储在存储器中,一个或多个计算机程序包括指令。当指令被终端装置执行时,使得终端装置执行上述任一方面任一项可能的实现中的补丁发布的方法。
第十一方面,本申请提供了一种装置,包括一个或多个处理器和一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得装置执行上述任一方面任一项可能的实现中的补丁发布的方法。
第十二方面,本申请提供了一种计算机存储介质,包括计算机指令,当计算机指令在电子装置上运行时,使得电子装置执行上述任一方面任一项可能的补丁发布的方法。
第十三方面,本申请提供了一种计算机程序产品,当计算机程序产品在电子装置上运行时,使得电子装置执行上述任一方面任一项可能的补丁发布的方法。
第十四方面,提供了一种芯片系统,其特征在于,所述芯片系统包括:存储器,用于存储指令;处理器,用于从所述存储器中调用并运行所述指令,使得安装有所述芯片系统的设备执行上述任一方面任一项可能的补丁发布的方法。
附图说明
图1是本申请提供的一例补丁发布过程示意图。
图2是本申请提供的又一例补丁发布过程示意图。
图3是本申请实施例提供的一例补丁发布的方法的示意性流程图。
图4是本申请实施例提供的一例服务器生成补丁文件过程的示意图。
图5是本申请实施例提供的一例生成虚拟设备的示意图。
图6是本申请实施例提供的一例生成差量设备的示意图。
图7是本申请实施例提供的一例补丁生效过程的示意图。
图8是本申请实施例提供的一例补丁发布过程示意图。
图9是本申请实施例提供的一例补丁发布的装置的组成示意图。
图10是本申请实施例提供的一例补丁发布的装置的组成示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
在本申请实施例的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。例如本申请中的“最新补丁文件”、“新的镜像文件”等。
本申请提供的补丁发布的方法可以用于终端设备的系统更新,或者终端设备上的某一款应用程序的更新或修复,在实施例的描述中,将以补丁修复为例进行介绍,本申请对此不做限定。
图1是本申请提供的一例补丁发布过程示意图。以用户通过终端设备使用某款应用程序(application,App)的过程为例,当一款应用程序发布之后,用户通过终端设备使用该应用出现bug需要进行紧急修复时,应用程序方一般重新打包App、测试、向各个应用市场和渠道换包、提示用户升级,用户通过终端设备从该应用程序对应的服务器下载补丁包,安装并覆盖原有的应用程序安装包。在该补丁发布过程中,有时候仅仅是为了修改了一行代码,也要付出巨大的成本进行换包和重新发布。如图1所示,该补丁发布系统100可以包括服务器10、终端设备20,其中,终端设备20通过网络30实现和服务器10之间进行通信。
服务器10也可以称为云端、云侧等,终端设备20可以称为端侧。其中,终端设备20可以是手机、平板电脑、具备无线通讯功能的可穿戴电子设备(如智能手表)、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等电子设备。可选地,该终端设备20可以是包括但不限于搭载iOS®、Android®、Microsoft®或者其它操作系统的便携式电子设备,在一些实施例中,电子设备可以是智能家电,诸如智能音箱、智能家居设备等等,本申请实施例对终端设备20和服务器10的具体类型不作任何限制。
如图1所示,当终端设备20运行的某款应用需要修复时,会向该应用对应的服务器10请求新的补丁40。服务器10获取补丁40之后,可以通过网络将补丁40下发到终端设备20,终端设备20可以进行补丁的校验、升级,并进而对该应用的原有安装包进行替换或者覆盖安装,以完成该应用的修复过程。
图2是本申请提供的又一例补丁发布过程示意图。在图2中,以安卓系统(Android)的终端设备20为例,安卓系统为终端设备的各类应用程序提供的运行环境和各类服务,例如锁屏服务、文件加密服务、第三方应用程序(APP)运行等。结合本申请介绍的补丁发布过程,可以将终端设备20的系统架构划分为四层,从上至下分别为应用程序(APP)层、应用程序框架层(framework)、系统存储区。
其中,应用程序层可以包括一系列应用程序包,例如相机、图库、日历、通话、地图、导航、WLAN、蓝牙、音乐、短信息等。应用程序框架层为应用程序层的应用程序提供应用编程接口(application programminginterface,API)和编程框架,应用程序框架层可以包括一些预先定义的函数,可以包括初始化(init)进程以及其fork出来的用户空间的守护进程、HAL层、开机动画等。图2中示出的嵌入式非易失性存储器(embedded multi media card,EMMC) 可以是系统存储的一种,这里不再赘述。
具体地,结合图1和图2,在补丁发布的过程中,在服务器10侧,首先生成补丁压缩包,并对补丁压缩包进行加密等操作生成最终发布到服务器10的补丁包文件。
在终端设备20侧,当终端设备20运行的APP需要修复时,会向服务器10请求获取该应用的补丁包文件,由APP层进行搜包,从服务器10下载补丁包文件,并进行补丁包文件的校验等,对补丁包进行升级、更新等,并将得到的镜像文件(新的补丁文件据)存储在EMMC的补丁分区。再初始化(init)该补丁数据,进行补丁加载,进而对该应用的原有安装包进行替换或者覆盖安装,以完成该应用的修复过程。
以上介绍的补丁的修复的全过程可以理解为基于文件系统的补丁发布技术,可以将待修复的文件全量替换,没有差分技术,差分合成之后的完整文件无法存放;且该补丁发布过程要求更多的分区空间,无法解决具有联动文件的问题修复。此外,该overlay的补丁发布技术只能修复文件启动之后的文件访问,对于文件系统起来之前,有内核访问文件的场景,那么无法修复该文件。例如,一个修复可能涉及到多个层的多个补丁文件,多个文件的修复会导致修复的冗余包被下发到终端设备中,这样会下发很多冗余信息。
在另一种实现方式中,系统镜像使用超级文件系统(extendable read-onlyfilesystem,erofs)进行打包。Erofs文件系统打包能够自定义打包的磁盘块(block)格式,但是overlay的补丁发布技术是基于文件的全量替换,因此该方式无法和overlay的补丁发布技术相结合进行补丁包的优化。除此之外,在数据满载场景下,无法通过新增文件来进行补丁的修复。
本申请将提供一种补丁发布的方法,当终端设备有紧急问题需要修复时,或者当数据满载的场景下,可以解决当前的问题修复。下面将结合图3至图7,详细介绍本申请提供的补丁发布的方法。
图3是本申请实施例提供的一例补丁发布的方法的示意性流程图。如图3所示,该方法可以包括以下内容:
301,服务器10获取补丁文件。
302,服务器10将所述补丁文件划分为多个补丁块,从所述多个补丁块中,确定目标补丁块,其中,所述目标补丁块包括所述补丁文件中相对于终端设备20中的原始文件增加或变更的内容。
303,服务器10向终端设备20发送更新文件,相应地,终端设备接收服务器发送的更新文件,所述更新文件包括所述目标补丁块。
304,终端设备20根据所述更新文件和所述原始文件,确定所述补丁文件。
305,终端设备20根据所述补丁文件进行更新。
在本申请终端设备20修复过程中,前后两次从服务器10获取的补丁文件分别称为“原始补丁文件”和“最新补丁文件”,其中,原始补丁文件为终端设备20前一次从服务器10获取的补丁文件,最新补丁文件为紧接的后一次终端设备20从服务器10获取的补丁文件。
应理解,在服务器10获取补丁文件之前,终端设备20向服务器10发送补丁更新请求,该补丁更新请求可以包括当前终端设备20存储的原始文件的信息。服务器10可以获知终端设备当前存储的原始文件。
图4是本申请实施例提供的一例服务器生成补丁文件过程的示意图。如图4所示,服务器10生成补丁文件的过程400可以包括步骤a-f。
a,服务器10将原始补丁文件划分为多个补丁块。
b,服务器10将最新的补丁文件划分为多个补丁块。
应理解,这里最新的补丁文件是相较于前次的原始补丁文件,内容有了变化或者更新的补丁文件。
具体地,在补丁文件的划分过程中,可以基于磁盘块的维度进行划分。例如,磁盘块的维度可以称为“block”,可选地,每个block可以为4 KB,本申请对此不做限定。在步骤a和步骤b中,当前后的补丁文件的磁盘块偏移量越小时,经过差分之后,所确定的最新补丁文件越小,从而可以使用非常小的空间进行修复。
示例性的,假如前次的补丁文件(原始补丁文件)作为一个文件整体,包括block1、2、3、4、5、6和7,当最新的补丁文件中从block 1就发生变化,则对前次的补丁文件(原始补丁文件)和最新的补丁文件进行差分处理之后,形成的最新补丁文件会由于block 1的变化,导致block 1、2、3、4、5、6和7全部和前次的补丁文件(原始补丁文件)发生变化,从而block 1、2、3、4、5、6和7将全部作为新的补丁文件的内容下发到终端设备,即差分偏移量较大,导致补丁文件过大。但是,一般补丁文件的大小是有限制的,例如32M的限制。
在一种可能的实现方式中,对于发生相同内容变化的文件,可以使用以下任意一种方法,对新的补丁文件进行重新排列,同时保证磁盘块偏移小较小。具体如下方法:
(1)前后两次打包使用相同的时间戳。
具体地,当两次补丁文件的差分偏移量是由时间戳影响时,可以对前后两次的补丁文件使用相同的时间戳进行打包。例如,采用前次的对原始补丁文件的打包的时间戳,对当前的新的补丁文件进行打包,从而使得两次的补丁文件可以在时间戳上实现对齐,减小前后两次打包过程中的差分偏移量。
(2)前后两次打包使用相同的盐值进行混淆。
具体地,生成补丁文件过程中需要提高补丁文件的安全性,例如反编译能力。可选地,服务器可以在补丁文件的打包过程中采用随机值对补丁文件进行混淆。
示例性的,对前次的原始补丁文件和当前的新的补丁文件采用相同的随机值(盐值)进行混淆,即使得两次打包取得相同的混淆效果,可以减少两次打包的差分偏移量,同时提高补丁文件的安全性。
(3)使用前后两次编译的map来对结果进行重排,使得磁盘块偏移最小。
当生成的补丁文件是以源代码形式存在,而不是以文件系统的形式存在时,源代码中可能包括多个不同的类,例如类1和类2。在编译过程中,对原始补丁文件的编译可能类1在前面,类2在后面;在对新的补丁文件的编译可能类2在前面,类1在后面。这样在两次差分过程中,导致前后两次编译的差分偏移量很大,从而导致新的补丁文件也很大。
为了缩小前后两次编译的差分偏移量,可以使用前后两次编译的map来对结果进行重排,以使得前后两次的补丁文件的磁盘块偏移小较小。
应理解,一般补丁文件的大小是有限制的,如果补丁文件过大,则无法准确的发送到终端设备。通过上述技术方案提供的不同的磁盘块排列方法,可以使得前后两次的补丁文件的磁盘块偏移量较小,经过差分之后,所确定的最新补丁文件较小,从而可以使用非常小的空间进行修复。
c,对比原始补丁文件包括多个补丁块和最新补丁文件包括的多个补丁块,确定目标补丁块。
d,部分原始补丁块在原始镜像文件中。
e,目标补丁块在尾部的磁盘块中。
应理解,该目标补丁块包括所述补丁文件中相对于终端设备中的原始文件增加或变更的内容。示例性的,如图4所示,原始补丁文件包括多个补丁块block 11、12、13、14、15、16和17;最新补丁文件包括多个补丁块block 1、2、3、4、5、6和7,服务器10通过比较每个补丁块,确定出增加或变更的目标补丁块。假设确定出最新补丁文件的补丁块block 1、2、3、4没有变化,block5、6、7为新增的补丁块,将block 1、2、3、4称为原始补丁块,放在原始镜像文件中,将内容更新或变化的block 5、6、7作为目标补丁块,放在新增的磁盘分区中。
可选地,服务器10还可以获取新的补丁文件的基本信息得到目录项(dentry)信息,对文件占用的内容划分block块时,可以获取补丁文件中的dentry信息和block信息,服务器10可以准确获知哪一个block发生了内容变化或者更新。
f,打包成新的二进制文件,即生成新的镜像文件(system_new),该新的镜像文件带有修复代码。
上述步骤a-f,介绍了服务器10确定新的镜像文件(system_new)的过程,此时,服务器10可以在生成新的镜像文件(system_new)。
在一种可能的情况中,如果原始补丁文件的原始镜像中占用block 1、2、3、4的大小已经造成磁盘满载,那么新的补丁文件的block 5、6和7的磁盘块已经超过原始镜像大小,通过新增加的空分区000000组成新的镜像文件,进一步将新的补丁文件的block 5、6和7的磁盘块放在该空分区000000中,可以扩大磁盘分区,即配置更大的空间。
图5是本申请实施例提供的一例生成虚拟设备的示意图。如图5所示,生成虚拟设备的过程可以包括:
g,对于满载分区,使用压缩的空分区000000拼接合成新的线性(linear)设备;
h,确定空的环形设备(loop);
i,将新的线性(linear)设备和空的环形设备(loop)组成新的虚拟设备dev-0。
应理解,新的虚拟设备dev-0不区分文件系统,可以实现对外的写接口,也可以不实现对外的写接口。还应理解,空的环形设备(loop)是大小和新的线性(linear)设备相等,内容为全零的设备。
图6是本申请实施例提供的一例生成差量设备的示意图。如图6所示,生成差量设备的过程可以包括:
j,服务器获取图4中的新的镜像文件(system_new);
k,服务器获取图5中的新的虚拟设备dev-0;
l,根据新的镜像文件(system_new)和新的只读虚拟设备dev-0,生成差量设备dev-cow,即最新的补丁文件。
具体地,将步骤a-f中按照磁盘块打包生成的新的镜像文件(system_new)作为一个新文件,从头到尾以block为单位读取,然后写入到dev-0中。在写入的过程中,block1、2、3和4数据块满载的镜像中写入磁盘块,写入的时候会与新的镜像文件(system_new)中的磁盘块数据进行比较。如果有磁盘块数据不同,那么直接将该数据块写入空的loop设备中;对于block 5、6和7磁盘块,已经超过满载的设备的大小边界,直接将这些磁盘块写入到dev-0设备中,再生成dev-cow设备,该设备包含了file_new变化了的磁盘块。
可选地,当磁盘分区没有满载时,例如在图4中,block 1、2、3、4的数据块放在老镜像文件中,也没有造成磁盘分区的满载时,不需要新增空分区000000对磁盘进行扩充,即可得到新的镜像文件(system_new)。同时,对应在图5中,也不需要通过空分区000000对满载分区进行扩充,即不需要步骤315的拼接,即可和同样大小的空的环形设备(loop)组成新的虚拟设备dev-0,再根据新的镜像文件(system_new)和新的虚拟设备dev-0,生成差量设备dev-cow,本申请对此不做限定。
上述技术方案,介绍了服务器侧生成新的补丁文件(最新补丁文件)的过程。当存在满载分区的修复问题,或者当终端设备有特性需要扩展,而相关分区的空间已经没有剩余空间,终端设备可以从服务器上搜索下载补丁文件,使用压缩的空设备(loop)来扩展特性。具体地,可以使用空的loop设备与满载分区合成新的设备,能够使用非常小的空间来配置扩充大的空间。此外,基于磁盘块为维度的打包技术,重新对发生变化的文件以磁盘块的维度进行打包,确保满载分区时文件仍能够写入增加的磁盘块,而且通过对变化的补丁文件以磁盘块为维度进行打包,只有该补丁文件的磁盘块发生变化,不影响其他文件的磁盘块,提高了补丁发布的效率。
应理解,服务器10在向终端设备20发送最新补丁文件的过程中,将压缩的空设备(loop)随着最新补丁文件(dev-cow)一起下发给终端设备20,终端设备20可以存放在本地系统中,本申请对此不做限定。
图7是本申请实施例提供的一例补丁生效过程的示意图。如图7所示,当服务器10下发的最新补丁文件(dev-cow)确定要扩充满载分区时,终端设备20的补丁生效过程具体包括一下步骤:
m,终端设备20根据满载分区和空分区000000合并为线性设备设备dm-0’;
n,线性设备dm-0’和最新补丁文件(dev-cow)合成新的分区设备dev-0,并根据新的分区设备,替换对应的问题分区,修复问题。
换言之,终端设备接收服务器发送的更新文件,该更新文件包括目标补丁块,其中,所述目标补丁块包括补丁文件中相对于终端设备中的原始文件增加或变更的内容;终端设备可以根据所述更新文件和所述原始文件,还原最新补丁文件,再根据所述补丁文件进行更新。
在一种可能的实现方式中,终端设备获取的更新文件还包括每个目标补丁块在所述补丁文件中的位置的信息。
在一种可能的实现方式中,终端设备获取的每个目标补丁块在所述补丁文件中的位置与在所述补丁文件中的位置相对应。
通过上述方式,终端设备在获取了目标补丁块之后,就可以准确的获知发生变化或者更新的补丁块的位置,从而还原最新补丁文件。
应理解,使用最新补丁文件中的dev-cow设备与dm-0’设备合成新的分区设备dev-0,此时合成dev-0设备应该和第一步中重新打包生成的新的镜像文件(system_new)内容一致,即终端设备完成了还原新的镜像文件的过程,并根据新的镜像文件进行更新。
还应理解,根据device mapper可知,最新补丁文件中的dev-cow设备与dm-0’设备的大小一致。
上述技术方案,介绍了终端设备侧获取并还原新的补丁文件(最新补丁文件)的过程。当存在满载分区的修复问题,或者当终端设备有特性需要扩展,而相关分区的空间已经没有剩余空间,终端设备可以使用补丁文件中压缩的空设备(loop)来扩展特性。
图8是本申请实施例提供的一例补丁发布过程示意图。具体地,如图8所示,待修复的终端设备20从服务器10获取补丁文件40,当要修复的分区为满载分区时,可以使用空的loop设备与满载分区使用block差分文件合成新的设备,能够使用非常小的空间来配置扩充大的空间。此外,由于服务器侧对变化的补丁文件以磁盘块为维度进行打包,只有该补丁文件的磁盘块发生变化,可以缩小补丁文件的大小,提高了补丁文件的传输效率。
结合上述介绍的实施例及相关附图,本申请提供了一种补丁发布的装置,图9是本申请实施例提供的一种补丁发布的装置900的示意图。可以理解的是,补丁发布的装置900可以是前述的服务器,或者应用于服务器的芯片或组件,该装置900中各模块或单元分别用于执行上述方法300中服务器10介绍的各动作或处理过程,和/或用于本文所描述的技术的其他过程。装置900包含了执行各个功能相应的硬件和/或软件模块,如图9所示,900可以包括:
获取单元901,用于获取补丁文件。
处理单元902,用于将所述补丁文件划分为多个补丁块。
所述处理单元902,还用于从所述多个补丁块中,确定目标补丁块,其中,所述目标补丁块包括所述补丁文件中相对于终端设备中的原始文件增加或变更的内容。
发送单元903,用于向所述终端设备发送更新文件,所述更新文件包括所述目标补丁块。
在一种可能的实现方式中,更新文件还包括每个目标补丁块在所述补丁文件中的位置的信息。
在另一种可能的实现方式中,每个目标补丁块在所述补丁文件中的位置与在所述补丁文件中的位置相对应。
在另一种可能的实现方式中,处理单元902还用于根据第一存储空间将所述补丁文件划分为至少两个子文件,其中,所述第一存储空间是所述终端设备用于存储所述补丁文件对应的原始文件的存储空间,其中,所述至少两个子文件中的第一子文件占用的存储空间的大小小于或等于所述第一存储空间的大小;发送单元903还用于发送所述至少两个子文件和第一信息,所述第一信息用于指示所述至少两个子文件联合成虚拟机设备使用。
可选地,获取单元还用于接收所述终端设备发送的第二信息,所述第二信息用于指示所述第一存储空间的大小与所述原始文件占用的存储空间的大小的差值小于或等于预设门限。
在另一种可能的实现方式中,所述获取单元901还用于接收所述终端设备发送的第三信息,所述第三信息用于指示所述第一存储空间的大小。
应理解,该装置900可对应于根据本申请实施例的方法300中的服务器10,该装置900也可以是应用于服务器10的芯片或组件。并且,该装置900中的各模块实现图3中的方法300中的相应流程,具体地,该处理单元902用于执行方法300中的301、302,该发送单元903用于执行方法300中的303,各单元执行上述相应步骤的具体过程在方法300中已经详细说明,为了简洁,在此不加赘述。
本申请提供了又一例补丁发布的装置,图10是本申请实施例提供的一种补丁发布的装置1000的示意图。可以理解的是,补丁发布的装置1000可以是前述的终端设备20,或者应用于终端设备20的芯片或组件,该装置1000中各模块或单元分别用于执行上述方法300中终端设备20介绍的各动作或处理过程,和/或用于本文所描述的技术的其他过程。装置1000包含了执行各个功能相应的硬件和/或软件模块,如图10所示,1000可以包括:
获取单元1001,用于接收服务器发送的更新文件,所述更新文件包括目标补丁块,其中,所述目标补丁块包括补丁文件中相对于所述终端设备中的原始文件增加或变更的内容,所述补丁文件被划分为多个补丁块,且所述目标补丁块是从多个补丁块中确定的。
处理单元1002,用于根据所述更新文件和所述原始文件,确定所述补丁文件;
所述处理单元1002,还用于根据所述补丁文件进行更新。
在一种可能的实现方式中,所述更新文件还包括每个目标补丁块在所述补丁文件中的位置的信息。
在一种可能的实现方式中,每个目标补丁块在所述补丁文件中的位置与在所述补丁文件中的位置相对应。
在一种可能的实现方式中,所述获取单元1001还用于接收所述服务器发送的至少两个子文件和第一信息,其中,所述至少两个子文件是由补丁文件划分而成,所述至少两个子文件中的第一子文件占用的存储空间的大小小于或等于第一存储空间的大小,所述第一存储空间是所述终端设备用于存储所述补丁文件对应的原始文件的存储空间;所述处理单元1002还用于在所述第一存储空间存储所述第一子文件,在至少一个第二存储空间存储所述至少两个子文件中除所述第一子文件以外的文件;当运行所述补丁文件对应的程序时,联合成虚拟机设备使用所述至少两个子文件。
在一种可能的实现方式中,所述装置还包括发送单元1003,用于向所述服务器发送第二信息,所述第二信息用于指示所述第一存储空间的大小与所述原始文件占用的存储空间的大小的差值小于或等于预设门限。
在一种可能的实现方式中,所述发送单元1003还用于向所述服务器发送第三信息,所述第三信息用于指示所述第一存储空间的大小。
应理解,该装置1000可对应于根据本申请实施例的方法300中的终端设备20,该装置1000也可以是应用于终端设备20的芯片或组件。并且,该装置1000中的各模块实现图3中的方法300中的相应流程,具体地,该处理单元1002用于执行方法300中的304、305,该获取单元1001用于执行方法300中的303,各单元执行上述相应步骤的具体过程在方法300中已经详细说明,为了简洁,在此不加赘述。
本发明实施例还提供一种电子装置或终端设备,其除了图10所示的模块外,还可以包括基带处理器,收发器,显示屏,输入输出装置等,例如外部存储器接口,内部存储器,通用串行总线(universal serial bus,USB)接口,充电管理模块,电源管理模块,电池,天线,移动通信模块,无线通信模块,音频模块,扬声器,受话器,麦克风,耳机接口,传感器模块,按键,马达,指示器,摄像头,显示屏,以及用户标识模块(subscriberidentificationmodule,SIM)卡接口等。其中传感器模块可以包括压力传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器、骨传导传感器等。
可以理解的是,本申请实施例示意的结构并不构成对电子装置或终端设备的具体限定。在本申请另一些实施例中,电子装置或终端设备可以包括比图示或者以上列举的更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现,本申请对此不做任何限制。
可以理解的是,电子装置为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法示例对电子装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例提供的电子装置,用于执行上述补丁发布的方法,因此可以达到与上述实现方法相同的效果。
在采用集成的单元的情况下,电子装置可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对电子装置的动作进行控制管理,例如,可以用于支持电子装置执行上述各个单元所执行的步骤。存储模块可以用于支持电子装置执行存储程序代码和数据等。通信模块,可以用于支持电子装置与其他设备的通信。
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片、Wi-Fi芯片等与其他电子装置交互的设备。
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子装置上运行时,使得电子装置执行上述相关方法步骤实现上述实施例中的补丁发布的方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的补丁发布的方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的补丁发布的方法。
其中,本实施例提供的电子装置、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (27)
1.一种补丁发布的方法,其特征在于,所述方法包括:
服务器获取补丁文件;
将所述补丁文件划分为多个补丁块;
将所述多个补丁块排列;
从所述多个补丁块中,确定目标补丁块,其中,所述目标补丁块包括所述补丁文件中相对于终端设备中的原始文件增加或变更的内容;
从所述多个补丁块中确定原始补丁块,所述原始补丁块对应的修复内容在原始镜像文件中;
当所述原始补丁块对应的所述原始文件所在的磁盘满载时,将所述目标补丁块对应的文件存储于新增磁盘分区中;
根据所述原始补丁块和所述目标补丁块生成新的镜像文件;
根据线性设备和环形设备组成虚拟设备,所述线性设备存放有所述原始补丁块,所述环形设备为空;
根据所述虚拟设备和所述新的镜像文件生成差量设备dev-cow,进而确定更新文件;
向所述终端设备发送所述更新文件,所述更新文件包括所述目标补丁块。
2.根据权利要求1所述的方法,其特征在于,所述更新文件还包括每个目标补丁块在所述补丁文件中的位置的信息。
3.根据权利要求1所述的方法,其特征在于,每个目标补丁块在所述补丁文件中的位置与在所述补丁文件中的位置相对应。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
所述服务器根据第一存储空间将所述补丁文件划分为至少两个子文件,其中,所述第一存储空间是所述终端设备用于存储所述补丁文件对应的原始文件的存储空间,其中,所述至少两个子文件中的第一子文件占用的存储空间的大小小于或等于所述第一存储空间的大小;
向所述终端设备发送所述至少两个子文件和第一信息,所述第一信息用于指示所述至少两个子文件联合成虚拟机设备使用。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述服务器接收所述终端设备发送的第二信息,所述第二信息用于指示所述第一存储空间的大小与所述原始文件占用的存储空间的大小的差值小于或等于预设门限。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述服务器接收所述终端设备发送的第三信息,所述第三信息用于指示所述第一存储空间的大小。
7.一种补丁发布的方法,其特征在于,所述方法包括:
终端设备接收服务器发送的更新文件,所述更新文件包括目标补丁块,其中,所述目标补丁块包括补丁文件中相对于所述终端设备中的原始文件增加或变更的内容,所述补丁文件被划分为多个补丁块,且所述目标补丁块是从排列后的多个补丁块中确定的,所述多个补丁块包括原始补丁块,所述原始补丁块对应的修复内容在原始镜像文件中;
当所述原始补丁块对应的所述原始文件所在的磁盘满载时,所述目标补丁块对应的文件存储在新增磁盘分区中;
所述更新文件是由虚拟设备和新的镜像文件生成的差量设备dev-cow进而确定的,所述虚拟设备是由线性设备和环形设备组成的,所述线性设备存放有所述原始补丁块,所述环形设备为空;
所述新的镜像文件是由所述原始补丁块和所述目标补丁块生成的;
所述终端设备根据所述更新文件和所述原始文件,确定所述补丁文件;
所述终端设备根据所述补丁文件进行更新。
8.根据权利要求7所述的方法,其特征在于,所述更新文件还包括每个目标补丁块在所述补丁文件中的位置的信息。
9.根据权利要求7所述的方法,其特征在于,每个目标补丁块在所述补丁文件中的位置与在所述补丁文件中的位置相对应。
10.根据权利要求7至9中任一项所述的方法,其特征在于,所述方法包括:
所述终端设备接收所述服务器发送的至少两个子文件和第一信息,其中,所述至少两个子文件是由补丁文件划分而成,所述至少两个子文件中的第一子文件占用的存储空间的大小小于或等于第一存储空间的大小,所述第一存储空间是所述终端设备用于存储所述补丁文件对应的原始文件的存储空间;
所述终端设备在所述第一存储空间存储所述第一子文件,在至少一个第二存储空间存储所述至少两个子文件中除所述第一子文件以外的文件;
当运行所述补丁文件对应的程序时,所述终端设备联合成虚拟机设备使用所述至少两个子文件。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
所述终端设备向所述服务器发送第二信息,所述第二信息用于指示所述第一存储空间的大小与所述原始文件占用的存储空间的大小的差值小于或等于预设门限。
12.根据权利要求10所述的方法,其特征在于,所述方法还包括:
所述终端设备向所述服务器发送第三信息,所述第三信息用于指示所述第一存储空间的大小。
13.一种补丁发布的装置,其特征在于,所述装置包括:
获取单元,用于获取补丁文件;
处理单元,用于将所述补丁文件划分为多个补丁块;
所述处理单元,还用于将所述多个补丁块排列;
所述处理单元,还用于从所述多个补丁块中,确定目标补丁块,其中,所述目标补丁块包括所述补丁文件中相对于终端设备中的原始文件增加或变更的内容;
所述处理单元,还用于从所述多个补丁块中确定原始补丁块,所述原始补丁块对应的修复内容在原始镜像文件中;
所述处理单元,还用于当所述原始补丁块对应的所述原始文件所在的磁盘满载时,将所述目标补丁块对应的文件存储于新增磁盘分区中;
所述处理单元,还用于根据所述原始补丁块和所述目标补丁块生成新的镜像文件;
所述处理单元,还用于根据线性设备和环形设备组成虚拟设备,所述线性设备存放有所述原始补丁块,所述环形设备为空;
所述处理单元,还用于根据所述虚拟设备和所述新的镜像文件生成差量设备dev-cow,进而确定更新文件
发送单元,用于向所述终端设备发送所述更新文件,所述更新文件包括所述目标补丁块。
14.根据权利要求13所述的装置,其特征在于,所述更新文件还包括每个目标补丁块在所述补丁文件中的位置的信息。
15.根据权利要求13所述的装置,其特征在于,每个目标补丁块在所述补丁文件中的位置与在所述补丁文件中的位置相对应。
16.根据权利要求13至15中任一项所述的装置,其特征在于,所述处理单元还用于:
根据第一存储空间将所述补丁文件划分为至少两个子文件,其中,所述第一存储空间是所述终端设备用于存储所述补丁文件对应的原始文件的存储空间,其中,所述至少两个子文件中的第一子文件占用的存储空间的大小小于或等于所述第一存储空间的大小;
所述发送单元,还用于:
发送所述至少两个子文件和第一信息,所述第一信息用于指示所述至少两个子文件联合成虚拟机设备使用。
17.根据权利要求16所述的装置,其特征在于,所述获取单元还用于:
接收所述终端设备发送的第二信息,所述第二信息用于指示所述第一存储空间的大小与所述原始文件占用的存储空间的大小的差值小于或等于预设门限。
18.根据权利要求16所述的装置,其特征在于,所述获取单元还用于:
接收所述终端设备发送的第三信息,所述第三信息用于指示所述第一存储空间的大小。
19.一种补丁发布的装置,其特征在于,所述装置包括:
获取单元,用于接收服务器发送的更新文件,所述更新文件包括目标补丁块,其中,所述目标补丁块包括补丁文件中相对于终端设备中的原始文件增加或变更的内容,所述补丁文件被划分为多个补丁块,且所述目标补丁块是从排列后的多个补丁块中确定的,所述多个补丁块包括原始补丁块,所述原始补丁块对应的修复内容在原始镜像文件中;
当所述原始补丁块对应的所述原始文件所在的磁盘满载时,所述目标补丁块对应的文件存储在新增磁盘分区中;
所述更新文件是由虚拟设备和新的镜像文件生成的差量设备dev-cow进而确定的,所述虚拟设备是由线性设备和环形设备组成的,所述线性设备存放有所述原始补丁块,所述环形设备为空;
所述新的镜像文件是由所述原始补丁块和所述目标补丁块生成的;
处理单元,用于根据所述更新文件和所述原始文件,确定所述补丁文件;
所述处理单元,还用于根据所述补丁文件进行更新。
20.根据权利要求19所述的装置,其特征在于,所述更新文件还包括每个目标补丁块在所述补丁文件中的位置的信息。
21.根据权利要求19所述的装置,其特征在于,每个目标补丁块在所述补丁文件中的位置与在所述补丁文件中的位置相对应。
22.根据权利要求19至21中任一项所述的装置,其特征在于,所述获取单元还用于:
接收所述服务器发送的至少两个子文件和第一信息,其中,所述至少两个子文件是由补丁文件划分而成,所述至少两个子文件中的第一子文件占用的存储空间的大小小于或等于第一存储空间的大小,所述第一存储空间是所述终端设备用于存储所述补丁文件对应的原始文件的存储空间;
所述处理单元,还用于:
在所述第一存储空间存储所述第一子文件,在至少一个第二存储空间存储所述至少两个子文件中除所述第一子文件以外的文件;
当运行所述补丁文件对应的程序时,联合成虚拟机设备使用所述至少两个子文件。
23.根据权利要求22所述的装置,其特征在于,所述装置还包括:
发送单元,用于向所述服务器发送第二信息,所述第二信息用于指示所述第一存储空间的大小与所述原始文件占用的存储空间的大小的差值小于或等于预设门限。
24.根据权利要求23所述的装置,其特征在于,所述发送单元还用于:
向所述服务器发送第三信息,所述第三信息用于指示所述第一存储空间的大小。
25.一种装置,其特征在于,包括:
存储器,用于存储指令;
处理器,用于从所述存储器中调用并运行所述指令,使得所述装置执行如权利要求1至12中任一项所述的方法。
26.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子装置上运行时,使得所述电子装置执行如权利要求1至12中任一项所述的方法。
27.一种芯片系统,其特征在于,所述芯片系统包括:
存储器,用于存储指令;
处理器,用于从所述存储器中调用并运行所述指令,使得安装有所述芯片系统的设备执行如权利要求1至12中任意一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910750608.9A CN112394969B (zh) | 2019-08-14 | 2019-08-14 | 一种补丁发布的方法、服务器及终端设备 |
US17/635,300 US20220291918A1 (en) | 2019-08-14 | 2020-08-04 | Patch release method, server, and terminal device |
EP20852075.9A EP3992783A4 (en) | 2019-08-14 | 2020-08-04 | PATCH RELEASE METHOD, SERVER AND TERMINAL |
PCT/CN2020/106694 WO2021027613A1 (zh) | 2019-08-14 | 2020-08-04 | 一种补丁发布的方法、服务器及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910750608.9A CN112394969B (zh) | 2019-08-14 | 2019-08-14 | 一种补丁发布的方法、服务器及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112394969A CN112394969A (zh) | 2021-02-23 |
CN112394969B true CN112394969B (zh) | 2023-04-28 |
Family
ID=74569304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910750608.9A Active CN112394969B (zh) | 2019-08-14 | 2019-08-14 | 一种补丁发布的方法、服务器及终端设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220291918A1 (zh) |
EP (1) | EP3992783A4 (zh) |
CN (1) | CN112394969B (zh) |
WO (1) | WO2021027613A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331575A (zh) * | 2023-10-09 | 2024-01-02 | 上海合芯数字科技有限公司 | 固件修复方法、装置、控制器及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002175157A (ja) * | 2000-12-08 | 2002-06-21 | Toshiba Corp | ディスクアレイ装置 |
JP5692829B1 (ja) * | 2013-07-11 | 2015-04-01 | 株式会社東芝 | 仮想ディスクイメージを処理するシステム、クライアント端末、及び方法 |
CN104731915A (zh) * | 2015-03-24 | 2015-06-24 | 上海爱数软件有限公司 | 一种分布式存储系统中磁盘设备映射方法 |
CN106095619A (zh) * | 2016-06-08 | 2016-11-09 | 杭州华三通信技术有限公司 | 一种虚拟机备份方法及装置 |
CN108038112A (zh) * | 2017-09-28 | 2018-05-15 | 广东欧珀移动通信有限公司 | 文件处理方法、移动终端及计算机可读存储介质 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6466999B1 (en) * | 1999-03-31 | 2002-10-15 | Microsoft Corporation | Preprocessing a reference data stream for patch generation and compression |
US20040068721A1 (en) * | 2000-11-17 | 2004-04-08 | O'neill Patrick | Network for updating firmware and / or software in wireless communication devices |
US20080117991A1 (en) * | 2006-11-21 | 2008-05-22 | Samsung Electronics Co., Ltd. | Partitioning Compression-Based Firmware Over the Air |
JP2015207145A (ja) * | 2014-04-21 | 2015-11-19 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および差分情報生成装置 |
JP6723829B2 (ja) * | 2015-09-14 | 2020-07-15 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | ゲートウェイ装置、ファームウェア更新方法及び制御プログラム |
US9678685B1 (en) * | 2016-03-18 | 2017-06-13 | Storagecraft Technology Corporation | Live updating of a changed block tracking driver |
CN107346252B (zh) * | 2016-05-07 | 2021-05-25 | 腾讯科技(深圳)有限公司 | 应用更新方法和装置 |
US20180165301A1 (en) * | 2016-12-09 | 2018-06-14 | Hangzhou Dianzi University | Nested file management system and method |
US10481901B2 (en) * | 2017-04-24 | 2019-11-19 | Amzetta Technologies, Llc | System and method for performing firmware update by patching |
KR20180131840A (ko) * | 2017-06-01 | 2018-12-11 | 한국전자통신연구원 | 펌웨어 업데이트 지원 장치 및 그 방법 |
US10740038B2 (en) * | 2017-08-21 | 2020-08-11 | Vmware, Inc. | Virtual application delivery using synthetic block devices |
CN109697071B (zh) * | 2017-10-24 | 2022-02-08 | 腾讯科技(深圳)有限公司 | 安装包合成方法、装置、终端及存储介质 |
US20190155598A1 (en) * | 2017-11-17 | 2019-05-23 | Apple Inc. | Techniques for updating a file using a multi-version patch file |
WO2019168907A1 (en) * | 2018-02-27 | 2019-09-06 | Excelfore Corporation | Broker-based bus protocol and multi-client architecture |
CN109582323A (zh) * | 2018-11-23 | 2019-04-05 | 网易(杭州)网络有限公司 | 应用安装包的增量更新方法、装置、终端及服务器 |
CN109766114B (zh) * | 2019-01-15 | 2022-05-03 | 网易(杭州)网络有限公司 | 一种补丁文件的处理方法和装置 |
CN110109695B (zh) * | 2019-04-17 | 2021-08-27 | 华为技术有限公司 | 补丁方法、相关装置及系统 |
CN110045980B (zh) * | 2019-05-22 | 2022-09-02 | 东信和平科技股份有限公司 | 一种对nb-iot设备的远程升级方法、设备及系统 |
-
2019
- 2019-08-14 CN CN201910750608.9A patent/CN112394969B/zh active Active
-
2020
- 2020-08-04 WO PCT/CN2020/106694 patent/WO2021027613A1/zh unknown
- 2020-08-04 EP EP20852075.9A patent/EP3992783A4/en active Pending
- 2020-08-04 US US17/635,300 patent/US20220291918A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002175157A (ja) * | 2000-12-08 | 2002-06-21 | Toshiba Corp | ディスクアレイ装置 |
JP5692829B1 (ja) * | 2013-07-11 | 2015-04-01 | 株式会社東芝 | 仮想ディスクイメージを処理するシステム、クライアント端末、及び方法 |
CN104731915A (zh) * | 2015-03-24 | 2015-06-24 | 上海爱数软件有限公司 | 一种分布式存储系统中磁盘设备映射方法 |
CN106095619A (zh) * | 2016-06-08 | 2016-11-09 | 杭州华三通信技术有限公司 | 一种虚拟机备份方法及装置 |
CN108038112A (zh) * | 2017-09-28 | 2018-05-15 | 广东欧珀移动通信有限公司 | 文件处理方法、移动终端及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3992783A4 (en) | 2022-08-24 |
US20220291918A1 (en) | 2022-09-15 |
EP3992783A1 (en) | 2022-05-04 |
CN112394969A (zh) | 2021-02-23 |
WO2021027613A1 (zh) | 2021-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8539471B2 (en) | Updating firmware of an electronic device | |
US8196130B2 (en) | Tri-phase boot process in electronic devices | |
KR102692889B1 (ko) | 펌웨어 업데이트 방법, 이를 위한 전자 장치 및 저장 매체 | |
CN105446772B (zh) | 一种系统升级的方法和装置 | |
CN111201553B (zh) | 一种安全元件及相关设备 | |
CN107526608B (zh) | 一种ota升级包升级方法及设备 | |
CN107797818A (zh) | 应用程序升级方法及装置 | |
WO2018157716A1 (zh) | 一种智能卡 | |
CN110022558A (zh) | 一种升级包的加密、解密方法和电子装置及存储介质 | |
CN112015448A (zh) | 一种基于空中下载技术的系统升级方法及装置 | |
CN112394969B (zh) | 一种补丁发布的方法、服务器及终端设备 | |
CN112000382A (zh) | 一种Linux系统启动方法、装置及可读存储介质 | |
EP3764224B1 (en) | Resource permission processing method and apparatus, and storage medium and chip | |
CN114880011A (zh) | Ota升级方法、装置、电子设备及可读存储介质 | |
CN110362350B (zh) | 管理集成电路卡中的多个操作系统 | |
CN102073541B (zh) | 数据访问方法及移动终端 | |
CN114096946A (zh) | 用于管理应用的方法和装置 | |
CN115357295B (zh) | 系统回退方法、设备及存储介质 | |
CN114780120B (zh) | 升级方法、设备及存储介质 | |
CN117667115A (zh) | 应用程序的安装方法及电子设备 | |
CN117131519B (zh) | 一种信息的保护方法及设备 | |
CN113850633B (zh) | 信息推送方法和装置 | |
CN114116072A (zh) | 一种共享库的复用方法及电子设备 | |
CN116049097B (zh) | 一种相机数据库文件的管理方法及电子设备 | |
CN117707630B (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 |