CN107329781A - 软件热修复方法、终端、***及计算机可读存储介质 - Google Patents

软件热修复方法、终端、***及计算机可读存储介质 Download PDF

Info

Publication number
CN107329781A
CN107329781A CN201710483251.3A CN201710483251A CN107329781A CN 107329781 A CN107329781 A CN 107329781A CN 201710483251 A CN201710483251 A CN 201710483251A CN 107329781 A CN107329781 A CN 107329781A
Authority
CN
China
Prior art keywords
software
file
executable
hot
terminal
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.)
Pending
Application number
CN201710483251.3A
Other languages
English (en)
Inventor
黄小峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nubia Technology Co Ltd
Original Assignee
Nubia Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nubia Technology Co Ltd filed Critical Nubia Technology Co Ltd
Priority to CN201710483251.3A priority Critical patent/CN107329781A/zh
Publication of CN107329781A publication Critical patent/CN107329781A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种软件热修复方法、终端、***及计算机可读存储介质,所述方法包括:若软件中待修复漏洞符合预设修复逻辑时,生成软件修复指令;当终端检测到软件修复指令时,获取修复指令对应的可执行补丁文件;从软件对应可执行文件集合中获取可执行待修复文件,将可执行待修复文件与可执行补丁文件进行合并作为可执行合并文件,以实现终端加载该可执行合并文件,以实现对软件的热修复;其中,在所述可执行合并文件中,按照先排列可执行补丁文件后排列可执行待修复文件的方式进行排列。本发明解决了现有技术中软件修复过程用户体验低,成本高的技术问题。

Description

软件热修复方法、终端、***及计算机可读存储介质
技术领域
本发明涉及终端技术领域,尤其涉及一种软件热修复方法、终端、***及计算机可读存储介质。
背景技术
目前,一个软件App发布之后,出现漏洞bug需要进行紧急修复的情况时有发生,在bug对应修改的代码量很小时,由于重新打包App、测试、向各个应用市场和渠道换包、提示用户升级、用户下载、覆盖安装等常规做法用户体验低,成本高,因而如何快速高效修复软件App漏洞bug,成为急需解决的技术问题。
发明内容
本发明的主要目的在于提供一种软件热修复方法、终端、***及计算机可读存储介质,旨在解决现有软件修复过程用户体验低,成本高的技术问题。
为实现上述目的,本发明提供的一种软件热修复方法,若软件中待修复漏洞符合预设修复逻辑时,生成软件修复指令;
当终端检测到软件修复指令时,获取修复指令对应的可执行补丁文件;
从软件对应可执行文件集合中获取可执行待修复文件,将可执行待修复文件与可执行补丁文件进行合并作为可执行合并文件,以实现终端加载该可执行合并文件,以实现对软件的热修复;
其中,在所述可执行合并文件中,按照先排列可执行补丁文件后排列可执行待修复文件的方式进行排列.
可选地,所述软件包括各个类文件,所述当终端检测到软件修复指令时,获取修复指令对应的可执行补丁文件步骤之前包括:
编译所述软件的各个类文件,在编译过程中,若检测到引用其它类文件的引用类文件时,将被引用类文件编译成第一可执行文件,并将第一可执行文件作为第二可执行文件的可执行子文件存储,其中,所述第二可执行文件由引用类文件编译而成;
将编译完成的各个类文件保存在软件对应可执行文件集合中。
可选地,所述可执行补丁文件保存在服务器中,所述当终端检测到软件修复指令时,获取修复指令对应的可执行补丁文件步骤包括:
当终端检测到软件修复指令时,向服务器发送请求软件修复指令对应的可执行补丁文件的请求信息;
获取服务器端反馈的所述软件修复指令对应的可执行补丁文件,并对该可执行补丁文件的各类类文件进行有效性验证,当验证完成时,执行加载并编译所述类文件成可执行补丁文件的步骤。
可选地,所述实现对软件的热修复步骤之后还包括:
检测对软件的热修复是否成功,并向服务器端上报对软件的热修复是否成功的状态信息。
可选地,所述检测对软件的热修复是否成功,并向服务器端上报对软件的热修复是否成功的状态信息步骤包括:
检测对软件的热修复是否成功,当成功时,发送重启所述软件的指令,以基于该指令重启软件,并向服务器端上报对软件的热修复成功的第一状态信息。
可选地,所述检测对软件的热修复是否成功,并向服务器端上报对软件的热修复是否成功的状态信息步骤还包括:
检测对软件的热修复是否成功,当不成功时,发送修复失败的提示信息,并向服务器端上报对软件的热修复失败的第二状态信息。
可选地,所述软件包括可执行文件集合,所述可执行合并文件在可执行文件集合中的存储位置与所述原可执行修复文件对应的存储位置一致。
此外,为实现上述目的,本发明还提出一种软件热修复***,所述软件热修复***包括服务器以及实现上述所述软件热修复方法对应的终端,其中,所述服务器在接收终端发送请求可执行补丁文件的请求信息时,反馈所述可执行补丁文件,并接收终端上报的对软件热修复是否成功的状态信息。
此外,为实现上述目的,本发明还提出一种终端,所述终端包括:存储器、处理器、通信总线以及存储在所述存储器上的软件热修复程序:
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行所述软件热修复程序,以实现如下步骤:
若软件中待修复漏洞符合预设修复逻辑时,生成软件修复指令;
当终端检测到软件修复指令时,获取修复指令对应的可执行补丁文件;
从软件对应可执行文件集合中获取可执行待修复文件,将可执行待修复文件与可执行补丁文件进行合并作为可执行合并文件,以实现终端加载该可执行合并文件,以实现对软件的热修复;
其中,在所述可执行合并文件中,按照先排列可执行补丁文件后排列可执行待修复文件的方式进行排列。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序可被一个或者一个以上的处理器执行以用于:
若软件中待修复漏洞符合预设修复逻辑时,生成软件修复指令;
当终端检测到软件修复指令时,获取修复指令对应的可执行补丁文件;
从软件对应可执行文件集合中获取可执行待修复文件,将可执行待修复文件与可执行补丁文件进行合并作为可执行合并文件,以实现终端加载该可执行合并文件,以实现对软件的热修复;
其中,在所述可执行合并文件中,按照先排列可执行补丁文件后排列可执行待修复文件的方式进行排列。
本发明技术方案的软件热修复方法,通过若软件中待修复漏洞符合预设修复逻辑时,生成软件修复指令;当终端检测到软件修复指令时,获取修复指令对应的可执行补丁文件;从软件对应可执行文件集合中获取可执行待修复文件,将可执行待修复文件与可执行补丁文件进行合并作为可执行合并文件,以实现终端加载该可执行合并文件,以实现对软件的热修复;其中,在所述可执行合并文件中,按照先排列可执行补丁文件后排列可执行待修复文件的方式进行排列。由于在本申请中在应用正在运行的时候通过预先在应用中埋设的修复逻辑,加载安装客户端下载的可执行补丁文件,修复bug。并不需要开发人员重新打包App、测试、向各个应用市场和渠道换包、提示用户升级、用户也不需要重新下载、覆盖安装等做法,因而解决了现有技术修复漏洞过程中用户体验差,成本高的技术问题。
附图说明
图1为实现本发明各个实施例一个可选的移动终端的硬件结构示意图;
图2为如图1所示的移动终端的无线通讯***示意图;
图3为本发明软件热修复方法第一实施例的流程示意图;
图4为本发明软件热修复方法第二实施例的流程示意图;
图5为本发明软件热修复方法对应终端与服务器端的交互场景示意图;
图6为本发明软件热修复方法对应可执行文件的加载过程示意图;
图7为本发明软件热修复前后类替换不同的实现原理图;
图8为本发明实施例方法涉及的硬件运行环境的设备结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。
后续描述中将以移动终端为例进行说明,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
请参阅图1,其为实现本发明各个实施例的一种移动终端的硬件结构示意图,该移动终端100可以包括:RF(Radio Frequency,射频)单元101、WiFi模块102、音频输出单元103、A/V(音频/视频)输入单元104、传感器105、显示单元106、用户输入单元107、接口单元108、存储器109、处理器110、以及电源111等部件。本领域技术人员可以理解,图1中示出的移动终端结构并不构成对移动终端的限定,移动终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对移动终端的各个部件进行具体的介绍:
射频单元101可用于收发信息或通话过程中,信号的接收和发送,具体的,将基站的下行信息接收后,给处理器110处理;另外,将上行的数据发送给基站。通常,射频单元101包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元101还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯***)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA2000(CodeDivision Multiple Access 2000,码分多址2000)、WCDMA(Wideband Code DivisionMultiple Access,宽带码分多址)、TD-SCDMA(Time Division-Synchronous CodeDivision Multiple Access,时分同步码分多址)、FDD-LTE(Frequency DivisionDuplexing-Long Term Evolution,频分双工长期演进)和TDD-LTE(Time DivisionDuplexing-Long Term Evolution,分时双工长期演进)等。
WiFi属于短距离无线传输技术,移动终端通过WiFi模块102可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了WiFi模块102,但是可以理解的是,其并不属于移动终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
音频输出单元103可以在移动终端100处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将射频单元101或WiFi模块102接收的或者在存储器109中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元103还可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元103可以包括扬声器、蜂鸣器等等。
调制解调器104用于接收终端处理器110发送的网络接入参数。
移动终端100还包括至少一种传感器105,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1061的亮度,接近传感器可在移动终端100移动到耳边时,关闭显示面板1061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
显示单元106用于显示由用户输入的信息或提供给用户的信息。显示单元106可包括显示面板1061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1061。
用户输入单元107可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元107可包括触控面板1071以及其他输入设备1072。触控面板1071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1071上或在触控面板1071附近的操作),并根据预先设定的程式驱动相应的连接装置。触控面板1071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器110,并能接收处理器110发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1071。除了触控面板1071,用户输入单元107还可以包括其他输入设备1072。具体地,其他输入设备1072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种,具体此处不做限定。
进一步的,触控面板1071可覆盖显示面板1061,当触控面板1071检测到在其上或附近的触摸操作后,传送给处理器110以确定触摸事件的类型,随后处理器110根据触摸事件的类型在显示面板1061上提供相应的视觉输出。虽然在图1中,触控面板1071与显示面板1061是作为两个独立的部件来实现移动终端的输入和输出功能,但是在某些实施例中,可以将触控面板1071与显示面板1061集成而实现移动终端的输入和输出功能,具体此处不做限定。
接口单元108用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元108可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端100和外部装置之间传输数据。
存储器109可用于存储软件程序以及各种数据。存储器109可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器109可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器110是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器109内的软件程序和/或模块,以及调用存储在存储器109内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。处理器110可包括一个或多个处理单元;优选的,处理器110可集成终端上层处理器和调制解调处理器,其中,终端上层处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器110中。
移动终端100还可以包括给各个部件供电的电源111(比如电池),优选的,电源111可以通过电源管理***与处理器110逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
尽管图1未示出,移动终端100还可以包括蓝牙模块等,在此不再赘述。
为了便于理解本发明实施例,下面对本发明的移动终端所基于的通信网络***进行描述。
请参阅图2,图2为本发明实施例提供的一种通信网络***架构图,该通信网络***为通用移动通信技术的LTE***,该LTE***包括依次通讯连接的UE(User Equipment,用户设备)201,E-UTRAN(Evolved UMTS Terrestrial Radio Access Network,演进式UMTS陆地无线接入网)202,EPC(Evolved Packet Core,演进式分组核心网)203和运营商的IP业务204。
具体地,UE201可以是上述终端100,此处不再赘述。
E-UTRAN202包括eNodeB2021和其它eNodeB2022等。其中,eNodeB2021可以通过回程(backhaul)(例如X2接口)与其它eNodeB2022连接,eNodeB2021连接到EPC203,eNodeB2021可以提供UE201到EPC203的接入。
EPC203可以包括MME(Mobility Management Entity,移动性管理实体)2031,HSS(Home Subscriber Server,归属用户服务器)2032,其它MME2033,SGW(Serving Gate Way,服务网关)2034,PGW(PDN Gate Way,分组数据网络网关)2035和PCRF(Policy andCharging Rules Function,政策和资费功能实体)2036等。其中,MME2031是处理UE201和EPC203之间信令的控制节点,提供承载和连接管理。HSS2032用于提供一些寄存器来管理诸如归属位置寄存器(图中未示)之类的功能,并且保存有一些有关服务特征、数据速率等用户专用的信息。所有用户数据都可以通过SGW2034进行发送,PGW2035可以提供UE 201的IP地址分配以及其它功能,PCRF2036是业务数据流和IP承载资源的策略与计费控制策略决策点,它为策略与计费执行功能单元(图中未示)选择及提供可用的策略和计费控制决策。
IP业务204可以包括因特网、内联网、IMS(IP Multimedia Subsystem,IP多媒体子***)或其它IP业务等。
虽然上述以LTE***为例进行了介绍,但本领域技术人员应当知晓,本发明不仅仅适用于LTE***,也可以适用于其他无线通信***,例如GSM、CDMA2000、WCDMA、TD-SCDMA以及未来新的网络***等,此处不做限定。
基于上述移动终端硬件结构、通信装置结构,提出本发明软件热修复方法各实施例。
本发明提供一种软件热修复方法,在软件热修复方法第一实施例中,终端构建有身份识别SIM卡中移动国家码MCC与联系人显示方式对应的总关系表,参照图3,该软件热修复方法包括:
步骤S10,若软件中待修复漏洞符合预设修复逻辑时,生成软件修复指令;
热修复,就是应用正在运行的时候通过预先在应用中埋设的修复逻辑,加载安装客户端下载的可执行补丁文件,修复漏洞bug。
其中,待修复漏洞可有多种,不同的待修复漏洞生成不同的软件修复指令,预设修复逻辑是预埋于软件中的修复逻辑,当漏洞满足修复条件时,生成软件修复指令。
步骤S20,当终端检测到软件修复指令时,获取修复指令对应的可执行补丁文件;
本发明涉及终端与服务器端,其中,软件修复指令可是软件在运行过程中发现***或者其它漏洞时自动生成的,当终端检测到软件修复指令时,在终端触摸屏预设区域生成提醒下载可执行补丁文件的提醒信息,用户通过触摸或者点击终端触摸屏该预设区域,可链接至可执行补丁文件对应的下载地址,若用户确认下载可执行补丁文件时,终端向服务器端发送请求可执行补丁文件的请求信息,服务器端响应该请求信息并基于该请求信息获取可执行补丁文件,并向终端发送该可执行补丁文件,其中,可执行补丁文件由已编译处理的类文件构成,该已编译处理的类文件由不同类方法构成,另外,如图5所示,服务器端的可执行补丁文件是开发人员通过拆分工具或者补丁生成工具上传的,拆分工具或者补丁生成工具生成可执行补丁文件的具体过程如下:获取软件发布时的第一安装包,并获取解决修复指令对应漏洞的第二安装包,将第一安装包与第二安装包上传至拆分工具或者补丁生成工具,以获取可执行补丁文件,其中,解决漏洞的各类可执行补丁文件预存在服务器端,根据终端不同的请求信息服务器端选取不同的可执行补丁文件,如图5中可执行补丁文件1,可执行补丁文件2,可执行补丁文件3等,终端在接收到服务器端的反馈或者发送的可执行补丁文件后,对可执行补丁文件进行校验,校验过程包括安全性的检测,以确保patch文件未被篡改或者未被伪造,校验过程完成后,终端保存该可执行补丁文件,即可将该可执行补丁文件的已编译处理的类文件保存至终端的文件集合中。特别地,上述校验过程可在终端存储该可执行补丁文件后进行。
其中软件包括各个类文件,如图4所示,所述当终端检测到软件修复指令时,获取修复指令对应的可执行补丁文件步骤之前包括:
编译所述软件的各个类文件,在编译过程中,若检测到引用其它类文件的引用类文件时,将被引用类文件编译成第一可执行文件,并将第一可执行文件作为第二可执行文件的可执行子文件存储,其中,所述第二可执行文件由引用类文件编译而成;
将编译完成的各个类文件保存在软件对应可执行文件集合中。
软件实质由可执行文件构成,在获取修复指令对应的可执行补丁文件步骤之前,终端已经下载某版本的软件,其中,终端起始下载的是某版本软件的源代码文件,对该源代码文件进行编译后生成可执行文件并保存在软件对应的可执行文件集合中,由于终端***在安装软件时,会扫描安装包中所有可执行文件,此过程称为dexopt,在dexopt过程中,若检测到任意可执行文件中同时包含引用类与被该引用类引用的被引用类,则该可执行文件会被打上预核实pre-verify标志。被打上pre-verify标志的可执行dex文件中的类不能引用其他可执行文件dex中的类,会造成后续热修复失败。
用以具体实施例进行说明,安卓***中,其中,由于安卓***的一个可执行dex文件有类方法条数限制,类方法总数最多为65536条,因而,为防止溢出,可执行dex文件可能不止一个。若检测到软件任意可执行dex文件中同时包含引用类与被该引用类引用的被引用类,则该可执行dex文件会被打上预核实pre-verify标志。被打上pre-verify标志的可执行dex文件中的类不能引用其他可执行文件dex中的类,造成热修复失败。为防止可执行文件被打上pre-verify标志,在编译软件的各个类文件过程中,若检测到引用其它类文件的引用类文件时,将被引用类文件编译成第一可执行文件,并将第一可执行文件作为第二可执行文件的可执行子文件存储,其中,所述第二可执行文件由引用类文件编译而成。
用以具体实施例进行说明,在安卓***中,假设有某个Hack.class类文件,软件的其它类文件都引用该Hack.class类文件,用以具体实施例进行说明,在编译时,如若软件的A类文件引用该Hack.class类文件,其中,A类文件存储在hackdex文件中,该hackdex为第一执行文件,在引用所述Hack.class后,A类文件对应生成了新的A1类文件,将新的A1类文件中的Hack.class保存在第二执行dex文件中,其中,第二执行dex文件为第一可执行文件的执行子dex.dex文件,即该新的A1类文件中的Hack.class类文件保存在第一可执行文件hackdex.dex文件中,由于Hack.class存储在hackdex.dex文件中,而不是hack.dex中,即是A类文件引用了非本dex中的类,因而,在引用该Hack.class类时,本质上并不是引用同一dex文件,而是引用dex文件中的子dex文件,还是引用不同dex文件,从而避免了class文件被打上pre-verify标志。因而能够实现热修复,即在本申请中,若在编译过程中,当检测到引用其它类文件的引用类文件时,将被引用类文件编译成第一可执行文件,并将第一可执行文件存储在引用类文件对应的第二可执行文件中,因而避免了热修复失败的情况。
本申请中热修复方案中,可以利用ASM Java字节码操作框架或者在类载入虚拟机前改变类行为等防止打上pre-verify标志。
步骤S30,从软件对应可执行文件集合中获取可执行待修复文件,将可执行待修复文件与可执行补丁文件进行合并作为可执行合并文件,以实现终端加载该可执行合并文件,以实现对软件的热修复;
其中,在所述可执行合并文件中,按照先排列可执行补丁文件后排列可执行待修复文件的方式进行排列。
在本实施例中,在安卓***中采用分包技术对可执行补丁文件进行分包处理,如Multidex分包技术,软件类加载器加载可执行补丁文件,在安卓***中,即是将多个dex文件加载至软件对应可执行文件集合dexElements1中。将多个dex文件加载至软件对应可执行文件集合dexElements1中的过程中,需先构造多个dex文件所对应的可执行文件集合dexElements2,将可执行文件集合dexElements2中可执行文件逐一加载至对应可执行文件集合dexElements1中对应的文件地址,该文件地址即是文件在dexElements1的排列位置,如若基于M类文件的修复指令,则将该M类文件对应的可执行文件m加载至可执行文件集合dexElements1中M类文件对应文件地址,即从软件对应可执行文件集合中获取patch文件对应的可执行待修复文件,将可执行待修复文件与可执行补丁文件进行合并作为可执行合并文件,并在加载该可执行合并文件,以实现对软件的热修复,其中,在可执行合并文件中,按照先排列可执行补丁文件后排列可执行待修复文件的方式进行排列。在热修复后,一般用户会重启软件,由于重启软件即是加载软件过程中会遍历软件的dexElements1,再调用加载类loadClass方法尝试要加载的类,在此过程中,若已加载可执行合并文件中可执行补丁文件,若可执行补丁文件为可执行待修复文件的替代文件,因而可不会再重新加载可执行待修复文件,因而能够实现热修复,如图7所示,图a是加载可执行补丁文件之前可执行文件集合dexElements1的结构示意图,软件中dex文件都会被存放到dexElements1中,图b为类加载器加载外部可执行补丁文件过程,并构造可执行补丁文件对应的dexElements2;图c为图a中dexElements1与图b中dexElements2的合并,然后将不同可执行补丁文件存放至dexElements1对应位置,用以具体实施例进行说明,如图6所示,若可执行类文件classes.dex中有待修复类文件b.class类,可执行补丁文件patch.dex中有对b.class类进行修复的b’.class类,而通过我们的替换,将patch.dex中的b’.class放到了b.class类的前面,因此我们首先会找到b’.class,从而实现了bug的修复。
本发明技术方案的软件热修复方法,通过当终端检测到软件修复指令时,获取修复指令对应的可执行补丁文件;从软件对应可执行文件集合中获取可执行待修复文件,将可执行待修复文件与可执行补丁文件进行合并作为可执行合并文件,以实现对软件的热修复;其中,在所述可执行合并文件中,按照先排列可执行补丁文件后排列可执行待修复文件的方式进行排列。由于在本申请中在应用正在运行的时候通过预先在应用中埋设的修复逻辑,加载安装客户端下载的可执行补丁文件,修复bug。并不需要开发人员重新打包App、测试、向各个应用市场和渠道换包、提示用户升级、用户也不需要重新下载、覆盖安装等做法,因而解决了现有技术修复漏洞过程中用户体验差,成本高的技术问题。
进一步地,在本发明软件热修复方法第一实施例的基础上,提供软件热修复方法的第二实施例,在第二实施例中,所述可执行补丁文件保存在服务器中,所述当终端检测到软件修复指令时,获取修复指令对应的可执行补丁文件步骤包括:
当终端检测到软件修复指令时,向服务器发送请求可执行补丁文件的请求信息;
获取服务器端反馈的所述可执行补丁文件,并对所述可执行补丁文件的各类类文件进行有效性验证,当验证完成时,执行加载并编译所述类文件成可执行补丁文件的步骤。
当终端检测到软件修复指令时,向服务器发送请求可执行补丁文件的请求信息,其中,由于终端可能出现不同的漏洞,因而不同终端向服务器端发送的请求信息可不同,服务器端根据终端发送的请求信息查找对应的可执行补丁文件,终端接收到可执行补丁文件后,对其进行有效性验证,有效性验证包括验证可执行补丁文件未有被篡改或被伪造的标识等,当验证完成时,可执行补丁文件是安全且有效的,执行加载并编译所述类文件成可执行补丁文件的步骤。
在本实施例中,通过当终端检测到软件修复指令时,向服务器发送请求可执行补丁文件的请求信息;获取服务器端反馈的所述可执行补丁文件,并对所述可执行补丁文件的各类类文件进行有效性验证,当验证完成时,执行加载并编译所述类文件成可执行补丁文件的步骤。本实施例中,由于在获取可执行补丁文件后,对其进行有效性验证,因而确保热修复的安全性。
进一步地,在本发明软件热修复方法第一实施例的基础上,提供软件热修复方法的第三实施例中,在第三实施例中,所述实现对软件的热修复步骤之后还包括:
检测对软件的热修复是否成功,并向服务器端上报对软件的热修复是否成功的状态信息。
在对软件进行热修复后即是安装可执行补丁文件后,终端检测对软件的热修复是否成功,软件漏洞修补成功时,修复成功,当软件可执行补丁文件对应漏洞仍存在时,软件的热修复失败,不管软件的热修复是否成功,终端向服务器端上报对软件的热修复是否成功的状态信息。服务器端接收该状态信息并对应存储。
在本实施例中,通过检测对软件的热修复是否成功,并向服务器端上报对软件的热修复是否成功的状态信息,因而提升了用户体验。
进一步地,在本发明软件热修复方法第一实施例的基础上,提供软件热修复方法的第四实施例中,在第四实施例中,所述检测对软件的热修复是否成功,并向服务器端上报对软件的热修复是否成功的状态信息步骤包括:
检测对软件的热修复是否成功,当成功时,发送重启所述软件的指令,以基于该指令重启软件,并向服务器端上报对软件的热修复成功的第一状态信息。
当不成功时,发送修复失败的提示信息,并向服务器端上报对软件的热修复失败的第二状态信息。
当检测到软件的热修复成功时,发送重启所述软件的指令,以基于该指令重启软件,向服务器端上报对软件的热修复成功的第一状态信息,当不成功时,发送修复失败的提示信息,以提醒该漏洞仍存在,在该漏洞仍存在时,终端也可重启软件,并向服务器端上报对软件的热修复失败的第二状态信息。
在本实施例中,通过检测对软件的热修复是否成功,当成功时,发送重启所述软件的指令,以基于该指令重启软件,并向服务器端上报对软件的热修复成功的第一状态信息。当不成功时,发送修复失败的提示信息,并向服务器端上报对软件的热修复失败的第二状态信息。因而用户及时获取漏洞是否修复成功讯息,提升用户体验。
进一步地,在本发明软件热修复方法第一实施例的基础上,提供软件热修复方法的第五实施例中,在第五实施例中,所述软件包括可执行文件集合,所述可执行合并文件在可执行文件集合中的存储位置与所述原可执行修复文件对应的存储位置一致。
软件包括可执行文件集合,可执行合并文件在可执行文件集合中的存储位置与所述原可执行修复文件对应的存储位置一致。其中一致是指可执行合并文件与原可执行修复文件存储位置相同,而原可执行修复文件存储在可执行合并文件对应相邻存储位置,以便dexElements中先读取可执行合并文件,后读取原可执行修复文件。
在本实施例中,由于所述软件包括可执行文件集合,所述可执行合并文件在可执行文件集合中的存储位置与所述原可执行修复文件对应的存储位置一致。为软件的成功热修复奠定基础,进而提升用户体验。
如图8所示,图8是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明实施例软件热修复装置可以是PC,也可以是智能手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面3)播放器、便携计算机等具有显示功能的可移动式终端设备。
如图8所示,该软件热修复装置可以包括:处理器110,例如CPU,存储器109,通信总线1002。其中,通信总线1002用于实现处理器110和存储器109之间的连接通信。存储器109可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器109可选的还可以是独立于前述处理器110的存储装置。
可选地,该软件热修复装置还可以包括摄像头、RF(Radio Frequency,射频)单元101,传感器105、音频电路、WiFi模块102等等。其中,传感器105比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在移动终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,移动终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图8中示出的软件热修复装置结构并不构成对软件热修复装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图8所示,作为一种计算机存储介质的存储器109中可以包括操作***、网络通信模块以及软件热修复程序。操作***是管理和控制软件热修复装置硬件和软件资源的程序,支持软件热修复程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器109内部各组件之间的通信,以及与软件热修复装置中其它硬件和软件之间通信。
在图8所示的软件热修复装置中,软件热修复程序可应用于服务器,处理器110用于执行存储器109中存储的软件热修复程序,实现以下步骤:
统计用户搜索的历史记录,并根据所述历史记录确定多个搜索关键词;
根据所述多个搜索关键词,获取各个搜索关键词对应搜索结果的搜索结果点击率;
根据所述搜索结果点击率对所述各个搜索关键词对应搜索结果进行排序,获取各个搜索关键词对应搜索结果的名次数据和页面位置数据;
基于所述各个搜索关键词的搜索结果的名次数据和页面位置数据,按照预设规则确定搜索引擎的搜索系数,以基于所述搜索系数对搜索引擎进行评估。
进一步地,所述基于所述各个搜索关键词的搜索结果的名次数据和页面位置数据,按照预设规则确定多个搜索关键词的搜索系数的步骤包括:
基于所述各个搜索关键词的搜索结果的名次数据,确定各个搜索关键词中前预设名数的目标搜索结果,并获取目标搜索结果对应的目标页面位置数据;
按照预设规则,基于目标搜索结果的目标名次数据和对应目标页面位置数据获取各个搜索关键词的目标搜索系数;
根据各个搜索关键词的目标搜索系数,确定搜索引擎的搜索系数。
进一步地,所述按照预设规则,基于目标搜索结果的目标名次数据和对应目标页面位置数据获取各个搜索关键词的目标搜索系数的步骤包括:
根据搜索引擎页面排列顺序,获取各个搜索关键词在搜索引擎页面中的待评估搜索结果,并获取所述待评估搜索结果的页面位置数据;
将目标搜索结果的目标页面位置数据作为第一集合,待评估搜索结果的页面位置数据作为第二集合,并获取第一集合与第二集合相交的交集元素数量;
将交集元素数量与第一集合的元素数量的比值作为召回率,并将交集元素数量与第二集合的元素数量的比值作为准确率,其中所述召回率与准确率作为搜索关键词的目标搜索系数,以获取各个搜索关键词的目标搜索系数。
进一步地,所述根据各个搜索关键词的目标搜索系数,确定搜索引擎的搜索系数的步骤包括:
根据各个搜索关键词的召回率以及搜索关键词的个数,确定搜索引擎的召回率平均值;
根据各个搜索关键词的准确率以及搜索关键词的个数,确定搜索引擎的准确率平均值,其中所述召回率平均值与准确率平均值作为搜索引擎的搜索系数。
进一步地,所述按照预设规则,基于目标搜索结果的目标名次数据和对应目标页面位置数据获取各个搜索关键词的目标搜索系数的步骤包括:
对目标搜索结果的目标页面位置数据取倒,获取目标页面位置数据的倒数值,并将所述倒数值作为搜索关键词的目标搜索系数,以获取各个搜索关键词的目标搜索系数。
进一步地,所述按照预设规则,基于目标搜索结果的目标名次数据和对应目标页面位置数据获取各个搜索关键词的目标搜索系数的步骤包括:
根据搜索引擎页面排列顺序,获取各个搜索关键词在搜索引擎页面中的待评估搜索结果,并获取所述待评估搜索结果的页面位置数据;
逐个获取待评估搜索结果的页面位置数据与目标搜索结果的目标页面位置数据的第一比值;
获取各个所述第一比值之和与待评估搜索结果的个数的第二比值,并将所述第二比值作为搜索关键词的目标搜索系数,以获取各个搜索关键词的目标搜索系数。
进一步地,所述根据各个搜索关键词的目标搜索系数,确定搜索引擎的搜索系数的步骤包括:
根据各个搜索关键词的目标搜索系数以及搜索关键词的个数,确定搜索引擎的目标搜索系数平均值,并将所述目标搜索系数平均值作为搜索引擎的搜索系数。
进一步地,所述统计用户搜索的历史记录,并根据所述历史记录确定多个搜索关键词的步骤包括:
统计预设周期内用户搜索的历史记录,获得历史记录中各个关键词的搜索次数以及用户搜索的总搜索次数;
判断各个关键词中是否存在搜索次数超过总搜索次数的预设比例的关键词;
当各个关键词中存在搜索次数超过总搜索次数的预设比例的关键词时,将所述关键词作为搜索关键词。
本发明软件热修复装置具体实施方式与上述软件热修复方法各实施例基本相同,在此不再赘述。
本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于:
统计用户搜索的历史记录,并根据所述历史记录确定多个搜索关键词;
根据所述多个搜索关键词,获取各个搜索关键词对应搜索结果的搜索结果点击率;
根据所述搜索结果点击率对所述各个搜索关键词对应搜索结果进行排序,获取各个搜索关键词对应搜索结果的名次数据和页面位置数据;
基于所述各个搜索关键词的搜索结果的名次数据和页面位置数据,按照预设规则确定搜索引擎的搜索系数,以基于所述搜索系数对搜索引擎进行评估。
进一步地,所述基于所述各个搜索关键词的搜索结果的名次数据和页面位置数据,按照预设规则确定多个搜索关键词的搜索系数的步骤包括:
基于所述各个搜索关键词的搜索结果的名次数据,确定各个搜索关键词中前预设名数的目标搜索结果,并获取目标搜索结果对应的目标页面位置数据;
按照预设规则,基于目标搜索结果的目标名次数据和对应目标页面位置数据获取各个搜索关键词的目标搜索系数;
根据各个搜索关键词的目标搜索系数,确定搜索引擎的搜索系数。
进一步地,所述按照预设规则,基于目标搜索结果的目标名次数据和对应目标页面位置数据获取各个搜索关键词的目标搜索系数的步骤包括:
根据搜索引擎页面排列顺序,获取各个搜索关键词在搜索引擎页面中的待评估搜索结果,并获取所述待评估搜索结果的页面位置数据;
将目标搜索结果的目标页面位置数据作为第一集合,待评估搜索结果的页面位置数据作为第二集合,并获取第一集合与第二集合相交的交集元素数量;
将交集元素数量与第一集合的元素数量的比值作为召回率,并将交集元素数量与第二集合的元素数量的比值作为准确率,其中所述召回率与准确率作为搜索关键词的目标搜索系数,以获取各个搜索关键词的目标搜索系数。
进一步地,所述根据各个搜索关键词的目标搜索系数,确定搜索引擎的搜索系数的步骤包括:
根据各个搜索关键词的召回率以及搜索关键词的个数,确定搜索引擎的召回率平均值;
根据各个搜索关键词的准确率以及搜索关键词的个数,确定搜索引擎的准确率平均值,其中所述召回率平均值与准确率平均值作为搜索引擎的搜索系数。
进一步地,所述按照预设规则,基于目标搜索结果的目标名次数据和对应目标页面位置数据获取各个搜索关键词的目标搜索系数的步骤包括:
对目标搜索结果的目标页面位置数据取倒,获取目标页面位置数据的倒数值,并将所述倒数值作为搜索关键词的目标搜索系数,以获取各个搜索关键词的目标搜索系数。
进一步地,所述按照预设规则,基于目标搜索结果的目标名次数据和对应目标页面位置数据获取各个搜索关键词的目标搜索系数的步骤包括:
根据搜索引擎页面排列顺序,获取各个搜索关键词在搜索引擎页面中的待评估搜索结果,并获取所述待评估搜索结果的页面位置数据;
逐个获取待评估搜索结果的页面位置数据与目标搜索结果的目标页面位置数据的第一比值;
获取各个所述第一比值之和与待评估搜索结果的个数的第二比值,并将所述第二比值作为搜索关键词的目标搜索系数,以获取各个搜索关键词的目标搜索系数。
进一步地,所述根据各个搜索关键词的目标搜索系数,确定搜索引擎的搜索系数的步骤包括:
根据各个搜索关键词的目标搜索系数以及搜索关键词的个数,确定搜索引擎的目标搜索系数平均值,并将所述目标搜索系数平均值作为搜索引擎的搜索系数。
进一步地,所述统计用户搜索的历史记录,并根据所述历史记录确定多个搜索关键词的步骤包括:
统计预设周期内用户搜索的历史记录,获得历史记录中各个关键词的搜索次数以及用户搜索的总搜索次数;
判断各个关键词中是否存在搜索次数超过总搜索次数的预设比例的关键词;
当各个关键词中存在搜索次数超过总搜索次数的预设比例的关键词时,将所述关键词作为搜索关键词。
本发明计算机可读存储介质具体实施方式与上述软件热修复方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (10)

1.一种软件热修复方法,其特征在于,所述软件热修复方法包括:
若软件中待修复漏洞符合预设修复逻辑时,生成软件修复指令;
当终端检测到软件修复指令时,获取修复指令对应的可执行补丁文件;
从软件对应可执行文件集合中获取可执行待修复文件,将可执行待修复文件与可执行补丁文件进行合并作为可执行合并文件,以实现终端加载该可执行合并文件,以实现对软件的热修复;
其中,在所述可执行合并文件中,按照先排列可执行补丁文件后排列可执行待修复文件的方式进行排列。
2.如权利要求1所述的软件热修复方法,其特征在于,所述软件包括各个类文件,所述当终端检测到软件修复指令时,获取修复指令对应的可执行补丁文件步骤之前包括:
编译所述软件的各个类文件,在编译过程中,若检测到引用其它类文件的引用类文件时,将被引用类文件编译成第一可执行文件,并将第一可执行文件作为第二可执行文件的可执行子文件存储,其中,所述第二可执行文件由引用类文件编译而成;
将编译完成的各个类文件保存在软件对应可执行文件集合中。
3.如权利要求1所述的软件热修复方法,其特征在于,所述可执行补丁文件保存在服务器中,所述当终端检测到软件修复指令时,获取修复指令对应的可执行补丁文件步骤包括:
当终端检测到软件修复指令时,向服务器发送请求软件修复指令对应的可执行补丁文件的请求信息;
获取服务器端反馈的所述软件修复指令对应的可执行补丁文件,并对该可执行补丁文件的各类类文件进行有效性验证,当验证完成时,执行加载并编译所述类文件成可执行补丁文件的步骤。
4.如权利要求1所述的软件热修复方法,其特征在于,所述实现对软件的热修复步骤之后还包括:
检测对软件的热修复是否成功,并向服务器端上报对软件的热修复是否成功的状态信息。
5.如权利要求4所述的软件热修复方法,其特征在于,所述检测对软件的热修复是否成功,并向服务器端上报对软件的热修复是否成功的状态信息步骤包括:
检测对软件的热修复是否成功,当成功时,发送重启所述软件的指令,以基于该指令重启软件,并向服务器端上报对软件的热修复成功的第一状态信息。
6.如权利要求5所述的软件热修复方法,其特征在于,所述检测对软件的热修复是否成功,并向服务器端上报对软件的热修复是否成功的状态信息步骤还包括:
检测对软件的热修复是否成功,当不成功时,发送修复失败的提示信息,并向服务器端上报对软件的热修复失败的第二状态信息。
7.如权利要求1-6任一项所述的软件热修复方法,其特征在于,所述软件包括可执行文件集合,所述可执行合并文件在可执行文件集合中的存储位置与所述原可执行修复文件对应的存储位置一致。
8.一种软件热修复***,其特征在于,所述软件热修复***包括服务器以及实现如权利要求1至7中任一项所述软件热修复方法对应的终端,其中,所述服务器在接收终端发送的请求信息时,反馈对应的可执行补丁文件,并接收终端上报的对软件热修复是否成功的状态信息。
9.一种终端,其特征在于,所述终端包括:存储器、处理器、通信总线以及存储在所述存储器上的软件热修复程序:
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行所述软件热修复程序,以实现如权利要求1-7中任一项所述的软件热修复方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有软件热修复程序,所述软件热修复程序被处理器执行时实现如权利要求1-7中任一项所述的软件热修复方法的步骤。
CN201710483251.3A 2017-06-21 2017-06-21 软件热修复方法、终端、***及计算机可读存储介质 Pending CN107329781A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710483251.3A CN107329781A (zh) 2017-06-21 2017-06-21 软件热修复方法、终端、***及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710483251.3A CN107329781A (zh) 2017-06-21 2017-06-21 软件热修复方法、终端、***及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN107329781A true CN107329781A (zh) 2017-11-07

Family

ID=60195478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710483251.3A Pending CN107329781A (zh) 2017-06-21 2017-06-21 软件热修复方法、终端、***及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN107329781A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107967427A (zh) * 2017-12-11 2018-04-27 北京奇虎科技有限公司 监测漏洞攻击的方法、装置及终端设备
CN108536464A (zh) * 2018-04-26 2018-09-14 北京奇艺世纪科技有限公司 一种应用程序的热修复方法及装置
CN111142922A (zh) * 2018-11-02 2020-05-12 阿里巴巴集团控股有限公司 应用程序更新方法、装置、终端及服务器
CN111399892A (zh) * 2020-03-18 2020-07-10 深圳Tcl数字技术有限公司 中间件程序修复方法、装置及计算机可读存储介质
CN111506904A (zh) * 2020-04-21 2020-08-07 北京同邦卓益科技有限公司 漏洞在线修复的方法和装置
CN111796972A (zh) * 2020-06-30 2020-10-20 苏州三六零智能安全科技有限公司 文件热修复方法、装置、设备及存储介质
CN111953475A (zh) * 2020-07-23 2020-11-17 上海连尚网络科技有限公司 一种代码漏洞的修复方法及设备
CN112384893A (zh) * 2018-06-15 2021-02-19 微软技术许可有限责任公司 多个热补丁的资源上高效的部署
CN113760339A (zh) * 2020-07-01 2021-12-07 北京沃东天骏信息技术有限公司 漏洞修复方法和装置
CN115296999A (zh) * 2022-09-28 2022-11-04 深圳依时货拉拉科技有限公司 移动端热修复方法、装置、热修复***及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103632098A (zh) * 2012-08-21 2014-03-12 腾讯科技(深圳)有限公司 修复漏洞的方法及装置
CN106020873A (zh) * 2016-05-13 2016-10-12 腾讯科技(深圳)有限公司 补丁包加载方法及装置
CN106055368A (zh) * 2016-06-02 2016-10-26 腾讯科技(深圳)有限公司 应用更新方法和装置
CN106095502A (zh) * 2016-06-13 2016-11-09 北京奇虎科技有限公司 一种安卓应用的热修复方法、装置、服务器和***
CN106339273A (zh) * 2015-07-14 2017-01-18 阿里巴巴集团控股有限公司 一种应用程序修复方法、终端及服务器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103632098A (zh) * 2012-08-21 2014-03-12 腾讯科技(深圳)有限公司 修复漏洞的方法及装置
CN106339273A (zh) * 2015-07-14 2017-01-18 阿里巴巴集团控股有限公司 一种应用程序修复方法、终端及服务器
CN106020873A (zh) * 2016-05-13 2016-10-12 腾讯科技(深圳)有限公司 补丁包加载方法及装置
CN106055368A (zh) * 2016-06-02 2016-10-26 腾讯科技(深圳)有限公司 应用更新方法和装置
CN106095502A (zh) * 2016-06-13 2016-11-09 北京奇虎科技有限公司 一种安卓应用的热修复方法、装置、服务器和***

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107967427A (zh) * 2017-12-11 2018-04-27 北京奇虎科技有限公司 监测漏洞攻击的方法、装置及终端设备
CN108536464A (zh) * 2018-04-26 2018-09-14 北京奇艺世纪科技有限公司 一种应用程序的热修复方法及装置
CN112384893A (zh) * 2018-06-15 2021-02-19 微软技术许可有限责任公司 多个热补丁的资源上高效的部署
CN111142922B (zh) * 2018-11-02 2023-04-25 阿里巴巴集团控股有限公司 应用程序更新方法、装置、终端及服务器
CN111142922A (zh) * 2018-11-02 2020-05-12 阿里巴巴集团控股有限公司 应用程序更新方法、装置、终端及服务器
CN111399892A (zh) * 2020-03-18 2020-07-10 深圳Tcl数字技术有限公司 中间件程序修复方法、装置及计算机可读存储介质
CN111506904A (zh) * 2020-04-21 2020-08-07 北京同邦卓益科技有限公司 漏洞在线修复的方法和装置
CN111506904B (zh) * 2020-04-21 2024-01-12 北京同邦卓益科技有限公司 漏洞在线修复的方法和装置
CN111796972A (zh) * 2020-06-30 2020-10-20 苏州三六零智能安全科技有限公司 文件热修复方法、装置、设备及存储介质
CN111796972B (zh) * 2020-06-30 2022-11-04 苏州三六零智能安全科技有限公司 文件热修复方法、装置、设备及存储介质
CN113760339A (zh) * 2020-07-01 2021-12-07 北京沃东天骏信息技术有限公司 漏洞修复方法和装置
CN111953475A (zh) * 2020-07-23 2020-11-17 上海连尚网络科技有限公司 一种代码漏洞的修复方法及设备
CN115296999B (zh) * 2022-09-28 2023-01-10 深圳依时货拉拉科技有限公司 移动端热修复方法、装置、热修复***及可读存储介质
CN115296999A (zh) * 2022-09-28 2022-11-04 深圳依时货拉拉科技有限公司 移动端热修复方法、装置、热修复***及可读存储介质

Similar Documents

Publication Publication Date Title
CN107329781A (zh) 软件热修复方法、终端、***及计算机可读存储介质
CN107506647A (zh) 漏洞自动修复方法及移动终端
CN104102500B (zh) 一种应用程序的进程启动方法及计算机***
CN108228230A (zh) Ufs固件的升级方法、终端及计算机可读存储介质
CN108241500A (zh) 一种硬件组件的修复方法、装置、***和存储介质
CN108536594A (zh) 页面测试方法、装置及存储设备
CN106708734A (zh) 软件异常检测方法及装置
CN107341011A (zh) 一种桌面显示方法、移动终端以及计算机可读存储介质
CN107071180A (zh) 桌面定制布局方法、移动终端及计算机可读存储介质
CN108052412A (zh) 重启故障定位方法、移动终端及计算机可读存储介质
CN107256147A (zh) 应用窗口的弹窗控制方法、终端及计算机可读存储介质
CN109922078A (zh) 升级控制方法、移动终端及计算机可读存储介质
CN107040543A (zh) 单点登录方法、终端及存储介质
CN107395560A (zh) 安全校验及其发起、管理方法、设备、服务器和存储介质
CN109687974A (zh) Apk验证方法、装置、移动终端及可读存储介质
CN106484771B (zh) 差异信息文件生成及应用方法、装置
CN107220050A (zh) 自适应显示方法、终端及计算机可读存储介质
CN108549826A (zh) 应用程序的校验方法、终端、服务器及可读存储介质
CN106789866B (zh) 一种检测恶意网址的方法及装置
CN110378107A (zh) 一种安装包检测的方法及相关装置
CN107219951A (zh) 触控屏控制方法、装置、存储介质及终端设备
CN107590397A (zh) 一种显示内嵌网页的方法和装置
CN107608707A (zh) 具有热修复功能之应用检测方法、终端及可读存储介质
CN106933636A (zh) 启动插件服务的方法、装置和终端设备
CN109885325A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20171107

RJ01 Rejection of invention patent application after publication