[发明专利]应用程序更新方法、装置、终端及存储介质有效
申请号: | 201910652152.2 | 申请日: | 2019-07-18 |
公开(公告)号: | CN110362330B | 公开(公告)日: | 2023-09-01 |
发明(设计)人: | 欧彦兴;邵俊;王立福 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 张所明 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用程序 更新 方法 装置 终端 存储 介质 | ||
本发明提供了一种应用程序更新方法、装置、终端及存储介质,属于终端技术领域。所述方法包括:当检测到目标事件时,获取用于更新目标应用程序的脚本文件,脚本文件中包括至少一个第一函数以及更新指令;运行脚本文件,对于至少一个第一函数中的每个第一函数,根据更新指令,从至少一个中间函数中确定与第一函数具有相同参数类型的目标中间函数;确定与第一函数相对应的第二函数,建立第二函数与目标中间函数的调用关系,以及建立目标中间函数与第一函数的调用关系,以实现应用程序的更新。不需要调用IOS系统的私有方法即可完成函数的正常调用,可以保证终端的系统的安全。
技术领域
本发明涉及终端技术领域,特别涉及一种应用程序更新方法、装置、终端及存储介质。
背景技术
随着终端技术的发展,终端中可以安装有多种应用程序。应用程序在上线投入使用后,可能会出现一些bug(漏洞,缺陷)。修复bug最好的方式是重新安装该应用程序,但是当应用程序经常出现bug时,频繁的重装会影响应用程序的正常使用,导致用户体验很差。因此,通常会采用热修复的方式对应用程序进行更新,替换掉有缺陷的函数以修复bug。
目前,可以使用JSPatch(一个动态更新框架)框架对IOS(苹果公司开发的移动操作系统)系统进行热修复。通常是在终端的应用程序中引入修复引擎,通过JavaScript(直译式脚本语言)调用Objective-C(扩充C的面向对象编程语言,一种IOS编程语言)的原生接口将有缺陷的函数替换为正常的函数,然后基于_objc_msgForward(一种IOS系统的私有接口)方法获取该函数的参数,以达到修复应用程序bug的目的。
上述方式存在的问题是,由于该方案调用了IOS系统中的私有接口,存在安全隐患,可能会对终端的系统造成损害,导致信息泄露等问题。
发明内容
本发明实施例提供了一种应用程序更新方法、装置、终端及存储介质,用于解决目前热修复方案调用了IOS系统中的私有接口,存在安全隐患,可能会对终端的系统造成损害,导致信息泄露的问题。所述技术方案如下:
一方面,提供了一种应用程序更新方法,所述方法包括:
当检测到目标事件时,获取用于更新目标应用程序的脚本文件,所述脚本文件中包括至少一个第一函数以及更新指令,所述更新指令用于将所述目标应用程序中的至少一个第二函数替换为所述至少一个第一函数;
运行所述脚本文件,对于所述至少一个第一函数中的每个第一函数,从至少一个中间函数中确定与所述第一函数具有相同参数类型的目标中间函数,所述参数类型包括参数的种类和参数的个数;
根据所述更新指令,确定与所述第一函数相对应的第二函数,建立所述第二函数与所述目标中间函数的调用关系,以及建立所述目标中间函数与所述第一函数的调用关系,以实现应用程序的更新。
在一种可能的实现方式中,所述当检测到目标事件时,获取用于更新目标应用程序的脚本文件,包括:
当所述目标应用程序启动时,确认检测到所述目标事件;
通过所述目标应用程序向更新服务器发送获取请求;
通过所述目标应用程序接收所述更新服务器返回的用于更新所述目标应用程序的脚本文件。
在另一种可能的实现方式中,所述接收所述更新服务器返回的用于更新所述目标应用程序的脚本文件之后,所述方法还包括:
根据预设的解密规则对所述脚本文件进行解密,得到解密后的脚本文件。
在另一种可能的实现方式中,所述从至少一个中间函数中确定与所述第一函数具有相同参数类型的目标中间函数,包括:
获取中间函数列表,所述中间函数列表中存储有所述至少一个中间函数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910652152.2/2.html,转载请声明来源钻瓜专利网。