[发明专利]系统升级方法及装置有效
申请号: | 201510827502.6 | 申请日: | 2015-11-24 |
公开(公告)号: | CN105335200B | 公开(公告)日: | 2019-05-07 |
发明(设计)人: | 董俊杰 | 申请(专利权)人: | 小米科技有限责任公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 林祥 |
地址: | 100085 北京市海淀区清*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 系统升级 方法 装置 | ||
本公开是关于一种系统升级方法及装置,其中,系统升级方法包括:将原方法替换为第一方法,将原方法备份到第二方法中;将对原方法的调用转换为对第一方法的调用,并通过第二方法调用备份的原方法。本公开实施例,通过将原方法替换为第一方法,将原方法备份到第二方法中,然后将对原方法的调用转换为对第一方法的调用,并通过第二方法调用备份的原方法,从而在不修改源代码的情况下,实现兼容系统的升级,大大地节省了时间、减少了出错率以及提高了升级效率。
技术领域
本公开涉及操作系统技术领域,尤其涉及一种系统升级方法及装置。
背景技术
安卓(Android)系统是一个开源的移动设备操作系统。目前很多移动设备操作系统均基于安卓系统开发,为安卓兼容系统。但是,所有安卓兼容系统必须兼容所有为安卓系统开发的软件。因此,这些安卓兼容系统不但需要保证自有软件的正常使用,而且需要保证基于安卓系统开发的第三方软件的正常使用。
为了将安卓系统改造为一个新的安卓兼容系统,现有的技术方案,是通过修改源代码来实现的。通过在安卓系统的源代码中,在适当的位置插入或者修改原代码,然后再一起编译来实现。
由于必须修改源代码,才能实现安卓系统的改造,这就导致当安卓系统升级时,必须付出额外的工作进行源代码的合并和修改才可以完成兼容系统的升级,不仅耗费时间多且容易出错。
发明内容
为克服相关技术中存在的问题,本公开提供一种系统升级方法及装置。
根据本公开实施例的第一方面,提供一种系统升级方法,包括:
将原方法替换为第一方法,将所述原方法备份到第二方法中;
将对所述原方法的调用转换为对所述第一方法的调用,并通过所述第二方法调用备份的所述原方法。
在一实施例中,所述将原方法替换为第一方法,将所述原方法备份到第二方法中,包括:
将所述原方法入口处将要被覆盖的代码备份到一内存区域;
在所述原方法的入口处写入第一跳转指令,所述第一跳转指令用于跳转到第一函数,所述第一函数用于将所述原方法的参数转换为所述第一方法的参数;
在所述第二方法的入口处写入第二跳转指令,所述第二跳转指令用于跳转到第二函数,所述第二函数用于将所述第二方法的参数转换为所述原方法的参数;
在所述内存区域写入跳回指令。
在一实施例中,在所述将所述原方法入口处将要被覆盖的代码备份到一内存区域之前,所述方法还包括:
创建一数据区域,所述数据区域用于保存所述原方法的地址、所述第一方法的地址、所述第二方法的地址和所述内存区域的地址;
在所述原方法的入口处写入第一跳转指令时,所述方法还包括:
写入所述数据区域的地址;
在所述第二方法的入口处写入第二跳转指令时,所述方法还包括:
写入所述数据区域的地址。
在一实施例中,所述将对所述原方法的调用转换为对所述第一方法的调用,包括:
通过所述第一跳转指令跳转到第一函数,并通过所述第一函数将所述原方法的参数转换为所述第一方法的参数,以执行所述第一方法。
在一实施例中,所述通过所述第二方法调用备份的所述原方法,包括:
通过所述第二跳转指令跳转到第二函数,通过所述第二函数将所述第二方法的参数转换为所述原方法的参数,以执行所述内存区域备份的代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于小米科技有限责任公司,未经小米科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510827502.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种服务器静默方法与系统
- 下一篇:红帽源码包管理SRPM包的处理方法及装置