[发明专利]生成补丁包的方法、装置、设备及存储介质有效

专利信息
申请号: 201910541776.7 申请日: 2019-06-21
公开(公告)号: CN110297655B 公开(公告)日: 2023-06-06
发明(设计)人: 张迪;尚会波 申请(专利权)人: 百度在线网络技术(北京)有限公司
主分类号: G06F8/658 分类号: G06F8/658
代理公司: 北京同立钧成知识产权代理有限公司 11205 代理人: 朱颖;刘芳
地址: 100085 北京市*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 生成 补丁包 方法 装置 设备 存储 介质
【说明书】:

本申请提供一种生成补丁包的方法、装置、设备及存储介质。包括:在对原始安装包进行插桩时,将原始安装包中的非public类的权限转换为public,非public字段的权限转换为public,protected方法及package‑private方法的权限均转换为public。在生成待修复方法的补丁包过程中,当需要使用原始安装包中的目标方法和\或目标字段时,根据目标方法和\或目标字段的权限使用目标方法和\或目标字段,以生成补丁包。从而避免方法和\或字段无法被访问的问题,以生成有效的补丁包,进而可以解决热修复的问题。

技术领域

本申请实施例涉及计算机技术领域,尤其涉及一种生成补丁包的方法、装置、设备及存储介质。

背景技术

热修复补丁(patch),指能够修复软件漏洞的一些代码,是一种快速、低成本修复产品软件版本缺陷的方式。热修复技术具有如下优势:1、可快速修复,避免线上Bug带来的业务损失,把损失降到最低。2、保证客户端的更新率,无须用户进行版本升级安装。3、良好的用户体验,无感知修复异常。节省用户下载安装成本。

插桩方案是一种轻量的热修复技术,即在原始安装包的类中的每个方法中插入判断逻辑,当有补丁加载时,执行补丁中的逻辑,当无补丁时,执行原逻辑,以达到修复问题的目标。基于此,在生成补丁包时,需要对原始安装包和新的安装包中的同名类中的每个方法进行对比,当发现有方法发生修改时,在补丁包中生成该类的补丁类,包括:将所有发生修改的方法中的指令复制到该补丁类中。在终端设备加载了该补丁包之后,在执行到发生修改的方法时,发现有补丁类,会执行到补丁类中的方法,达到热修复的目的。

在复制修改的方法时,存在一个问题,即字段及方法的访问限制问题。复制的方法中,可能会调用到其它类中的方法和\或字段,如果该方法和\或字段的权限是非public的,即这类方法和\或字段无法被访问。基于此,生成的补丁包无效,这就给热修复带来一定的困难。

发明内容

本申请实施例提供一种生成补丁包的方法、装置、设备及存储介质。从而可以生成有效的补丁包,进而解决热修复问题。

第一方面,本申请提供一种生成补丁包的方法,包括:在对原始安装包进行插桩时,将原始安装包中的非public类的权限转换为public,非public字段的权限转换为public,protected方法及package-private方法的权限均转换为public。在生成待修复方法的补丁包过程中,当需要使用原始安装包中的目标方法和\或目标字段时,根据目标方法和\或目标字段的权限使用目标方法和\或目标字段,以生成补丁包。

基于此,即使在复制某方法时,调用到了其他的方法和\或字段,由于本申请针对方法和\或字段的不同权限使用方法和\或权限,来生成补丁包,从而避免方法和\或字段无法被访问的问题,以生成有效的补丁包,进而可以解决热修复的问题。

可选的,根据目标方法和\或目标字段的权限使用目标方法和\或目标字段,以生成补丁包,包括:在原始安装包中,调用目标字段,以生成补丁包。和\或,若目标方法的权限是private,则将原始安装包中的目标方法复制到补丁包中,以生成补丁包。若目标方法的权限是public,则在原始安装包中,调用目标方法,以生成补丁包。

即对于目标字段,也可以直接调用目标字段,可以提高补丁包的生成效率。本申请对于权限是public的方法,采用直接调用的方式。相对于反射调用方式,可以提高补丁包的生成效率。相对于复制方式,从而可以减小补丁包的大小。对于权限是private的方法,则将原始安装包中的目标方法复制到补丁包中,以生成补丁包,从而可以提高生成补丁包的灵活性。

可选的,方法还包括:若目标方法的原始权限为protected或package-private,且对目标方法的权限转换失败,则采用反射调用方式调用目标方法,以生成补丁包。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910541776.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top