CN109828772A - 热更新方法、操作系统、终端设备和存储介质 - Google Patents
热更新方法、操作系统、终端设备和存储介质 Download PDFInfo
- Publication number
- CN109828772A CN109828772A CN201910124942.3A CN201910124942A CN109828772A CN 109828772 A CN109828772 A CN 109828772A CN 201910124942 A CN201910124942 A CN 201910124942A CN 109828772 A CN109828772 A CN 109828772A
- Authority
- CN
- China
- Prior art keywords
- patch
- hot
- renewal agency
- request
- agency thread
- 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.)
- Granted
Links
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/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
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)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提出一种热更新方法、操作系统、终端设备和存储介质。该方法包括:接收热更新代理线程发送的系统进程的启动信息;根据所述启动信息,检查是否存在与所述系统进程对应的热补丁;如果存在,则向所述热更新代理线程发送与所述热补丁对应的补丁处理请求,以请求所述热更新代理线程调用补丁修复框架执行与所述补丁处理请求对应的操作。本发明实施例可以实现对Framework的热更新,保护整个Framework层和APP层的安全。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种热更新方法、操作系统、终端设备和存储介质。
背景技术
安卓(Android)系统是一种开放源代码的操作系统,可以应用于诸如智能手机和平板电脑等的移动设备。Android系统的架构主要包括:内核层(Linux Kernel)、系统运行库(Libraries)、应用框架层(Application Framework,Framework)和应用程序(Application,APP)。
Framework作为框架层,可以为上层应用程序提供应用程序编程接口(Application Programming Interface,API)。由于Android系统的开源性和普及性,Framework容易出现很多漏洞。
目前,Android系统的热更新机制几乎都只能应用于APP,无法修复Framework漏洞。设备厂商通过推送系统版本升级的方式更新Framework层代码,以修复漏洞。但是由于Android设备繁多,即使同一厂商推出的设备也有多种,导致系统碎片化严重,各Android设备无法统一升级到最新版本。另外,漏洞从发现,到补丁生成,再到运营商审核,用户下载补丁并重启设备,其修复周期过长,导致漏洞无法及时修复,造成极大安全威胁。
发明内容
本发明实施例提供一种热更新方法、操作系统、终端设备和存储介质,以解决现有技术中的一个或多个技术问题。
第一方面,本发明实施例提供了一种热更新方法,包括:
接收热更新代理线程发送的系统进程的启动信息;
根据所述启动信息,检查是否存在与所述系统进程对应的热补丁;
如果存在,则向所述热更新代理线程发送与所述热补丁对应的补丁处理请求,以请求所述热更新代理线程调用补丁修复框架执行与所述补丁处理请求对应的操作。
在一种实施方式中,向所述热更新代理线程发送与所述热补丁对应的补丁处理请求,以请求所述热更新代理线程调用补丁修复框架执行与所述补丁处理请求对应的操作,包括:
根据所述热补丁的处理类型,向所述热更新代理线程发送与所述处理类型对应的补丁处理请求,以请求所述热更新代理线程调用补丁修复框架执行与所述补丁处理请求对应的操作。
在一种实施方式中,所述处理类型包括加载类型、加载修复类型、修复类型和卸载类型中的任一种,根据所述热补丁的处理类型,向所述热更新代理线程发送所述补丁处理请求,以请求所述热更新代理线程调用补丁修复框架执行与所述补丁处理请求对应的操作,包括:
当所述热补丁的处理类型属于所述加载类型时,向所述热更新代理线程发送补丁加载请求和所述热补丁的文件信息,以请求所述热更新代理线程调用所述补丁修复框架根据所述文件信息定位所述热补丁,并将所述热补丁加载至所述系统进程中;
当所述热补丁的处理类型属于所述加载修复类型时,向所述热更新代理线程发送补丁加载修复请求和所述补丁文件信息,以请求所述热更新代理线程调用所述补丁修复框架根据所述补丁文件信息定位所述热补丁,将所述热补丁加载至所述系统进程中,并利用所述热补丁修复漏洞;
当所述热补丁的处理类型属于所述修复类型时,向所述热更新代理线程发送补丁修复请求,以请求所述热更新代理线程调用所述补丁修复框架利用所述系统进程中的热补丁修复漏洞;
当所述热补丁的处理类型属于所述卸载类型时,向所述热更新代理线程发送补丁卸载请求,以请求所述热更新代理线程调用所述补丁修复框架从所述系统进程中卸载所述热补丁。
在一种实施方式中,所述热更新方法还包括:
如果收到服务器下发的新热补丁,则确定所述新热补丁的处理类型以及与所述新热补丁对应的系统进程;
向所述对应的系统进程,发送与所述新热补丁的处理类型对应的补丁处理请求。
在一种实施方式中,所述热更新方法还包括:
所述热更新代理线程在收到所述补丁处理请求的情况下,调用安全控制模块,其中,所述安全控制模块用于检测所述补丁处理请求的发送端是否具有发送所述补丁处理请求的权限,并在检测到所述发送端具有所述权限时,向所述热更新代理线程反馈第一安全信号,所述第一安全信号用于使所述热更新代理线程调用所述补丁修复框架执行与所述补丁处理请求对应的操作。
在一种实施方式中,所述热更新代理线程在收到所述补丁处理请求的情况下,调用安全控制模块,包括:
当所述补丁处理请求为补丁加载请求或补丁加载修复请求时,所述热更新代理线程调用所述安全控制模块,所述安全控制模块用于校验所述热补丁的有效性和完整性,并在所述校验通过时,向所述热更新代理线程反馈第二安全信号,所述第二安全信号用于使所述热更新代理线程调用所述补丁修复框架将所述热补丁加载至所述系统进程中。
在一种实施方式中,所述系统进程的启动代码中包括所述热更新代理线程的创建并启动代码,当所述系统进程启动时,所述热更新代理线程被创建并启动。
在一种实施方式中,所述热更新方法还包括:
当所述系统进程启动时,所述系统进程加载系统运行时库,以在所述系统进程中创建所述热更新代理线程,所述系统运行时库中包括所述热更新代理线程。
第二方面,本发明实施例提供一种操作系统,包括:
系统进程;
管理进程,用于执行上述对应的方法;
热更新代理线程,所述热更新代理线程用于从所述管理进程接收补丁处理请求;
补丁修复框架,用于在所述热更新代理线程的调用下执行与所述补丁处理请求对应的操作。
在一种实施方式中,所述操作系统还包括:
安全控制模块,用于在所述热更新代理线程的调用下,检测所述补丁处理请求的发送端是否具有发送所述补丁处理请求的权限,并在检测到所述发送端具有所述权限时,向所述热更新代理线程反馈第一安全信号,所述第一安全信号用于使所述热更新代理线程调用所述补丁修复框架执行与所述补丁处理请求对应的操作;
所述热更新代理线程还用于在收到所述补丁处理请求的情况下,调用所述安全控制模块。
在一种实施方式中,所述热更新代理线程还用于当所述补丁处理请求为补丁加载请求或补丁加载修复请求时,调用所述安全控制模块;所述安全控制模块还用于在所述热更新代理线程的调用下,校验所述热补丁的有效性和完整性,并在所述校验通过时,向所述热更新代理线程反馈第二安全信号,所述第二安全信号用于使所述热更新代理线程调用所述补丁修复框架将所述热补丁加载至所述系统进程中。
在一种实施方式中,所述操作系统还包括:
框架层,所述框架层中包括所述系统进程的启动代码,用于启动所述系统进程;所述启动代码中包括所述热更新代理线程的创建并启动代码,用于当所述系统进程启动时,创建并启动所述热更新代理线程。
在一种实施方式中,所述操作系统还包括:
系统运行时库,所述系统运行时库中包括所述热更新代理线程;
所述系统进程包括:
加载模块,用于当所述系统进程启动时,加载所述系统运行时库,以在所述系统进程中创建并启动所述热更新代理线程。
第三方面,本发明实施例提供了一种终端设备,所述终端设备的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,所述终端设备的结构中包括处理器和存储器,所述存储器用于存储支持所述终端设备执行上述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述终端设备还可以包括通信接口,用于与其他设备或通信网络通信。
第四方面,本发明实施例提供了一种计算机可读存储介质,用于存储所述终端设备所用的计算机软件指令,其包括用于执行上述方法所涉及的程序。
上述技术方案通过在系统进程中创建热修复代理线程,根据热修复代理线程与管理进程的交互,调用补丁修复框架,对各系统进程实时动态修复,无需重启操作系统,可以实现对Framework的热更新,保护整个Framework层和APP层的安全。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1示出根据本发明实施例的操作系统的结构框图。
图2示出根据本发明实施例的一种实施方式的操作系统的结构框图。
图3示出根据本发明实施例的另一种实施方式的操作系统的结构框图。
图4示出根据本发明实施例的又一种实施方式的操作系统的结构框图。
图5示出根据本发明实施例的热更新方法的流程图。
图6示出根据本发明实施例的热更新方法的一种应用示例的流程图。
图7示出根据本发明实施例的一种实施方式的热更新方法的流程图。
图8示出根据本发明实施例的另一种实施方式的热更新方法的流程图。
图9示出根据本发明实施例的热更新方法的应用场景图。
图10示出根据本发明实施例的热更新方法的另一种应用示例的流程图。
图11示出根据本发明实施例的热更新方法的又一种应用示例的流程图。
图12示出根据本发明实施例的热更新装置的结构框图。
图13示出根据本发明实施例的终端设备的结构框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
本发明实施例提供一种操作系统,如图1所示,该操作系统可以包括管理进程、系统进程和补丁修复框架。
当一个系统进程启动时,热更新代理线程被创建于该系统进程中。热更新代理线程可以向管理进程发送系统进程的启动信息;接收管理进程发送的补丁处理请求;调用补丁修复框架执行与补丁处理请求对应的操作。
管理进程可以根据热更新代理线程发送的启动信息,检查是否存在与系统进程对应的热补丁;在检查到存在对应的热补丁时,向热更新代理线程发送与该热补丁对应的补丁处理请求。
在一个示例中,补丁修复框架可以包括集成到操作系统源码中的热更新引擎模块,为热补丁修复代理线程开放一系列API,以及在热更新代理线程的调用下,执行与补丁处理请求对应的操作。
本发明实施例的操作系统可以是Android系统,包括内核层、系统运行库、Framework和各APP。其中,Framework可以为系统进程提供API。
在一个示例中,可以通过修改Framework源码的方式,在系统进程的创建代码中添加处理管理进程的消息的入口代码,从而将热更新代理线程创建于系统进程中,以使系统进程能够通过热更新代理线程处理管理进程的消息。
在一种实施方式中,如图2所示,可以通过修改Framework源码的方式,在系统进程的启动代码中添加热更新代理线程的创建并启动代码。其中,系统进程的启动代码用于启动系统进程;热更新代理线程的创建并启动代码用于当系统进程启动时,创建并启动热更新代理线程。
在一个示例中,系统进程可以包括孵化器(Zygote)进程和Zygote进程孵化出的子进程。其中,子进程可以是系统服务(System Server)进程或APP进程等。System Server进程可以用于启动操作系统的各项服务。在Zygote进程启动代码中添加热更新代理线程创建并启动代码,当Zygote进程启动时,热更新代理线程即被创建和启动;在System Server进程启动代码中添加热更新代理线程创建并启动代码,当System Server进程启动时,热更新代理线程即被创建和启动;在APP进程启动代码中添加热更新代理线程创建并启动代码,当APP进程启动时,热更新代理线程即被创建和启动。
在一种实施方式中,如图3所示,本发明实施例的操作系统可以包括系统运行时库,系统进程还可以包括加载模块。系统运行时库可以为操作系统提供编程语言核心库的多种函数,供系统进程加载运行。系统运行时库中集成了热更新代理线程,加载模块用于当系统进程启动时加载系统运行时库中的热更新代理线程,以在系统进程中创建并启动热更新代理线程。
在一个示例中,可以在Framework源码中集成补丁修复框架,当系统进程调用Framework时,热更新代理线程可以加载调用补丁修复框架。或者,补丁修复框架可以以java文件的形式存储于操作系统中,供热更新代理线程动态加载调用。
在一种实施方式中,如图4所示,本发明实施例的操作系统还可以包括安全控制模块。在一个示例中,安全控制模块可以是集成到操作系统源码中的热更新引擎权限控制模块。安全控制模块可以校验热补丁的有效性和完整性,检测管理进程、热更新代理线程和补丁修复框架的执行权限,以防止恶意越权修改系统代码和资源,保证热更新的安全性和可靠性。
本发明实施例还提供一种热更新方法,可以应用于以上所述的操作系统。如图5所示,该方法可以包括:
步骤S501、接收热更新代理线程发送的系统进程的启动信息;
步骤S502、根据所述启动信息,检查是否存在与所述系统进程对应的热补丁;如果存在,则进入步骤S503;
步骤S503、向所述热更新代理线程发送与所述热补丁对应的补丁处理请求,以请求所述热更新代理线程调用补丁修复框架执行与所述补丁处理请求对应的操作。
下面结合图6介绍本发明实施例的热更新方法的一个示例。
步骤S601、当系统进程A1启动时,热更新代理线程创建于系统进程A1中;
步骤S602、热更新代理线程向管理进程发送系统进程A1的启动信息B;
步骤S603、管理进程根据启动信息B,检查是否存在与系统进程A1对应的热补丁C;如果存在热补丁C,则进入步骤S604;
步骤S604、管理进程将向热更新代理线程发送与热补丁C对应的补丁处理请求D;
步骤S605、热更新代理线程响应补丁处理请求,向补丁修复框架发送与补丁处理请求D对应的补丁处理命令E,以调用补丁修复框架;
步骤S606、补丁修复框架接收补丁处理命令E后,执行与补丁处理请求D对应的操作;
步骤S607、补丁修复框架向热更新代理线程反馈对补丁处理命令E的执行结果F;
步骤S608、热更新代理线程向管理进程发送执行结果F;
步骤S609、热更新代理线程进入等待管理进程发送下一补丁处理请求的状态。
在一种实施方式中,如图7所示,在步骤S503中,可以包括:
步骤S701、根据所述热补丁的处理类型,向所述热更新代理线程发送与所述处理类型对应的补丁处理请求,以请求所述热更新代理线程调用补丁修复框架执行与所述补丁处理请求对应的操作。
其中,处理类型包括加载类型、加载修复类型、修复类型和卸载类型中的任一种;补丁处理请求包括补丁加载请求、补丁加载修复请求、补丁修复请求和补丁卸载请求中的任一种。
在步骤S701中,根据所述热补丁的处理类型,向所述热更新代理线程发送所述补丁处理请求,以请求所述热更新代理线程调用补丁修复框架执行与所述补丁处理请求对应的操作,可以包括:
当所述热补丁的处理类型属于所述加载类型时,向所述热更新代理线程发送补丁加载请求和所述热补丁的文件信息,以请求所述热更新代理线程调用所述补丁修复框架根据所述文件信息定位所述热补丁,并将所述热补丁加载至所述系统进程中;
当所述热补丁的处理类型属于所述加载修复类型时,向所述热更新代理线程发送补丁加载修复请求和所述补丁文件信息,以请求所述热更新代理线程调用所述补丁修复框架根据所述补丁文件信息定位所述热补丁,将所述热补丁加载至所述系统进程中,并利用所述热补丁修复漏洞;
当所述热补丁的处理类型属于所述修复类型时,向所述热更新代理线程发送补丁修复请求,以请求所述热更新代理线程调用所述补丁修复框架利用所述系统进程中的热补丁修复漏洞;
当所述热补丁的处理类型属于所述卸载类型时,向所述热更新代理线程发送补丁卸载请求,以请求所述热更新代理线程调用所述补丁修复框架从所述系统进程中卸载所述热补丁。
其中,处理类型与系统进程和热补丁的性能以及安全要求相关。
例如:系统进程为Zygote进程,由于Zygote进程将孵化多个子进程,如果热补丁C1并不适用于全部子进程的漏洞,那么热补丁C1的处理类型为加载类型。相应地,管理进程发送的与热补丁C1对应的补丁处理请求为补丁加载请求D1。热修复代理线程响应补丁加载请求D1,调用补丁修复框架,以将热补丁C1加载至各子进程中。待与热补丁C1适用的子进程启动时,再修复漏洞。
又例如:系统进程为APP进程,当该APP进程启动时,管理进程检查到与该APP进程对应的热补丁C2已经加载至该APP进程中,那么热补丁C2的处理类型为修复类型。相应地,管理进程发送的与热补丁C2对应的补丁处理请求为补丁修复请求D2。热修复代理线程响应补丁修复请求D2,调用补丁修复框架,以根据热补丁C2修复该APP进程中的漏洞。
请继续参阅图6,介绍本发明实施例的热更新方法的若干个示例。
示例一、在步骤S604中,管理进程向热更新代理线程发送补丁加载请求D1和热补丁C的文件信息;在步骤S605中,热更新代理线程响应补丁加载请求D1,向补丁修复框架发送补丁加载命令E1和热补丁C的文件信息;在步骤S606中,补丁修复框架接收补丁加载命令E1,根据热补丁C的文件信息定位热补丁C,并将热补丁C加载至系统进程A1中。
示例二、在步骤S604中,管理进程向热更新代理线程发送补丁加载修复请求D2和热补丁C的文件信息;在步骤S605中,热更新代理线程响应补丁加载修复请求D2,向补丁修复框架发送补丁加载修复命令E2和热补丁C的文件信息;在步骤S606中,补丁修复框架接收补丁加载修复命令E2,根据热补丁C的文件信息定位热补丁C,并将热补丁C加载至系统进程A1中,并利用热补丁C修复漏洞。
示例三、在步骤S604中,管理进程向热更新代理线程发送补丁修复请求D3和热补丁C的文件信息;在步骤S605中,热更新代理线程响应补丁修复请求D3,向补丁修复框架发送补丁修复命令E3;在步骤S606中,补丁修复框架接收补丁修复命令E3,利用热补丁C修复系统进程A1中的漏洞。
示例四、在步骤S604中,管理进程向热更新代理线程发送补丁卸载请求D4;在步骤S605中,热更新代理线程响应补丁卸载请求D4,向补丁修复框架发送补丁卸载命令E4;在步骤S606中,补丁修复框架接收补丁卸载命令E4,从系统进程A1中卸载热补丁C。
在一个示例中,当补丁修复框架接收到的补丁处理命令为补丁加载修复命令E2或补丁修复命令E3时,补丁修复框架的执行流程可以包括:
步骤11、根据热补丁C,获取漏洞方法标签和修复方法;
步骤12、根据漏洞方法标签定位漏洞地址;
步骤13、暂停系统进程A1内与修复漏洞过程无关的线程;
步骤14、使用方法指令替换的方式执行修复漏洞过程;
步骤15、在修复漏洞过程结束后,恢复系统进程A1内各线程的执行;
步骤16、向热更新代理线程返回补丁处理命令的执行结果。
在一种实施方式中,如图8所示,本发明实施例的热更新方法还可以包括:
步骤S801、检测是否收到服务器下发的新热补丁,如果收到,则进入步骤S802;
步骤S802、确定所述新热补丁的处理类型以及与所述新热补丁对应的系统进程;
步骤S803、向所述新热补丁对应的系统进程,发送与所述新热补丁的处理类型对应的补丁处理请求。
下面结合图9介绍本发明实施例的操作系统和热更新方法的一个应用示例。其中,本发明实施例的操作系统和热更新方法可以应用于智能手机或平板电脑等终端设备中。
补丁生成器可以接收输入的修复代码,生成自定义补丁格式的热补丁,并可以对生成的热补丁加密。系统进程可以包括Zygote进程以及多个子进程A1、A2……。服务器可以根据管理进程的请求向管理进程下发热补丁。管理进程可以向所有的系统进程执行如下流程:
步骤21、确定热补丁C0适用的系统进程,如为系统进程A2;
步骤22、确定热补丁C0的处理类型,如加载类型(或加载修复类型);
步骤23、向系统进程A2的热更新代理线程发送补丁加载请求(或补丁加载修复请求)和热补丁C0的文件信息;
步骤24、热更新代理线程响应补丁加载请求(或补丁加载修复请求),向补丁修复框架发送补丁加载命令(或补丁加载修复命令),以调用补丁修复框架;
步骤25、补丁修复框架根据热补丁C0的文件信息定位热补丁C0,并将热补丁C0加载至系统进程A2中(或将热补丁C0加载至系统进程A2中,并利用热补丁C0修复系统进程A2中的漏洞);
步骤26、补丁修复框架向热更新代理线程反馈对补丁加载命令(或补丁加载修复命令)的执行结果;
步骤27、热更新代理线程向管理进程发送执行结果;
步骤28、热更新代理线程进入等待管理进程发送下一补丁处理请求的状态。
在本示例中,当任一个系统进程启动(如系统进程A1)时,热更新代理线程创建于该系统进程中,并可以执行以上所述的热更新方法。其中,热更新代理线程的创建并启动方法可参见上述操作系统的描述。
在一种实施方式中,本发明实施例的热更新方法还可以包括:
所述热更新代理线程在收到所述补丁处理请求的情况下,调用安全控制模块。其中,所述安全控制模块用于检测所述补丁处理请求的发送端是否具有发送所述补丁处理请求的权限,并在检测到所述发送端具有所述权限时,向所述热更新代理线程反馈第一安全信号。所述第一安全信号用于使所述热更新代理线程调用所述补丁修复框架执行与所述补丁处理请求对应的操作。
例如,如图10所示,本发明实施例的热更新方法可以包括:
步骤S1001、热更新代理线程在收到管理进程发送的补丁处理请求的情况下,调用安全控制模块;
步骤S1002、安全控制模块检测补丁处理请求的发送端是否具有发送该补丁处理请求的权限,并在检测到发送端具有发送权限时,进入步骤S1003;
步骤S1003、安全控制模块向热更新代理线程反馈第一安全信号;
步骤S1004、热更新代理线程在收到第一安全信号后,响应补丁处理请求,向补丁修复框架发送与补丁处理请求对应的补丁处理命令,以调用补丁修复框架;
步骤S1005、补丁修复框架接收补丁处理命令后,执行与补丁处理请求对应的操作。
在一种实施方式中,当所述补丁处理请求为补丁加载请求或补丁加载修复请求时,所述安全控制模块还用于校验所述热补丁的有效性和完整性,并在所述校验通过时,向所述热更新代理线程反馈第二安全信号,所述第二安全信号用于使所述热更新代理线程调用所述补丁修复框架将所述热补丁加载至所述系统进程中。
例如,如图11所示,本发明实施例的热更新方法可以包括:
步骤S1101、热更新代理线程在收到管理进程发送的补丁处理请求的情况下,确定补丁处理请求是否为补丁加载请求或补丁加载修复请求;如果是,则进入步骤S1102;
步骤S1102、热更新代理线程调用安全控制模块;
步骤S1103、安全控制模块校验所述热补丁的有效性和完整性;如果检验通过,则进入步骤S1104;
步骤S1104、安全控制模块向热更新代理线程反馈第二安全信号;
步骤S1105、热更新代理线程在收到第二安全信号后,响应补丁处理请求,向补丁修复框架发送与补丁处理请求对应的补丁处理命令,以调用补丁修复框架;
步骤S1106、补丁修复框架接收补丁处理命令后,执行与补丁处理请求对应的操作。
在一种实施方式中,可以利用操作系统各进程之间的通信方式,如管道(Pipe)通信方式或跨进程(Binder)通信机制,通过管理进程将热补丁的文件发送给热更新代理线程。
在一种实施方式中,可以将热补丁的文件存储于设置有权限的共享目录或私有目录中,管理进程向热更新代理线程发送热补丁的文件信息,以使补丁修复框架可以根据该文件信息去共享目录或私有目录中加载该热补丁。
本发明实施例还提供一种热更新装置,可以应用于管理进程中。图12示出根据本发明实施例的热更新装置的结构框图。如图12所示,该装置可以包括:
接收模块1201,用于接收热更新代理线程发送的系统进程的启动信息;
检测模块1202,用于根据所述启动信息,检查是否存在与所述系统进程对应的热补丁;
发送模块1203,用于当存在所述热补丁时,向所述热更新代理线程发送与所述热补丁对应的补丁处理请求,以请求所述热更新代理线程调用补丁修复框架执行与所述补丁处理请求对应的操作。
在一种实施方式中,发送模块1203可以用于:
根据所述热补丁的处理类型,向所述热更新代理线程发送与所述处理类型对应的补丁处理请求,以请求所述热更新代理线程调用补丁修复框架执行与所述补丁处理请求对应的操作。
在一种实施方式中,所述处理类型包括加载类型、加载修复类型、修复类型和卸载类型中的任一种。
当所述热补丁的处理类型属于所述加载类型时,所述发送模块用于向所述热更新代理线程发送补丁加载请求和所述热补丁的文件信息,以请求所述热更新代理线程调用所述补丁修复框架根据所述文件信息定位所述热补丁,并将所述热补丁加载至所述系统进程中。
当所述热补丁的处理类型属于所述加载修复类型时,所述发送模块用于向所述热更新代理线程发送补丁加载修复请求和所述补丁文件信息,以请求所述热更新代理线程调用所述补丁修复框架根据所述补丁文件信息定位所述热补丁,将所述热补丁加载至所述系统进程中,并利用所述热补丁修复漏洞。
当所述热补丁的处理类型属于所述修复类型时,所述发送模块用于向所述热更新代理线程发送补丁修复请求,以请求所述热更新代理线程调用所述补丁修复框架利用所述系统进程中的热补丁修复漏洞。
当所述热补丁的处理类型属于所述卸载类型时,所述发送模块用于向所述热更新代理线程发送补丁卸载请求,以请求所述热更新代理线程调用所述补丁修复框架从所述系统进程中卸载所述热补丁。
在一种实施方式中,本发明实施例的热更新装置还可以包括:
补丁管理模块,用于从服务器下载热补丁;从管理进程中卸载或替换热补丁;或验证热补丁的有效性和完整性;
状态管理模块,用于维护热补丁的状态。
本发明实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
综上所述,本实施例的操作系统和热更新方法,通过在系统进程中创建热修复代理线程,根据热修复代理线程与管理进程的交互,调用补丁修复框架,对各系统进程实时动态修复,无需重启操作系统,进而可以实现对Framework的热更新,热修复系统漏洞,保护整个Framework层和APP层的安全。
进一步地,可以通过源码集成的方式实现热更新,对操作系统的入侵性低,简单易于实施且稳定可靠;可以自定义补丁加载与修复时机,将加载与修复分离,并结合安全控制模块,以保证热更新过程的高性能、安全性和可靠性;可以配合云端服务器分发机制,作为一种完整的Framework热修复方案,加快了Android漏洞修复周期,节省了后期维护成本。
图13示出根据本发明实施例的终端设备的结构框图。如图13所示,该终端设备包括:存储器1301和处理器1302,存储器1301内存储有可在处理器1302上执行的计算机程序。所述处理器1302执行所述计算机程序时实现上述实施例中的热更新方法。所述存储器1301和处理器1302的数量可以为一个或多个。
该终端设备还包括:
通信接口1303,用于与外界设备进行通信,进行数据交互传输。
存储器1301可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
如果存储器1301、处理器1302和通信接口1303独立实现,则存储器1301、处理器1302和通信接口1303可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,Peripheral Component Interconnect)总线或扩展工业标准体系结构(EISA,ExtendedIndustry Standard Component)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器1301、处理器1302及通信接口1303集成在一块芯片上,则存储器1301、处理器1302及通信接口1303可以通过内部接口完成相互间的通信。
本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现上述实施例中任一所述的方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种热更新方法,包括:
接收热更新代理线程发送的系统进程的启动信息;
根据所述启动信息,检查是否存在与所述系统进程对应的热补丁;
如果存在,则向所述热更新代理线程发送与所述热补丁对应的补丁处理请求,以请求所述热更新代理线程调用补丁修复框架执行与所述补丁处理请求对应的操作。
2.根据权利要求1所述的方法,其特征在于,向所述热更新代理线程发送与所述热补丁对应的补丁处理请求,以请求所述热更新代理线程调用补丁修复框架执行与所述补丁处理请求对应的操作,包括:
根据所述热补丁的处理类型,向所述热更新代理线程发送与所述处理类型对应的补丁处理请求,以请求所述热更新代理线程调用补丁修复框架执行与所述补丁处理请求对应的操作。
3.根据权利要求2所述的方法,其特征在于,所述处理类型包括加载类型、加载修复类型、修复类型和卸载类型中的任一种,根据所述热补丁的处理类型,向所述热更新代理线程发送所述补丁处理请求,以请求所述热更新代理线程调用补丁修复框架执行与所述补丁处理请求对应的操作,包括:
当所述热补丁的处理类型属于所述加载类型时,向所述热更新代理线程发送补丁加载请求和所述热补丁的文件信息,以请求所述热更新代理线程调用所述补丁修复框架根据所述文件信息定位所述热补丁,并将所述热补丁加载至所述系统进程中;
当所述热补丁的处理类型属于所述加载修复类型时,向所述热更新代理线程发送补丁加载修复请求和所述补丁文件信息,以请求所述热更新代理线程调用所述补丁修复框架根据所述补丁文件信息定位所述热补丁,将所述热补丁加载至所述系统进程中,并利用所述热补丁修复漏洞;
当所述热补丁的处理类型属于所述修复类型时,向所述热更新代理线程发送补丁修复请求,以请求所述热更新代理线程调用所述补丁修复框架利用所述系统进程中的热补丁修复漏洞;
当所述热补丁的处理类型属于所述卸载类型时,向所述热更新代理线程发送补丁卸载请求,以请求所述热更新代理线程调用所述补丁修复框架从所述系统进程中卸载所述热补丁。
4.根据权利要求1所述的方法,其特征在于,还包括:
如果收到服务器下发的新热补丁,则确定所述新热补丁的处理类型以及与所述新热补丁对应的系统进程;
向所述对应的系统进程,发送与所述新热补丁的处理类型对应的补丁处理请求。
5.根据权利要求1所述的方法,其特征在于,还包括:
所述热更新代理线程在收到所述补丁处理请求的情况下,调用安全控制模块,其中,所述安全控制模块用于检测所述补丁处理请求的发送端是否具有发送所述补丁处理请求的权限,并在检测到所述发送端具有所述权限时,向所述热更新代理线程反馈第一安全信号,所述第一安全信号用于使所述热更新代理线程调用所述补丁修复框架执行与所述补丁处理请求对应的操作。
6.根据权利要求5所述的方法,其特征在于,所述热更新代理线程在收到所述补丁处理请求的情况下,调用安全控制模块,包括:
当所述补丁处理请求为补丁加载请求或补丁加载修复请求时,所述热更新代理线程调用所述安全控制模块,所述安全控制模块用于校验所述热补丁的有效性和完整性,并在所述校验通过时,向所述热更新代理线程反馈第二安全信号,所述第二安全信号用于使所述热更新代理线程调用所述补丁修复框架将所述热补丁加载至所述系统进程中。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述系统进程的启动代码中包括所述热更新代理线程的创建并启动代码,当所述系统进程启动时,所述热更新代理线程被创建并启动。
8.根据权利要求1至6任一项所述的方法,其特征在于,还包括:
当所述系统进程启动时,所述系统进程加载系统运行时库,以在所述系统进程中创建并启动所述热更新代理线程,所述系统运行时库中包括所述热更新代理线程。
9.一种操作系统,其特征在于,包括:
系统进程;
管理进程,用于执行如权利要求1至4中任一项所述的方法;
热更新代理线程,所述热更新代理线程用于从所述管理进程接收补丁处理请求;
补丁修复框架,用于在所述热更新代理线程的调用下执行与所述补丁处理请求对应的操作。
10.根据权利要求9所述的操作系统,其特征在于,所述操作系统还包括:
安全控制模块,用于在所述热更新代理线程的调用下,检测所述补丁处理请求的发送端是否具有发送所述补丁处理请求的权限,并在检测到所述发送端具有所述权限时,向所述热更新代理线程反馈第一安全信号,所述第一安全信号用于使所述热更新代理线程调用所述补丁修复框架执行与所述补丁处理请求对应的操作;
所述热更新代理线程还用于在收到所述补丁处理请求的情况下,调用所述安全控制模块。
11.根据权利要求10所述的操作系统,其特征在于,
所述热更新代理线程还用于当所述补丁处理请求为补丁加载请求或补丁加载修复请求时,调用所述安全控制模块;
所述安全控制模块还用于在所述热更新代理线程的调用下,校验所述热补丁的有效性和完整性,并在所述校验通过时,向所述热更新代理线程反馈第二安全信号,所述第二安全信号用于使所述热更新代理线程调用所述补丁修复框架将所述热补丁加载至所述系统进程中。
12.根据权利要求9所述的操作系统,其特征在于,还包括:
框架层,所述框架层中包括所述系统进程的启动代码,用于启动所述系统进程;所述启动代码中包括所述热更新代理线程的创建并启动代码,用于当所述系统进程启动时,创建并启动所述热更新代理线程。
13.根据权利要求9所述的操作系统,其特征在于,还包括:
系统运行时库,所述系统运行时库中包括所述热更新代理线程;
所述系统进程包括:
加载模块,用于当所述系统进程启动时,加载所述系统运行时库,以在所述系统进程中创建并启动所述热更新代理线程。
14.一种终端设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至8中任一项所述的方法。
15.一种计算机可读存储介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至8中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910124942.3A CN109828772B (zh) | 2019-02-19 | 2019-02-19 | 热更新方法、操作系统、终端设备和存储介质 |
US16/698,534 US11221838B2 (en) | 2019-02-19 | 2019-11-27 | Hot update method, operating system, terminal device, system, and computer-readable storage medium for a system process |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910124942.3A CN109828772B (zh) | 2019-02-19 | 2019-02-19 | 热更新方法、操作系统、终端设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109828772A true CN109828772A (zh) | 2019-05-31 |
CN109828772B CN109828772B (zh) | 2022-03-11 |
Family
ID=66863848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910124942.3A Active CN109828772B (zh) | 2019-02-19 | 2019-02-19 | 热更新方法、操作系统、终端设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11221838B2 (zh) |
CN (1) | CN109828772B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262825A (zh) * | 2019-06-24 | 2019-09-20 | 北京字节跳动网络技术有限公司 | 热更新方法、装置、电子设备及可读存储介质 |
CN110297655A (zh) * | 2019-06-21 | 2019-10-01 | 百度在线网络技术(北京)有限公司 | 生成补丁包的方法、装置、设备及存储介质 |
CN110309655A (zh) * | 2019-07-05 | 2019-10-08 | 武汉绿色网络信息服务有限责任公司 | 一种检测app更新过程中安全性的方法以及检测装置 |
CN110308922A (zh) * | 2019-06-27 | 2019-10-08 | 百度在线网络技术(北京)有限公司 | 数据传输方法、装置、设备及存储介质 |
CN110750284A (zh) * | 2019-10-15 | 2020-02-04 | Oppo(重庆)智能科技有限公司 | 一种应用快速启动方法、终端及计算机可读存储介质 |
CN111562934A (zh) * | 2020-04-03 | 2020-08-21 | 深圳震有科技股份有限公司 | 一种基于热补丁的软件系统升级方法、终端及存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312079A (zh) * | 2020-11-20 | 2021-08-27 | 锐捷网络股份有限公司 | 一种热补丁升级方法、装置、电子设备及存储介质 |
CN113296807B (zh) * | 2021-05-12 | 2023-10-31 | 阿里巴巴新加坡控股有限公司 | 数据更新方法 |
WO2024074199A1 (en) * | 2022-10-05 | 2024-04-11 | Huawei Technologies Co., Ltd. | Device and method for securely applying a live patch to an application |
CN115617379B (zh) * | 2022-12-19 | 2023-03-10 | 成都数默科技有限公司 | 基于JavaAgent的热更新修复Java应用漏洞的方法 |
CN116992438A (zh) * | 2023-09-25 | 2023-11-03 | 北京安普诺信息技术有限公司 | 基于代码疫苗的实时漏洞修复的方法、装置、设备及介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150381767A1 (en) * | 2014-06-30 | 2015-12-31 | Mark Spence | Distributed process framework |
CN106227554A (zh) * | 2016-07-08 | 2016-12-14 | 百度在线网络技术(北京)有限公司 | 一种在ios系统中进行应用热更新的方法和装置 |
CN106528411A (zh) * | 2016-10-24 | 2017-03-22 | 网易(杭州)网络有限公司 | 覆盖率检测方法、装置和设备 |
CN106648691A (zh) * | 2016-12-29 | 2017-05-10 | 深圳Tcl数字技术有限公司 | 多模块软件更新方法及系统 |
KR20170061993A (ko) * | 2015-11-27 | 2017-06-07 | 에릭슨엘지엔터프라이즈 주식회사 | 업데이트 상태 제공 방법 및 장치 |
CN106843933A (zh) * | 2016-12-27 | 2017-06-13 | 北京五八信息技术有限公司 | 一种应用程序的漏洞修复方法、移动终端及补丁服务器 |
CN107463400A (zh) * | 2017-07-31 | 2017-12-12 | 上海壹账通金融科技有限公司 | 移动应用的热更新方法及终端设备 |
CN107870777A (zh) * | 2016-09-23 | 2018-04-03 | 中兴通讯股份有限公司 | 一种热补丁实现方法及装置、终端 |
CN107958150A (zh) * | 2017-12-05 | 2018-04-24 | 中科信息安全共性技术国家工程研究中心有限公司 | 一种检测安卓热补丁安全性的方法 |
CN109002320A (zh) * | 2018-08-20 | 2018-12-14 | 苏州思必驰信息科技有限公司 | 用于软件开发包的更新方法、系统、电子设备及存储介质 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI324309B (en) * | 2002-08-26 | 2010-05-01 | Interdigital Tech Corp | Communication circuit |
WO2004081758A2 (en) * | 2003-03-12 | 2004-09-23 | Digex, Inc. | System and method for maintaining installed software compliance with build standards |
US7424706B2 (en) * | 2003-07-16 | 2008-09-09 | Microsoft Corporation | Automatic detection and patching of vulnerable files |
US7574706B2 (en) * | 2003-12-15 | 2009-08-11 | Microsoft Corporation | System and method for managing and communicating software updates |
US7451440B2 (en) * | 2004-01-09 | 2008-11-11 | Hewlett-Packard Development Company, L.P. | Patch application that enables the identification of patches for installation on a computer system in a reactive manner |
US7890946B2 (en) * | 2004-05-11 | 2011-02-15 | Microsoft Corporation | Efficient patching |
US7559058B2 (en) * | 2004-05-11 | 2009-07-07 | Microsoft Corporation | Efficient patching |
US8539469B2 (en) * | 2004-05-11 | 2013-09-17 | Microsoft Corporation | Efficient patching |
US7765538B2 (en) * | 2004-10-29 | 2010-07-27 | Hewlett-Packard Development Company, L.P. | Method and apparatus for determining which program patches to recommend for installation |
US9063783B2 (en) * | 2008-11-24 | 2015-06-23 | Red Hat, Inc. | Coordinating parallel execution of processes using agents |
US8954949B2 (en) * | 2010-10-11 | 2015-02-10 | International Business Machines Corporation | Smart patch delivery system |
US9817656B2 (en) * | 2012-08-24 | 2017-11-14 | Ca, Inc. | Hot rollback of updated agent |
US9383992B2 (en) * | 2012-11-21 | 2016-07-05 | International Business Machines Corporation | Enterprise wide software version recommendation |
US9489189B2 (en) * | 2013-02-21 | 2016-11-08 | Oracle International Corporation | Dynamically generate and execute a context-specific patch installation procedure on a computing system |
US9535686B2 (en) * | 2013-03-15 | 2017-01-03 | International Business Machines Corporation | Dynamic library replacement |
US9335986B1 (en) * | 2013-12-11 | 2016-05-10 | Amazon Technologies, Inc. | Hot patching to update program code and/or variables using a separate processor |
US9626180B2 (en) * | 2013-12-16 | 2017-04-18 | International Business Machines Corporation | Live operating system update mechanisms |
CN103942073B (zh) | 2014-04-08 | 2017-12-01 | 北京奇虎科技有限公司 | 实现系统热补丁的方法及装置 |
US9430223B2 (en) * | 2014-09-25 | 2016-08-30 | International Business Machines Corporation | Live operating system update mechanisms |
US9569199B2 (en) * | 2015-01-22 | 2017-02-14 | Futurewei Technologies, Inc. | Systems and methods to update source code files |
CN110110522B (zh) * | 2016-05-24 | 2021-05-07 | 百度在线网络技术(北京)有限公司 | 内核修复方法和装置 |
CN107451474B (zh) | 2016-05-31 | 2020-06-26 | 百度在线网络技术(北京)有限公司 | 用于终端的软件漏洞修复方法和装置 |
CN111373367A (zh) * | 2017-09-07 | 2020-07-03 | 惠普发展公司,有限责任合伙企业 | 操作系统更新 |
US10649763B2 (en) * | 2018-06-15 | 2020-05-12 | Microsoft Technology Licensing, Llc | Resource efficient deployment of multiple hot patches |
-
2019
- 2019-02-19 CN CN201910124942.3A patent/CN109828772B/zh active Active
- 2019-11-27 US US16/698,534 patent/US11221838B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150381767A1 (en) * | 2014-06-30 | 2015-12-31 | Mark Spence | Distributed process framework |
KR20170061993A (ko) * | 2015-11-27 | 2017-06-07 | 에릭슨엘지엔터프라이즈 주식회사 | 업데이트 상태 제공 방법 및 장치 |
CN106227554A (zh) * | 2016-07-08 | 2016-12-14 | 百度在线网络技术(北京)有限公司 | 一种在ios系统中进行应用热更新的方法和装置 |
CN107870777A (zh) * | 2016-09-23 | 2018-04-03 | 中兴通讯股份有限公司 | 一种热补丁实现方法及装置、终端 |
CN106528411A (zh) * | 2016-10-24 | 2017-03-22 | 网易(杭州)网络有限公司 | 覆盖率检测方法、装置和设备 |
CN106843933A (zh) * | 2016-12-27 | 2017-06-13 | 北京五八信息技术有限公司 | 一种应用程序的漏洞修复方法、移动终端及补丁服务器 |
CN106648691A (zh) * | 2016-12-29 | 2017-05-10 | 深圳Tcl数字技术有限公司 | 多模块软件更新方法及系统 |
CN107463400A (zh) * | 2017-07-31 | 2017-12-12 | 上海壹账通金融科技有限公司 | 移动应用的热更新方法及终端设备 |
CN107958150A (zh) * | 2017-12-05 | 2018-04-24 | 中科信息安全共性技术国家工程研究中心有限公司 | 一种检测安卓热补丁安全性的方法 |
CN109002320A (zh) * | 2018-08-20 | 2018-12-14 | 苏州思必驰信息科技有限公司 | 用于软件开发包的更新方法、系统、电子设备及存储介质 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297655A (zh) * | 2019-06-21 | 2019-10-01 | 百度在线网络技术(北京)有限公司 | 生成补丁包的方法、装置、设备及存储介质 |
CN110297655B (zh) * | 2019-06-21 | 2023-06-06 | 百度在线网络技术(北京)有限公司 | 生成补丁包的方法、装置、设备及存储介质 |
CN110262825A (zh) * | 2019-06-24 | 2019-09-20 | 北京字节跳动网络技术有限公司 | 热更新方法、装置、电子设备及可读存储介质 |
CN110262825B (zh) * | 2019-06-24 | 2023-12-05 | 北京字节跳动网络技术有限公司 | 热更新方法、装置、电子设备及可读存储介质 |
CN110308922A (zh) * | 2019-06-27 | 2019-10-08 | 百度在线网络技术(北京)有限公司 | 数据传输方法、装置、设备及存储介质 |
CN110309655A (zh) * | 2019-07-05 | 2019-10-08 | 武汉绿色网络信息服务有限责任公司 | 一种检测app更新过程中安全性的方法以及检测装置 |
CN110309655B (zh) * | 2019-07-05 | 2021-08-17 | 武汉绿色网络信息服务有限责任公司 | 一种检测app更新过程中安全性的方法以及检测装置 |
CN110750284A (zh) * | 2019-10-15 | 2020-02-04 | Oppo(重庆)智能科技有限公司 | 一种应用快速启动方法、终端及计算机可读存储介质 |
CN110750284B (zh) * | 2019-10-15 | 2023-03-28 | Oppo(重庆)智能科技有限公司 | 一种应用快速启动方法、终端及计算机可读存储介质 |
CN111562934A (zh) * | 2020-04-03 | 2020-08-21 | 深圳震有科技股份有限公司 | 一种基于热补丁的软件系统升级方法、终端及存储介质 |
CN111562934B (zh) * | 2020-04-03 | 2023-08-11 | 深圳震有科技股份有限公司 | 一种基于热补丁的软件系统升级方法、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20200264863A1 (en) | 2020-08-20 |
CN109828772B (zh) | 2022-03-11 |
US11221838B2 (en) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109828772A (zh) | 热更新方法、操作系统、终端设备和存储介质 | |
US20190278578A1 (en) | Install File Size Optimization and Installation Verification System | |
CN102804194B (zh) | 用于提供应用安全性的方法及装置 | |
CN103678991B (zh) | 多线程处理器中的全局寄存器保护 | |
CN100511156C (zh) | 强制性地终止输入/输出操作阻止的线程的设备和方法 | |
CN101196974A (zh) | 用于软件应用程序的自动配置的方法和系统 | |
CN102034058B (zh) | 应用软件安全控制方法及终端 | |
CN106648724B (zh) | 应用程序的热修复方法及终端 | |
CN113256296B (zh) | 智能合约执行方法、系统、装置和存储介质 | |
CN105868639A (zh) | 内核漏洞修复方法和装置 | |
CN102063317A (zh) | 一种嵌入式设备重新烧写应用程序的方法及系统 | |
CN104903853A (zh) | 动态固件更新 | |
CN103309696B (zh) | 一种Java卡扩展库更新方法、装置和Java卡 | |
CN103729598B (zh) | 数据安全互联系统及其建立方法 | |
CN114327484A (zh) | 支持多架构的k8s集成与部署方法、系统及存储介质 | |
CN109376072A (zh) | 基于第三方组件库的应用程序开发方法和装置 | |
CN108920962B (zh) | 固件下载验签方法、固件发布方法、移动终端及服务器 | |
US20190286544A1 (en) | Method, device and server for checking a defective function | |
CN106055350A (zh) | 配置文件的升级处理方法以及装置 | |
CN107402761A (zh) | 应用修复方法及装置 | |
US7516452B1 (en) | Method and system for managing installation of software on a computer system platform | |
CN103729600B (zh) | 数据安全互联系统建立方法及数据安全互联系统 | |
US20140223112A1 (en) | System and method for managing data elements | |
CN110134456A (zh) | 用于管理操作系统的方法、装置、设备和存储介质 | |
KR102009405B1 (ko) | 모바일 애플리케이션을 위한 통합 빌드 방법 및 그 시스템 |
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 |