[發(fā)明專利]系統(tǒng)升級方法及裝置有效
| 申請?zhí)枺?/td> | 201510827502.6 | 申請日: | 2015-11-24 |
| 公開(公告)號: | CN105335200B | 公開(公告)日: | 2019-05-07 |
| 發(fā)明(設(shè)計)人: | 董俊杰 | 申請(專利權(quán))人: | 小米科技有限責(zé)任公司 |
| 主分類號: | G06F8/65 | 分類號: | G06F8/65 |
| 代理公司: | 北京博思佳知識產(chǎn)權(quán)代理有限公司 11415 | 代理人: | 林祥 |
| 地址: | 100085 北京市海淀區(qū)清*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 系統(tǒng)升級 方法 裝置 | ||
1.一種系統(tǒng)升級方法,其特征在于,所述方法包括:
將原方法替換為第一方法,將所述原方法備份到第二方法中;
將對所述原方法的調(diào)用轉(zhuǎn)換為對所述第一方法的調(diào)用,并通過所述第二方法調(diào)用備份的所述原方法;
所述將原方法替換為第一方法,將所述原方法備份到第二方法中,包括:
創(chuàng)建一數(shù)據(jù)區(qū)域,所述數(shù)據(jù)區(qū)域用于保存所述原方法的地址、所述第一方法的地址、所述第二方法的地址和內(nèi)存區(qū)域的地址;將所述原方法入口處將要被覆蓋的代碼備份到所述內(nèi)存區(qū)域;
在所述原方法的入口處寫入第一跳轉(zhuǎn)指令和所述數(shù)據(jù)區(qū)域的地址,所述第一跳轉(zhuǎn)指令用于跳轉(zhuǎn)到第一函數(shù),所述第一函數(shù)用于將所述原方法的參數(shù)轉(zhuǎn)換為所述第一方法的參數(shù);
在所述第二方法的入口處寫入第二跳轉(zhuǎn)指令和所述數(shù)據(jù)區(qū)域的地址,所述第二跳轉(zhuǎn)指令用于跳轉(zhuǎn)到第二函數(shù),所述第二函數(shù)用于將所述第二方法的參數(shù)轉(zhuǎn)換為所述原方法的參數(shù);
在所述內(nèi)存區(qū)域?qū)懭胩刂噶睢?/p>
2.根據(jù)權(quán)利要求1所述的系統(tǒng)升級方法,其特征在于,所述將對所述原方法的調(diào)用轉(zhuǎn)換為對所述第一方法的調(diào)用,包括:
通過所述第一跳轉(zhuǎn)指令跳轉(zhuǎn)到第一函數(shù),并通過所述第一函數(shù)將所述原方法的參數(shù)轉(zhuǎn)換為所述第一方法的參數(shù),以執(zhí)行所述第一方法。
3.根據(jù)權(quán)利要求1所述的系統(tǒng)升級方法,其特征在于,所述通過所述第二方法調(diào)用備份的所述原方法,包括:
通過所述第二跳轉(zhuǎn)指令跳轉(zhuǎn)到第二函數(shù),通過所述第二函數(shù)將所述第二方法的參數(shù)轉(zhuǎn)換為所述原方法的參數(shù),以執(zhí)行所述內(nèi)存區(qū)域備份的代碼。
4.根據(jù)權(quán)利要求3所述的系統(tǒng)升級方法,其特征在于,在所述通過所述第二函數(shù)將所述第二方法的參數(shù)轉(zhuǎn)換為所述原方法的參數(shù)之后,所述系統(tǒng)升級方法還包括:
根據(jù)所述跳回指令跳回執(zhí)行所述原方法未被覆蓋部分的代碼。
5.一種系統(tǒng)升級裝置,其特征在于,所述裝置包括:
替換備份模塊,被配置為將原方法替換為第一方法,將所述原方法備份到第二方法中;
轉(zhuǎn)換調(diào)用模塊,被配置為將對所述原方法的調(diào)用轉(zhuǎn)換為對所述替換備份模塊替換的所述第一方法的調(diào)用,并通過所述第二方法調(diào)用所述替換備份模塊備份的所述原方法;所述替換備份模塊包括:
創(chuàng)建子模塊,被配置為創(chuàng)建一數(shù)據(jù)區(qū)域,所述數(shù)據(jù)區(qū)域用于保存所述原方法的地址、所述第一方法的地址、所述第二方法的地址和內(nèi)存區(qū)域的地址;
備份子模塊,被配置為將所述原方法入口處將要被覆蓋的代碼備份到所述內(nèi)存區(qū)域;
第一寫入子模塊,被配置為在所述原方法的入口處寫入第一跳轉(zhuǎn)指令和所述數(shù)據(jù)區(qū)域的地址,所述第一跳轉(zhuǎn)指令用于跳轉(zhuǎn)到第一函數(shù),所述第一函數(shù)用于將所述原方法的參數(shù)轉(zhuǎn)換為所述第一方法的參數(shù);
第二寫入子模塊,被配置為在所述第二方法的入口處寫入第二跳轉(zhuǎn)指令和所述數(shù)據(jù)區(qū)域的地址,所述第二跳轉(zhuǎn)指令用于跳轉(zhuǎn)到第二函數(shù),所述第二函數(shù)用于將所述第二方法的參數(shù)轉(zhuǎn)換為所述原方法的參數(shù);
第三寫入子模塊,被配置為在所述內(nèi)存區(qū)域?qū)懭胩刂噶睢?/p>
6.根據(jù)權(quán)利要求5所述的系統(tǒng)升級裝置,其特征在于,所述轉(zhuǎn)換調(diào)用模塊包括:
第一跳轉(zhuǎn)轉(zhuǎn)換子模塊,被配置為通過所述第一寫入子模塊寫入的所述第一跳轉(zhuǎn)指令跳轉(zhuǎn)到第一函數(shù),并通過所述第一函數(shù)將所述原方法的參數(shù)轉(zhuǎn)換為所述第一方法的參數(shù),以執(zhí)行所述第一方法。
7.根據(jù)權(quán)利要求5所述的系統(tǒng)升級裝置,其特征在于,所述轉(zhuǎn)換調(diào)用模塊包括:
第二跳轉(zhuǎn)轉(zhuǎn)換子模塊,被配置為通過所述第二寫入子模塊寫入的所述第二跳轉(zhuǎn)指令跳轉(zhuǎn)到第二函數(shù),通過所述第二函數(shù)將所述第二方法的參數(shù)轉(zhuǎn)換為所述原方法的參數(shù),以執(zhí)行所述內(nèi)存區(qū)域備份的代碼。
8.根據(jù)權(quán)利要求7所述的系統(tǒng)升級裝置,其特征在于,所述轉(zhuǎn)換調(diào)用模塊還包括:
跳回執(zhí)行子模塊,被配置為在所述第二跳轉(zhuǎn)轉(zhuǎn)換子模塊通過所述第二函數(shù)將所述第二方法的參數(shù)轉(zhuǎn)換為所述原方法的參數(shù)之后,根據(jù)所述跳回指令跳回執(zhí)行所述原方法未被覆蓋部分的代碼。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于小米科技有限責(zé)任公司,未經(jīng)小米科技有限責(zé)任公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201510827502.6/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 一種android系統(tǒng)的升級方法和裝置
- 車載終端操作系統(tǒng)的WIFI升級方法及裝置
- 基于Android操作系統(tǒng)的系統(tǒng)升級方法
- 智能電視的系統(tǒng)升級方法及裝置
- 一種基于智能合約的權(quán)限可控的區(qū)塊鏈系統(tǒng)自動升級方法
- 美甲打印裝置的操作系統(tǒng)升級方法、裝置和介質(zhì)
- 一種系統(tǒng)升級方法、裝置和存儲介質(zhì)
- 系統(tǒng)升級方法、終端及可讀存儲介質(zhì)
- 系統(tǒng)升級方法、電子設(shè)備及計算機(jī)存儲介質(zhì)
- 一種修復(fù)Android終端系統(tǒng)升級異常的方法及系統(tǒng)





