欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于Root權(quán)限的程序升級方法及裝置制造方法

文檔序號:6639699閱讀:233來源:國知局
基于Root權(quán)限的程序升級方法及裝置制造方法
【專利摘要】本發(fā)明提供一種基于Root權(quán)限的程序升級方法,包括以下步驟:獲取已安裝應(yīng)用程序的升級包;在升級包的特征信息與已安裝應(yīng)用程序的特征信息不同時(shí),安裝升級包;在升級包安裝正確時(shí),卸載已安裝應(yīng)用程序。本發(fā)明還提供一種基于Root權(quán)限的程序升級裝置。通過上述方式,在具有Root權(quán)限時(shí),可對應(yīng)用程序進(jìn)行跨包名和/或簽名升級,以避免用戶的流失。
【專利說明】基于Root權(quán)限的程序升級方法及裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體而言,本發(fā)明涉及一種基于Root權(quán)限的程序升級方法及裝置。

【背景技術(shù)】
[0002]為滿足用戶需求,對應(yīng)用程序升級是非常必要的,通過升級可增加新功能以提高用戶體驗(yàn),還可修復(fù)程序中的漏洞。Android系統(tǒng)是一種以Linux為基礎(chǔ)的開放源代碼操作系統(tǒng),主要應(yīng)用于移動設(shè)備,如:手機(jī)和平板電腦等。目前,基于Android平臺的應(yīng)用程序升級,要求應(yīng)用程序升級前后的包名和簽名一致,即只允許應(yīng)用程序在同一個包名和簽名進(jìn)行覆蓋安裝和升級。
[0003]但應(yīng)用程序在使用過程中,存在如下情況:簽名泄露、簽名被破解;包名有關(guān)鍵詞侵權(quán);包名或簽名更新。在上述情況下,若將應(yīng)用程序升級至新的包名和/或簽名,則很難實(shí)現(xiàn)。導(dǎo)致應(yīng)用程序無法維護(hù)、用戶無法得到新的服務(wù)、用戶流失、不合法的包名或泄露的簽名繼續(xù)流通,給產(chǎn)品帶來巨大的損失。


【發(fā)明內(nèi)容】

[0004]本發(fā)明的目的旨在至少解決上述技術(shù)缺陷之一,特別是在具有Root權(quán)限時(shí),可對應(yīng)用程序進(jìn)行跨包名和/或簽名升級,以避免用戶流失。
[0005]本發(fā)明提供一種基于Root權(quán)限的程序升級方法,包括以下步驟:獲取已安裝應(yīng)用程序的升級包;在升級包的特征信息與已安裝應(yīng)用程序的特征信息不同時(shí),安裝升級包;在升級包安裝正確時(shí),卸載已安裝應(yīng)用程序。
[0006]其中,特征信息包括包名和簽名。
[0007]其中,在升級包的特征信息與已安裝應(yīng)用程序的特征信息不同時(shí),安裝升級包的步驟具體包括:發(fā)送獲取升級包特征信息的請求;接收響應(yīng)請求所返回的升級包特征信息;判斷升級包的特征信息與已安裝應(yīng)用程序的特征信息是否一致;若不一致,則安裝升級包。
[0008]其中,在升級包安裝正確時(shí),卸載已安裝應(yīng)用程序的步驟具體包括:升級包安裝完成后,發(fā)送啟動該應(yīng)用的請求;若安裝后的升級包可啟動,則升級包安裝正確,卸載已安裝應(yīng)用程序。
[0009]其中,特征信息還包括應(yīng)用大小和應(yīng)用中各文件的MD5值。
[0010]其中,安裝的升級包為合法的升級包。
[0011]其中,接收響應(yīng)請求所返回的升級包特征信息后,判斷該特征信息與升級包當(dāng)前特征信息是否一致,若一致,則獲取的升級包合法,升級包當(dāng)前特征信息包括應(yīng)用大小、簽名或應(yīng)用大小、重新生成的應(yīng)用中各文件的MD5值。
[0012]其中,在升級包的特征信息與已安裝應(yīng)用程序的特征信息相同時(shí),對已安裝應(yīng)用程序進(jìn)行普通升級。
[0013]其中,應(yīng)用程序的升級通過靜默或用戶觸發(fā)的方式實(shí)現(xiàn)。
[0014]其中,升級包的特征信息還包括數(shù)字標(biāo)識,當(dāng)升級前后的包名和簽名相同時(shí),數(shù)字標(biāo)識為O,當(dāng)升級前后的包名和/或簽名不同時(shí),數(shù)字標(biāo)識為其他數(shù)字。
[0015]本發(fā)明還提供一種基于Root權(quán)限的程序升級方法,包括以下步驟:接收已安裝應(yīng)用程序的升級指令;根據(jù)升級指令推送相應(yīng)的升級包;接收獲取升級包特征信息的請求;根據(jù)請求返回升級包的特征信息。
[0016]其中,特征信息包括包名和簽名。
[0017]其中,特征信息還包括應(yīng)用大小和應(yīng)用中各文件的MD5值。
[0018]其中,升級包的特征信息還包括數(shù)字標(biāo)識,當(dāng)升級前后的包名和簽名相同時(shí),數(shù)字標(biāo)識為O,當(dāng)升級前后的包名和/或簽名不同時(shí),數(shù)字標(biāo)識為其他數(shù)字。
[0019]本發(fā)明提供一種基于Root權(quán)限的程序升級裝置,包括:獲取模塊,用于獲取已安裝應(yīng)用程序的升級包;安裝模塊,用于在升級包的特征信息與已安裝應(yīng)用程序的特征信息不同時(shí),安裝升級包;卸載模塊,用于在升級包安裝正確時(shí),卸載已安裝應(yīng)用程序。
[0020]其中,特征信息包括包名和簽名。
[0021]其中,安裝模塊具體用于:發(fā)送獲取升級包特征信息的請求;接收響應(yīng)請求所返回的升級包特征信息;判斷升級包的特征信息與已安裝應(yīng)用程序的特征信息是否一致;若不一致,則安裝升級包。
[0022]其中,卸載模塊具體用于:升級包安裝完成后,發(fā)送啟動該應(yīng)用的請求;若安裝后的升級包可啟動,則升級包安裝正確,卸載已安裝應(yīng)用程序。
[0023]其中,特征信息還包括應(yīng)用大小和應(yīng)用中各文件的MD5值。
[0024]其中,安裝的升級包為合法的升級包。
[0025]其中,安裝模塊具體用于:接收響應(yīng)請求所返回的升級包特征信息后,判斷該特征信息與升級包當(dāng)前特征信息是否一致,若一致,則獲取的升級包合法,升級包當(dāng)前特征信息包括應(yīng)用大小、簽名或應(yīng)用大小、重新生成的應(yīng)用中各文件的MD5值。
[0026]其中,裝置還包括:普通升級模塊,用于在升級包的特征信息與已安裝應(yīng)用程序的特征信息相同時(shí),對已安裝應(yīng)用程序進(jìn)行普通升級。
[0027]其中,應(yīng)用程序的升級通過靜默或用戶觸發(fā)的方式實(shí)現(xiàn)。
[0028]其中,升級包的特征信息還包括數(shù)字標(biāo)識,當(dāng)升級前后的包名和簽名相同時(shí),數(shù)字標(biāo)識為O,當(dāng)升級前后的包名和/或簽名不同時(shí),數(shù)字標(biāo)識為其他數(shù)字。
[0029]本發(fā)明還提供一種基于Root權(quán)限的程序升級裝置,包括:第一接收模塊,用于接收已安裝應(yīng)用程序的升級指令;推送模塊,用于根據(jù)升級指令推送相應(yīng)的升級包;第二接收模塊,用于接收獲取升級包特征信息的請求;返回模塊,用于根據(jù)請求返回升級包的特征信息。
[0030]其中,特征信息包括包名和簽名。
[0031]其中,特征信息還包括應(yīng)用大小和應(yīng)用中各文件的MD5值。
[0032]其中,升級包的特征信息還包括數(shù)字標(biāo)識,當(dāng)升級前后的包名和簽名相同時(shí),數(shù)字標(biāo)識為O,當(dāng)升級前后的包名和/或簽名不同時(shí),數(shù)字標(biāo)識為其他數(shù)字。
[0033]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):
[0034]1.將服務(wù)器端升級包的特性信息與下載后升級包的當(dāng)前特征信息進(jìn)行比較,當(dāng)二者的應(yīng)用簽名或應(yīng)用中各文件的MD5值相同時(shí),該下載的升級包合法。其中,應(yīng)用中各文件的MD5值為重新生成。通過合法性驗(yàn)證,可確保下載的升級包沒有被篡改,為官方的升級包。
[0035]2.將服務(wù)器端升級包的特性信息與已安裝應(yīng)用程序的特征信息進(jìn)行比較,若二者的包名和/或簽名不同,在具有Root權(quán)限的情況下,進(jìn)行跨包名和/或簽名升級,若二者的包名和簽名相同,進(jìn)行普通升級。通過該方式,只要開發(fā)者對同款軟件升級,不論包名和/或簽名相同與否,均可進(jìn)行升級。
[0036]3.升級方式可采用靜默的方式在后臺升級,方便快捷。
[0037]本發(fā)明提出的上述方案,通過跨包名和/或簽名升級,可維持原應(yīng)用程序的用戶,避免用戶的流失。
[0038]本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。

【專利附圖】

【附圖說明】
[0039]本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對實(shí)施例的描述中將變得明顯和容易理解,其中:
[0040]圖1為本發(fā)明系統(tǒng)結(jié)構(gòu)原理圖;
[0041]圖2為本發(fā)明基于Root權(quán)限的程序升級方法一實(shí)施例的流程示意圖;
[0042]圖3為本發(fā)明基于Root權(quán)限的程序升級方法另一實(shí)施例的流程示意圖;
[0043]圖4為本發(fā)明系統(tǒng)基于Root權(quán)限的程序升級方法一實(shí)施例的流程示意圖;
[0044]圖5為本發(fā)明基于Root權(quán)限的程序升級裝置一實(shí)施例的結(jié)構(gòu)示意圖。

【具體實(shí)施方式】
[0045]下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
[0046]本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元件被“連接”或“耦接”到另一元件時(shí),它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關(guān)聯(lián)的列出項(xiàng)的全部或任一單元和全部組合。
[0047]本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學(xué)術(shù)語),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語,應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。
[0048]本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,這里所使用的“終端”、“終端設(shè)備”既包括無線信號接收器的設(shè)備,其僅具備無發(fā)射能力的無線信號接收器的設(shè)備,又包括接收和發(fā)射硬件的設(shè)備,其具有能夠在雙向通信鏈路上,執(zhí)行雙向通信的接收和發(fā)射硬件的設(shè)備。這種設(shè)備可以包括:蜂窩或其他通信設(shè)備,其具有單線路顯示器或多線路顯示器或沒有多線路顯示器的蜂窩或其他通信設(shè)備;PCS (Personal Communicat1ns Service,個人通信系統(tǒng)),其可以組合語音、數(shù)據(jù)處理、傳真和/或數(shù)據(jù)通信能力;PDA (Personal Digital Assistant,個人數(shù)字助理),其可以包括射頻接收器、尋呼機(jī)、互聯(lián)網(wǎng)/內(nèi)聯(lián)網(wǎng)訪問、網(wǎng)絡(luò)瀏覽器、記事本、日歷和/或GPS (Global Posit1ning System,全球定位系統(tǒng))接收器;常規(guī)膝上型和/或掌上型計(jì)算機(jī)或其他設(shè)備,其具有和/或包括射頻接收器的常規(guī)膝上型和/或掌上型計(jì)算機(jī)或其他設(shè)備。這里所使用的“終端”、“終端設(shè)備”可以是便攜式、可運(yùn)輸、安裝在交通工具(航空、海運(yùn)和/或陸地)中的,或者適合于和/或配置為在本地運(yùn)行,和/或以分布形式,運(yùn)行在地球和/或空間的任何其他位置運(yùn)行。這里所使用的“終端”、“終端設(shè)備”還可以是通信終端、上網(wǎng)終端、音樂/視頻播放終端,例如可以是PDA、MID(Mobile Internet Device,移動互聯(lián)網(wǎng)設(shè)備)和/或具有音樂/視頻播放功能的移動電話,也可以是智能電視、機(jī)頂盒等設(shè)備。
[0049]本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,這里所使用的遠(yuǎn)端網(wǎng)絡(luò)設(shè)備,其包括但不限于計(jì)算機(jī)、網(wǎng)絡(luò)主機(jī)、單個網(wǎng)絡(luò)服務(wù)器、多個網(wǎng)絡(luò)服務(wù)器集或多個服務(wù)器構(gòu)成的云。在此,云由基于云計(jì)算(Cloud Computing)的大量計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個超級虛擬計(jì)算機(jī)。本發(fā)明的實(shí)施例中,遠(yuǎn)端網(wǎng)絡(luò)設(shè)備、終端設(shè)備與WNS服務(wù)器之間可通過任何通信方式實(shí)現(xiàn)通信,包括但不限于,基于3GPP、LTE、WIMAX的移動通信、基于TCP/IP、UDP協(xié)議的計(jì)算機(jī)網(wǎng)絡(luò)通信以及基于藍(lán)牙、紅外傳輸標(biāo)準(zhǔn)的近距無線傳輸方式。
[0050]本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明所稱的“應(yīng)用”、“應(yīng)用程序”、“應(yīng)用軟件”以及類似表述的概念,是業(yè)內(nèi)技術(shù)人員所公知的相同概念,是指由一系列計(jì)算機(jī)指令及相關(guān)數(shù)據(jù)資源有機(jī)構(gòu)造的適于電子運(yùn)行的計(jì)算機(jī)軟件。除非特別指定,這種命名本身不受編程語言種類、級別,也不受其賴以運(yùn)行的操作系統(tǒng)或平臺所限制。理所當(dāng)然地,此類概念也不受任何形式的終端所限制。
[0051]請參閱圖1,圖1為本發(fā)明系統(tǒng)結(jié)構(gòu)原理圖,如圖1所示,包括客戶端11和服務(wù)器端12。
[0052]圖1所示系統(tǒng)為基于網(wǎng)絡(luò)環(huán)境所構(gòu)建的系統(tǒng),客戶端11為安裝有應(yīng)用程序的智能終端(如:移動終端、電腦),服務(wù)器端12設(shè)有應(yīng)用程序升級所需的升級包。其中,客戶端11為運(yùn)行Android系統(tǒng)的智能終端,服務(wù)器端12可為云端。
[0053]客戶端11涉及Android系統(tǒng),但不局限于該操作系統(tǒng),本領(lǐng)域技術(shù)人員可以合理預(yù)見,可適應(yīng)本發(fā)明構(gòu)思的操作系統(tǒng)均可。
[0054]請參閱圖2,圖2為本發(fā)明基于Root權(quán)限的程序升級方法一實(shí)施例的流程示意圖,如圖2所示,包括以下步驟:
[0055]S21,獲取已安裝應(yīng)用程序的升級包。
[0056]本實(shí)施例的方法在圖1所示的客戶端11實(shí)施。應(yīng)用程序的升級具有多種方式,以手機(jī)為例,如:根據(jù)手機(jī)助手推送的升級信息,發(fā)送升級請求;根據(jù)軟件自身推送的升級信息,發(fā)送升級請求;在沒有升級提示下,用戶主動查看是否可升級,若可升級,發(fā)送升級請求。通過升級請求,獲取圖1所示服務(wù)器端12推送的升級包。其中,升級請求中通常攜帶有需升級應(yīng)用程序的相關(guān)信息,如包名等。
[0057]客戶端11中安裝的應(yīng)用程序包括用戶安裝的應(yīng)用程序和系統(tǒng)內(nèi)置的應(yīng)用程序,為方便用戶管理或數(shù)據(jù)讀取,升級包可存儲至flash盤或SD卡,通常優(yōu)先存儲至SD卡,以防止設(shè)備變慢。
[0058]S22,在升級包的特征信息與已安裝應(yīng)用程序的特征信息不同時(shí),安裝升級包。
[0059]本實(shí)施例客戶端11系統(tǒng)中注冊有service,用于進(jìn)行步驟S22、S23的工作。在升級包安裝前,需要判斷升級包是否合法,采用何種方式升級。
[0060]判斷已安裝應(yīng)用程序升級方式的方法如下:
[0061]A.發(fā)送獲取升級包特征信息的請求。
[0062]通過URL發(fā)送獲取升級包特征信息的請求至服務(wù)器端12,服務(wù)器端12根據(jù)該請求查找此升級包在服務(wù)器端12存儲的特征信息,并以JSON字符串的方式返回。
[0063]返回的特征信息包括:包名和簽名,還可包括以下一種或多種信息:數(shù)字標(biāo)識、應(yīng)用大小、應(yīng)用中各文件的MD5值。
[0064]包名源自于Java的package的概念,按照package的命名風(fēng)格,如某個應(yīng)用程序的包名為com.qihoo360.mobilesafe, Android系統(tǒng)要求每個應(yīng)用程序都聲明一個唯一的包名。如果需安裝的應(yīng)用程序的包名與已安裝的應(yīng)用程序的包名重復(fù),則該需安裝的應(yīng)用程序無法安裝。
[0065]根據(jù)包名的原理,Android系統(tǒng)的應(yīng)用程序在升級時(shí),首先卸載已安裝的應(yīng)用程序,再安裝其升級包。
[0066]出于安全性的目的,Android系統(tǒng)要求每個應(yīng)用程序都包含開發(fā)者簽名,簽名也可稱為代碼簽名,附加于應(yīng)用程序上,用于防偽和防篡改。如果應(yīng)用程序的簽名與其官方的簽名不一致,則認(rèn)為應(yīng)用程序可能被篡改。在提取簽名時(shí),對于安卓應(yīng)用而言,可以從程序中的元信息(META-1NF)目錄下提取。
[0067]數(shù)字標(biāo)識如:0、1、2等,當(dāng)升級前后的包名和簽名相同時(shí),數(shù)字標(biāo)識為0,當(dāng)升級前后的包名和/或簽名不同時(shí),所述數(shù)字標(biāo)識為其他數(shù)字。
[0068]應(yīng)用程序目錄下各文件的MD5值,是對各文件利用現(xiàn)有的校驗(yàn)算法(如MD5算法)計(jì)算產(chǎn)生的一個校驗(yàn)值,校驗(yàn)值可用于驗(yàn)證應(yīng)用程序的合法性,即完整且未被篡改。
[0069]現(xiàn)有技術(shù)中,Android系統(tǒng)應(yīng)用程序的升級需已安裝應(yīng)用程序與其升級包的包名和簽名相同,否則無法升級。
[0070]B.接收響應(yīng)請求所返回的升級包特征信息。
[0071]C.判斷升級包的特征信息與已安裝應(yīng)用程序的特征信息是否一致。
[0072]D.若不一致,采用跨包名和/或簽名的方式升級。
[0073]已安裝應(yīng)用程序的特征信息從已安裝應(yīng)用程序的安裝包提取,包括簽名和包名。
[0074]將升級包的包名和簽名與已安裝應(yīng)用程序的包名和簽名進(jìn)行對比,若二者的包名和/或簽名不相同,則需采用跨包名和/或簽名的方式升級,若二者的包名和/或簽名相同,則采用普通升級方式。
[0075]還可利用升級包特征信息中的數(shù)字標(biāo)識進(jìn)行判斷,若數(shù)字標(biāo)識為0,則采用普通升級方式,若數(shù)字標(biāo)識為其他數(shù)字,則采用跨包名和/或簽名的方式升級。
[0076]雖然已安裝應(yīng)用程序的包名和簽名與其升級包的包名和簽名不一致,但服務(wù)器端12會注明二者的聯(lián)系,當(dāng)已安裝應(yīng)用程序發(fā)送升級請求時(shí),服務(wù)器端12會推送該升級包。
[0077]在其他實(shí)施例中,還可在服務(wù)器端12判斷升級包與已安裝應(yīng)用程序的包名、簽名是否相同,具體為,當(dāng)已安裝應(yīng)用程序發(fā)送升級請求時(shí),請求包括該應(yīng)用相應(yīng)的包名和簽名,服務(wù)器端12將接收的包名和簽名與其存儲的升級包的包名和簽名進(jìn)行比較,并將比較結(jié)果返回至客戶端11,客戶端11根據(jù)比較結(jié)果采用相應(yīng)的升級方式進(jìn)行升級。
[0078]不論采用跨包名和/或簽名的方式升級,還是采用普通方式升級,在安裝升級包前,需判斷升級包是否合法,即是否下載完整、是否被篡改。
[0079]判斷獲取的升級包是否合法的方法如下:
[0080]A.接收響應(yīng)請求所返回的升級包特征信息。
[0081]此步驟在判斷已安裝應(yīng)用程序升級方式的方法中已有闡述,在此不再贅述。
[0082]B.判斷返回的升級包的特征信息與下載后升級包的當(dāng)前特征信息是否一致。
[0083]返回的升級包的特征信息包括應(yīng)用大小、簽名或應(yīng)用大小、應(yīng)用中各文件的MD5值。升級包的當(dāng)前特征信息包括應(yīng)用大小、簽名或應(yīng)用大小、重新生成的應(yīng)用中各文件的MD5值。將二者的應(yīng)用大小、簽名進(jìn)行比較,可先對應(yīng)用大小進(jìn)行初步判斷,再判斷簽名,若應(yīng)用大小不同,就可說明升級包不合法?;?qū)⒍叩膽?yīng)用大小、應(yīng)用中各文件的MD5值進(jìn)行比較,由于應(yīng)用大小的比較較為方便,可先對應(yīng)用大小進(jìn)行初步判斷,再判斷應(yīng)用中各文件的MD5值?;?qū)⒍叩膽?yīng)用大小、簽名、應(yīng)用中各文件的MD5值綜合比較,以較精確的判斷結(jié)果。
[0084]當(dāng)簽名不同,說明升級包被惡意篡改,當(dāng)MD5值不同,說明升級包沒有下完整或被惡意篡改。
[0085]在某些情況下,以手機(jī)為例,升級包的簽名可能在SD卡上被篡改,這時(shí)還需驗(yàn)證簽名的MD5值。具體為:首先根據(jù)升級包重新生成簽名MD5值,然后跟升級包中的原簽名MD5值進(jìn)行比較,若一致,則該簽名合法。
[0086]在其他實(shí)施例中,還可采用應(yīng)用程序的MD5值進(jìn)行判斷。
[0087]在其他實(shí)施例中,還可將下載后升級包的當(dāng)前特征信息發(fā)送至服務(wù)器端12進(jìn)行判斷。
[0088]C.若一致,則下載的升級包合法。
[0089]當(dāng)返回的升級包的特征信息與下載后升級包的當(dāng)前特征信息一致時(shí),則下載的升級包合法。
[0090]以上所述,升級包合法性的判斷與已安裝應(yīng)用程序升級方式的判斷可同時(shí)進(jìn)行,也可優(yōu)先判斷合法性。若下載的升級包不合法,將下載的升級包刪除。
[0091]采用跨包名和/或簽名的方式升級,其過程具體為,首先安裝升級包,然后卸載已安裝的應(yīng)用程序。此過程的實(shí)現(xiàn)需要在具有Root權(quán)限的情況下實(shí)施,因此需要獲得Root權(quán)限,Root權(quán)限的獲取方式如下:
[0092]目如有多種提權(quán)方案用于獲取Android系統(tǒng)的Root權(quán)限,依提權(quán)后權(quán)限作用的生命周期來看,包括永久Root權(quán)限和臨時(shí)Root權(quán)限。永久Root權(quán)限情況下,應(yīng)用程序一經(jīng)Root授權(quán),以后可不必再進(jìn)行Root提權(quán);而臨時(shí)Root權(quán)限情況下,權(quán)限作用的生命周期只是操作系統(tǒng)的一次從開機(jī)到關(guān)機(jī)的過程,下次開機(jī)依然需要進(jìn)行Root。
[0093]無論采用何種Root方式,提權(quán)的基本原理均是通過向系統(tǒng)植入用于接收權(quán)限請求的SU,再結(jié)合SuperUser.apk應(yīng)用程序?qū)崿F(xiàn)人機(jī)交互。Root提權(quán)操作的過程具體為:把su文件放到/system/bin/中,把Superuser, apk放到system/app下面,前者用于監(jiān)聽用戶的權(quán)限請求并與后者通信,后者主要是在與前者通信的基礎(chǔ)上實(shí)現(xiàn)人機(jī)交互,從而允許用戶做出相關(guān)指示。理論上,如果su可以實(shí)現(xiàn)默認(rèn)通過所有權(quán)限請求,則SuperUser.apk可以舍棄。此外還需要設(shè)置/system/bin/su可以讓任意用戶可運(yùn)行,使其具有set uid和set gid的權(quán)限,具體可通過在android機(jī)器上運(yùn)行命令:adbshell chmod 4755/system/bin/su 實(shí)現(xiàn)。
[0094]對于Root方案,應(yīng)理解為包括:與破解相關(guān)的代碼文件及其配置參數(shù),以“su”、“SuperUser.apk”命名或?qū)崿F(xiàn)的文件。
[0095]當(dāng)需獲得Root權(quán)限時(shí),發(fā)送Root請求,云端接收該請求后,根據(jù)請求中相關(guān)的機(jī)型信息,選擇適合該機(jī)型的Root方案,并推送至客戶端11,客戶端11根據(jù)此Root方案獲取Root權(quán)限。
[0096]客戶端11的service運(yùn)行于后臺,可調(diào)用PackageManagerService對升級包進(jìn)行安裝。
[0097]S23,在升級包安裝正確時(shí),卸載已安裝應(yīng)用程序。
[0098]卸載已安裝應(yīng)用程序前,需進(jìn)行以下判斷:
[0099]A.升級包安裝完成后,發(fā)送啟動該應(yīng)用的請求。
[0100]B.若安裝后的升級包可啟動,則升級包安裝正確,卸載已安裝應(yīng)用程序。
[0101]以上所述完成應(yīng)用程序的跨包名和/簽名升級,在升級過程中,通過狀態(tài)機(jī)判斷每一步的狀態(tài),如:升級包下載是否成功、升級包是否合法等狀態(tài),當(dāng)狀態(tài)滿足時(shí),執(zhí)行下一步的操作,若狀態(tài)不滿足條件,則退出升級。
[0102]本實(shí)施例在升級過程中,采用靜默的方式升級。在其他實(shí)施例中,可采用用戶觸發(fā),即用戶確認(rèn)的方式升級。
[0103]需要指出的是,本實(shí)施例的方法可作為獨(dú)立產(chǎn)品實(shí)現(xiàn),也可作為附加功能添加至其他廣品,如:360手機(jī)助手。
[0104]以上所述,本實(shí)施例可對應(yīng)用程序進(jìn)行跨包名和/或簽名升級,避免由于應(yīng)用程序升級包改變包名和/或簽名,使得應(yīng)用程序無法維護(hù)而導(dǎo)致用戶流失的問題。且利用本實(shí)施例的方法,可對應(yīng)用程序的包名和/或簽名進(jìn)行更新,以避免應(yīng)用程序由其包名和/或簽名帶來的問題,確保應(yīng)用程序的持續(xù)開發(fā)。
[0105]請參閱圖3,圖3為本發(fā)明基于Root權(quán)限的程序升級方法另一實(shí)施例的流程示意圖,如圖3所示,包括以下步驟:
[0106]S31,接收已安裝應(yīng)用程序的升級指令。
[0107]本實(shí)施例的方法在圖1所示的服務(wù)器端12實(shí)施,服務(wù)器端12設(shè)有升級包及與該升級包相關(guān)的特征信息。
[0108]S32,根據(jù)升級指令推送相應(yīng)的升級包。
[0109]服務(wù)器端12接收已安裝應(yīng)用程序的升級指令后,對該指令進(jìn)行解析,獲得相應(yīng)升級包的特征信息,如:是否跨包名和/或簽名、路徑、MD5值、應(yīng)用大小等信息,根據(jù)路徑確定升級包的位置,并將升級包推送至圖1所示的客戶端11。
[0110]S33,接收獲取升級包特征信息的請求。
[0111]S34,根據(jù)請求返回升級包的特征信息。
[0112]服務(wù)器端12返回的升級包的特征信息包括包名和簽名,還可包括以下一種或多種信息:數(shù)字標(biāo)識、應(yīng)用大小、應(yīng)用中各文件的MD5值。
[0113]其中,利用包名、簽名、數(shù)字標(biāo)識可判斷已安裝應(yīng)用程序是否為跨包名和/或簽名升級,利用簽名、應(yīng)用大小、應(yīng)用中各文件的MD5值可判斷下載后的升級包是否合法。
[0114]以上所述,服務(wù)器端12與客戶端11相互配合,共同完成已安裝應(yīng)用程序的跨包名和/或簽名升級,避免用戶斷層。
[0115]請參閱圖4,圖4為本發(fā)明系統(tǒng)基于Root權(quán)限的程序升級方法一實(shí)施例的流程示意圖,如圖4所示,包括以下步驟:
[0116]S41,服務(wù)器端接收客戶端發(fā)送的已安裝應(yīng)用程序的升級指令。
[0117]S42,根據(jù)升級指令推送相應(yīng)的升級包。
[0118]S43,客戶端獲取已安裝應(yīng)用程序的升級包。
[0119]S44,服務(wù)器端接收客戶端發(fā)送的獲取升級包特征信息的請求。
[0120]S45,根據(jù)請求返回升級包的特征信息。
[0121]S46,在升級包的特征信息與已安裝應(yīng)用程序的特征信息不同時(shí),安裝升級包。
[0122]S47,在升級包安裝正確時(shí),卸載已安裝應(yīng)用程序。
[0123]上述步驟在圖2和圖3所示的實(shí)施例中,均由詳細(xì)的描述,在此不再贅述。
[0124]請參閱圖5,圖5為本發(fā)明基于Root權(quán)限的程序升級裝置一實(shí)施例的結(jié)構(gòu)示意圖,如圖5所示,包括獲取模塊51、安裝模塊52、卸載模塊53、普通升級模塊54、第一接收模塊55、推送模塊56、第二接收模塊57及返回模塊58。
[0125]上述各模塊的功能如下:
[0126]獲取模塊51用于獲取已安裝應(yīng)用程序的升級包。安裝模塊52用于在升級包的特征信息與已安裝應(yīng)用程序的特征信息不同時(shí),安裝升級包。卸載模塊53用于在升級包安裝正確時(shí),卸載已安裝應(yīng)用程序。普通升級模塊54用于在升級包的特征信息與已安裝應(yīng)用程序的特征信息相同時(shí),對已安裝應(yīng)用程序進(jìn)行普通升級。
[0127]第一接收模塊55用于接收已安裝應(yīng)用程序的升級指令。推送模塊56用于根據(jù)升級指令推送相應(yīng)的升級包。第二接收模塊57用于接收獲取升級包特征信息的請求。返回模塊58用于根據(jù)請求返回升級包的特征信息。
[0128]在本實(shí)施例中,結(jié)合圖1,獲取模塊51、安裝模塊52、卸載模塊53及普通升級模塊54位于客戶端11中,第一接收模塊55、推送模塊56、第二接收模塊57及返回模塊58位于服務(wù)器端12中,客戶端11與服務(wù)器端12相互交互,下面詳細(xì)闡述在交互過程中,各模塊的工作過程。
[0129]客戶端11中已安裝應(yīng)用程序可升級時(shí),由用戶發(fā)出升級指令,服務(wù)器端12第一接收模塊55接收該升級指令,對該升級指令進(jìn)行解析,查找相應(yīng)的升級包,推送模塊56將查找的升級包推送至客戶端11??蛻舳?1獲取模塊51獲取推送模塊56推送的升級包后,安裝模塊52發(fā)送獲取該升級包特征信息的請求,第二接收模塊57接收該請求后,查找服務(wù)器端12存儲的該升級包的特征信息,返回模塊58將此特征信息返回至客戶端11。安裝模塊52接收返回的升級包特征信息后,判斷該升級包的特征信息與已安裝應(yīng)用程序的特征信息是否一致,主要判斷二者的包名和簽名,當(dāng)判斷結(jié)果為不一致時(shí),對已安裝應(yīng)用程序采用跨包名和/或簽名的方式升級,當(dāng)判斷結(jié)果為一致時(shí),對已安裝應(yīng)用程序采用普通升級方式升級??绨?或簽名的方式升級具體為,首先安裝模塊52安裝該升級包,升級包安裝完成后,卸載模塊53發(fā)送啟動安裝后的升級包的請求,若安裝后的升級包可啟動,卸載模塊53卸載原來的已安裝應(yīng)用程序,至此完成跨包名和/或簽名升級。普通升級的方式具體為,普通升級模塊54對已安裝應(yīng)用程序進(jìn)行升級。
[0130]其中,安裝模塊52接收返回的升級包特征信息后,還需判斷該特征信息與下載后的升級包的當(dāng)前特征信息是否一致,若一致,則獲取的升級包合法,才能進(jìn)行安裝或判斷以何種方式升級。在此判斷過程中,升級包當(dāng)前特征信息包括應(yīng)用大小、簽名或應(yīng)用大小、重新生成的應(yīng)用中各文件的MD5值。
[0131]其中,服務(wù)器端12返回的特征信息包括:包名和簽名,還可包括以下一種或多種信息:數(shù)字標(biāo)識、應(yīng)用大小、應(yīng)用中各文件的MD5值。當(dāng)升級前后的包名和簽名相同時(shí),數(shù)字標(biāo)識為O,當(dāng)升級前后的包名和/或簽名不同時(shí),數(shù)字標(biāo)識為其他數(shù)字,因此,數(shù)字標(biāo)識也可判斷是否為跨包名和/或簽名升級。
[0132]其中,應(yīng)用程序的升級通過靜默或用戶觸發(fā)的方式實(shí)現(xiàn)。
[0133]本實(shí)施例可對應(yīng)用程序進(jìn)行跨包名和/或簽名升級,使本來由于包名和/或簽名原因不能升級的應(yīng)用程序具有新的功能,避免用戶流失。
[0134]以上所述僅是本發(fā)明的部分實(shí)施方式,應(yīng)當(dāng)指出,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種基于Root權(quán)限的程序升級方法,其特征在于,包括以下步驟: 獲取已安裝應(yīng)用程序的升級包; 在所述升級包的特征信息與已安裝應(yīng)用程序的特征信息不同時(shí),安裝所述升級包; 在所述升級包安裝正確時(shí),卸載所述已安裝應(yīng)用程序。
2.根據(jù)權(quán)利要求1所述的基于Root權(quán)限的程序升級方法,其特征在于,所述特征信息包括包名和簽名。
3.根據(jù)權(quán)利要求2所述的基于Root權(quán)限的程序升級方法,其特征在于,在所述升級包的特征信息與已安裝應(yīng)用程序的特征信息不同時(shí),安裝所述升級包的步驟具體包括: 發(fā)送獲取升級包特征信息的請求; 接收響應(yīng)請求所返回的升級包特征信息; 判斷所述升級包的特征信息與已安裝應(yīng)用程序的特征信息是否一致; 若不一致,則安裝所述升級包。
4.根據(jù)權(quán)利要求3所述的基于Root權(quán)限的程序升級方法,其特征在于,在所述升級包安裝正確時(shí),卸載所述已安裝應(yīng)用程序的步驟具體包括: 所述升級包安裝完成后,發(fā)送啟動該應(yīng)用的請求; 若安裝后的升級包可啟動,則所述升級包安裝正確,卸載所述已安裝應(yīng)用程序。
5.根據(jù)權(quán)利要求4所述的基于Root權(quán)限的程序升級方法,其特征在于,所述特征信息還包括應(yīng)用大小和應(yīng)用中各文件的MD5值。
6.根據(jù)權(quán)利要求5所述的基于Root權(quán)限的程序升級方法,其特征在于,接收響應(yīng)請求所返回的升級包特征信息后,判斷該特征信息與升級包當(dāng)前特征信息是否一致,若一致,則獲取的升級包合法,所述升級包當(dāng)前特征信息包括應(yīng)用大小、簽名或應(yīng)用大小、重新生成的應(yīng)用中各文件的MD5值。
7.一種基于Root權(quán)限的程序升級方法,其特征在于,包括以下步驟: 接收已安裝應(yīng)用程序的升級指令; 根據(jù)所述升級指令推送相應(yīng)的升級包; 接收獲取所述升級包特征信息的請求; 根據(jù)所述請求返回升級包的特征信息。
8.一種基于Root權(quán)限的程序升級裝置,其特征在于,包括: 獲取模塊,用于獲取已安裝應(yīng)用程序的升級包; 安裝模塊,用于在所述升級包的特征信息與已安裝應(yīng)用程序的特征信息不同時(shí),安裝所述升級包; 卸載模塊,用于在所述升級包安裝正確時(shí),卸載所述已安裝應(yīng)用程序。
9.根據(jù)權(quán)利要求8所述的基于Root權(quán)限的程序升級裝置,其特征在于,所述裝置包括: 普通升級模塊,用于在所述升級包的特征信息與已安裝應(yīng)用程序的特征信息相同時(shí),對所述已安裝應(yīng)用程序進(jìn)行普通升級。
10.一種基于Root權(quán)限的程序升級裝置,其特征在于,包括: 第一接收模塊,用于接收已安裝應(yīng)用程序的升級指令; 推送模塊,用于根據(jù)所述升級指令推送相應(yīng)的升級包;第二接收模塊,用于接收獲取所述升級包特征信息的請求;返回模塊,用于根據(jù)所述請求返回升級包的特征信息。
【文檔編號】G06F9/445GK104391729SQ201410806477
【公開日】2015年3月4日 申請日期:2014年12月19日 優(yōu)先權(quán)日:2014年12月19日
【發(fā)明者】符傳堅(jiān), 陳俊, 鄒勇, 馬金亭 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
军事| 楚雄市| 郎溪县| 迭部县| 丰原市| 鸡西市| 外汇| 济南市| 碌曲县| 临猗县| 灌阳县| 余干县| 平陆县| 民丰县| 瑞丽市| 正宁县| 原平市| 安西县| 扶沟县| 大同市| 台北市| 丹巴县| 依安县| 无极县| 桂阳县| 黑河市| 宜都市| 洱源县| 花垣县| 长沙市| 闽清县| 达日县| 蒙山县| 瑞丽市| 溧水县| 乃东县| 麟游县| 定结县| 渝中区| 抚顺县| 高邮市|