應(yīng)用程序管理方法、應(yīng)用程序管理系統(tǒng)與使用者裝置制造方法
【專利摘要】一種應(yīng)用程序管理方法、應(yīng)用程序管理系統(tǒng)與使用者裝置。該應(yīng)用程序管理方法包括下列步驟。接收原始應(yīng)用程序,并通過再封裝程序,將使用權(quán)管理程序代碼注入至原始應(yīng)用程序,以產(chǎn)生再封裝應(yīng)用程序。將再封裝應(yīng)用程序公開,以供使用者裝置下載并安裝再封裝應(yīng)用程序,其中使用者裝置執(zhí)行客戶端程序。當(dāng)使用者裝置執(zhí)行再封裝應(yīng)用程序,使用權(quán)管理程序代碼發(fā)出使用權(quán)檢查請(qǐng)求,以啟動(dòng)客戶端程序根據(jù)再封裝應(yīng)用程序的使用權(quán)信息發(fā)出使用權(quán)檢查回應(yīng)。使用權(quán)檢查回應(yīng)指出再封裝應(yīng)用程序是否可繼續(xù)執(zhí)行。當(dāng)使用權(quán)檢查回應(yīng)指出再封裝應(yīng)用程序不可繼續(xù)執(zhí)行,使用權(quán)管理程序代碼終止再封裝應(yīng)用程序。
【專利說明】應(yīng)用程序管理方法、應(yīng)用程序管理系統(tǒng)與使用者裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種應(yīng)用程序管理方法、應(yīng)用程序管理系統(tǒng)與使用者裝置。
【背景技術(shù)】
[0002]Android是以一個(gè)Linux為基礎(chǔ)的半開放原始碼操作系統(tǒng),主要用于移動(dòng)裝置,目前是由Google所成立的開放手機(jī)聯(lián)盟(Open Handset Alliance)持續(xù)開發(fā)中。Google所提供的Android軟件開發(fā)套件(Software Development Kit, SDK)可讓第三方軟件開發(fā)者(Software Developer)為Android操作系統(tǒng)開發(fā)應(yīng)用程序。
[0003]然而,以應(yīng)用程序的使用權(quán)(License)而言,Android的應(yīng)用程序需要特別的管理程序代碼向后端系統(tǒng)查詢應(yīng)用程序的使用權(quán),以決定應(yīng)用程序是否能執(zhí)行。如果第三方軟件開發(fā)者在開發(fā)應(yīng)用程序時(shí)手動(dòng)加入使用權(quán)管理程序代碼,則第三方軟件開發(fā)者需要一段時(shí)間去學(xué)習(xí)Android SDK其中關(guān)于使用權(quán)的部分。而針對(duì)不同業(yè)者的平臺(tái)所供應(yīng)的SDK,第三方軟件開發(fā)者需采用不同的方式加入使用權(quán)管理程序代碼,否則會(huì)導(dǎo)致不相容的問題,而這將會(huì)造成第三方軟件開發(fā)者的成本與負(fù)擔(dān)。并且關(guān)于使用權(quán)的SDK說明文件也有泄密的疑慮。
[0004]此外,Android SDK提供包括網(wǎng)絡(luò)、硬件設(shè)定以及移動(dòng)裝置各種數(shù)據(jù)存取(如通信錄、國(guó)際移動(dòng)設(shè)備辨識(shí)碼(Internat1nal Mobile Equipment Identity number, IMEI))等應(yīng)用程序接口(Applicat1n Programming Interface, API)。這也意味著第三方應(yīng)用程序可以存取使用者在移動(dòng)裝置上的私人隱私數(shù)據(jù)并連上網(wǎng)絡(luò)送出。然而,Android對(duì)應(yīng)用程序的管制只有在安裝時(shí)期提供權(quán)限(Permiss1n)列表,供使用者決定是否安裝,以達(dá)成對(duì)應(yīng)用程序的權(quán)限管制。應(yīng)用程序安裝之后,就無(wú)法變更其權(quán)限設(shè)定。
【發(fā)明內(nèi)容】
[0005]本公開提供一種應(yīng)用程序管理方法、應(yīng)用程序管理系統(tǒng)與使用者裝置,其可為應(yīng)用程序加入使用權(quán)以及存取權(quán)限的管理程序代碼,以提供使用者裝置的應(yīng)用程序執(zhí)行使用權(quán)檢查程序以及針對(duì)使用者裝置內(nèi)的應(yīng)用程序進(jìn)行權(quán)限管制。
[0006]本公開提出一種應(yīng)用程序管理方法,包括下列步驟。首先,接收原始應(yīng)用程序。通過再封裝程序,將使用權(quán)管理程序代碼注入至原始應(yīng)用程序,以產(chǎn)生再封裝應(yīng)用程序。接著,將再封裝應(yīng)用程序公開,以供使用者裝置下載并安裝再封裝應(yīng)用程序,其中使用者裝置執(zhí)行客戶端程序。當(dāng)使用者裝置執(zhí)行再封裝應(yīng)用程序時(shí),使用權(quán)管理程序代碼發(fā)出使用權(quán)檢查請(qǐng)求,以啟動(dòng)客戶端程序根據(jù)再封裝應(yīng)用程序的使用權(quán)信息發(fā)出使用權(quán)檢查回應(yīng)。使用權(quán)檢查回應(yīng)指出再封裝應(yīng)用程序是否可繼續(xù)執(zhí)行。當(dāng)使用權(quán)檢查回應(yīng)指出再封裝應(yīng)用程序不可繼續(xù)執(zhí)行時(shí),則使用權(quán)管理程序代碼終止再封裝應(yīng)用程序。
[0007]本公開另提出一種應(yīng)用程序管理方法,用于使用者裝置,包括下列步驟。首先,執(zhí)行客戶端程序。自應(yīng)用程序管理系統(tǒng)下載再封裝應(yīng)用程序,其中再封裝應(yīng)用程序是應(yīng)用程序管理系統(tǒng)通過再封裝程序注入使用權(quán)管理程序代碼至原始應(yīng)用程序而產(chǎn)生。接著,執(zhí)行再封裝應(yīng)用程序。當(dāng)再封裝應(yīng)用程序被執(zhí)行的時(shí)期,使用權(quán)管理程序代碼發(fā)出使用權(quán)檢查請(qǐng)求,以啟動(dòng)該客戶端程序根據(jù)再封裝應(yīng)用程序的使用權(quán)信息發(fā)出使用權(quán)檢查回應(yīng),其中使用權(quán)檢查回應(yīng)指出再封裝應(yīng)用程序是否可繼續(xù)執(zhí)行。當(dāng)使用權(quán)檢查回應(yīng)指出再封裝應(yīng)用程序不可繼續(xù)執(zhí)行時(shí),則使用權(quán)管理程序代碼終止再封裝應(yīng)用程序。
[0008]本公開另提出一種應(yīng)用程序管理系統(tǒng),其包括再封裝模塊以及應(yīng)用程序管理模塊。再封裝模塊用以接收原始應(yīng)用程序,并且通過再封裝程序,注入使用權(quán)管理程序代碼至原始應(yīng)用程序,以產(chǎn)生再封裝應(yīng)用程序。應(yīng)用程序管理模塊用以公開再封裝應(yīng)用程序,以供使用者裝置下載并安裝再封裝應(yīng)用程序,其中使用者裝置執(zhí)行客戶端程序。當(dāng)使用者裝置執(zhí)行再封裝應(yīng)用程序時(shí),使用權(quán)管理程序代碼發(fā)出使用權(quán)檢查請(qǐng)求,以啟動(dòng)客戶端程序根據(jù)再封裝應(yīng)用程序的使用權(quán)信息發(fā)出使用權(quán)檢查回應(yīng)。使用權(quán)檢查回應(yīng)指出再封裝應(yīng)用程序是否可繼續(xù)執(zhí)行。當(dāng)使用權(quán)檢查回應(yīng)指出再封裝應(yīng)用程序不可繼續(xù)執(zhí)行時(shí),使用權(quán)管理程序代碼終止再封裝應(yīng)用程序。
[0009]本公開另提出一種使用者裝置,其包括通信模塊以及處理器。通信模塊用以連接應(yīng)用程序管理系統(tǒng)。處理器用以執(zhí)行客戶端程序,自應(yīng)用程序管理系統(tǒng)下載再封裝應(yīng)用程序,并執(zhí)行再封裝應(yīng)用程序,其中再封裝應(yīng)用程序是應(yīng)用程序管理系統(tǒng)通過再封裝程序注入使用權(quán)管理程序代碼至原始應(yīng)用程序而產(chǎn)生。當(dāng)再封裝應(yīng)用程序被執(zhí)行的時(shí)期,使用權(quán)管理程序代碼發(fā)出使用權(quán)檢查請(qǐng)求,以啟動(dòng)客戶端程序根據(jù)再封裝應(yīng)用程序的使用權(quán)信息發(fā)出使用權(quán)檢查回應(yīng)。使用權(quán)檢查回應(yīng)指出再封裝應(yīng)用程序是否可繼續(xù)執(zhí)行。當(dāng)使用權(quán)檢查回應(yīng)指出再封裝應(yīng)用程序不可繼續(xù)執(zhí)行時(shí),則使用權(quán)管理程序代碼終止再封裝應(yīng)用程序。
[0010]為讓本發(fā)明的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合附圖作詳細(xì)說明如下。
【專利附圖】
【附圖說明】
[0011]圖1為根據(jù)本公開的一范例實(shí)施例所繪示的應(yīng)用程序管理系統(tǒng)的概要方塊圖。
[0012]圖2為根據(jù)本公開的一范例實(shí)施例所繪示的使用者裝置的概要方塊圖。
[0013]圖3A為根據(jù)本公開的一范例實(shí)施例所繪示的應(yīng)用程序管理方法的流程圖。
[0014]圖3B為根據(jù)本公開的一范例實(shí)施例所繪示的使用者裝置。
[0015]圖4A為根據(jù)本公開的一范例實(shí)施例所繪示的應(yīng)用程序管理方法的流程圖。
[0016]圖4B為根據(jù)本公開的一范例實(shí)施例所繪示的使用者裝置。
[0017]【符號(hào)說明】
[0018]100:應(yīng)用程序管理系統(tǒng)
[0019]110:再封裝模塊
[0020]120:應(yīng)用程序管理模塊
[0021]130:使用權(quán)管理模塊
[0022]140:金鑰提供模塊
[0023]150:金鑰管理模塊
[0024]160:空中下載服務(wù)管理模塊
[0025]170:第三方軟件開發(fā)端
[0026]180:使用者裝置
[0027]210:通信模塊
[0028]220:處理器
[0029]230:存儲(chǔ)裝置
[0030]S301?S319:應(yīng)用程序管理方法的流程步驟
[0031]S401?S419:應(yīng)用程序管理方法的流程步驟
【具體實(shí)施方式】
[0032]圖1為根據(jù)本公開的一范例實(shí)施例所繪示的應(yīng)用程序管理系統(tǒng)的概要方塊圖,但此僅是為了方便說明,并不用以限制本公開。
[0033]請(qǐng)參照?qǐng)D1,應(yīng)用程序管理系統(tǒng)100包括再封裝模塊110、應(yīng)用程序管理模塊120、使用權(quán)管理模塊130、金鑰提供模塊140、金鑰管理模塊150以及空中下載服務(wù)管理(Overthe Air, OTA)模塊 160。
[0034]在本范例實(shí)施例中,應(yīng)用程序管理系統(tǒng)100可以為任何以計(jì)算機(jī)為基礎(chǔ)的系統(tǒng)(Computer-based System),用以接收第三方軟件開發(fā)端170所開發(fā)的應(yīng)用程序,在再封裝程序中,為上述應(yīng)用程序增加使用權(quán)管理程序代碼,再提供給客戶端的使用者裝置180下載使用。此外,應(yīng)用程序管理系統(tǒng)100更可提供使用者裝置180進(jìn)行后續(xù)的查詢以及其它相關(guān)服務(wù)。
[0035]再封裝模塊110用以接收第三方軟件開發(fā)端170所開發(fā)的應(yīng)用程序(在此定義為“原始應(yīng)用程序”),通過再封裝程序,注入使用權(quán)管理程序代碼至原始應(yīng)用程序,以產(chǎn)生再封裝應(yīng)用程序。此外,金鑰提供模塊140提供金鑰至再封裝模塊110,而再封裝模塊110可在再封裝程序中注入金鑰至原始應(yīng)用程序。
[0036]應(yīng)用程序管理模塊120用以公開上述再封裝應(yīng)用程序,以供客戶端的使用者裝置180下載并安裝上述再封裝應(yīng)用程序。
[0037]使用權(quán)管理模塊130用以自使用者裝置180接收上述再封裝應(yīng)用程序的名稱,并根據(jù)上述名稱提供使用權(quán)信息至使用者裝置180。
[0038]金鑰管理模塊150用以自金鑰提供模塊140取得上述再封裝應(yīng)用程序的金鑰,其可自使用者裝置180接收再封裝應(yīng)用程序的名稱后,根據(jù)上述名稱提供對(duì)應(yīng)的上述金鑰至使用者裝置180。
[0039]空中下載服務(wù)管理模塊160用以提供權(quán)限管理訊息至使用者裝置180,而使用者裝置180可根據(jù)權(quán)限管理訊息變更權(quán)限設(shè)定。
[0040]在本范例實(shí)施例中,再封裝模塊110、應(yīng)用程序管理模塊120、使用權(quán)管理模塊130、金鑰提供模塊140、金鑰管理模塊150以及空中下載服務(wù)管理模塊160可以是設(shè)置在單一服務(wù)器主機(jī)或分屬多個(gè)不同服務(wù)器主機(jī)的硬件或軟件。
[0041]圖2為根據(jù)本公開的一范例實(shí)施例所繪示的使用者裝置180的概要方塊圖。請(qǐng)參照?qǐng)D2,使用者裝置180包括通信模塊210、處理器220以及存儲(chǔ)裝置230,其中通信模塊210以及存儲(chǔ)裝置230分別耦接至處理器220。
[0042]在本范例實(shí)施例中,使用者裝置180為具有上網(wǎng)功能的智能手機(jī)、平板計(jì)算機(jī)、個(gè)人數(shù)字助理、筆記型計(jì)算機(jī)、電子書、或是數(shù)字相機(jī)等移動(dòng)裝置。此外,在本范例實(shí)施例中,使用者裝置180采用Android操作系統(tǒng)。然而在其它范例實(shí)施例中,使用者裝置180也可米用 Windows、1S、Android, 1S, Blackberry, Symbian, Linux 或 Unix 等操作系統(tǒng)。
[0043]在以下的說明當(dāng)中,處理器220通過執(zhí)行使用權(quán)管理程序代碼、權(quán)限管理程序代碼以及客戶端程序來(lái)控制使用者裝置180的關(guān)于本公開的運(yùn)作。
[0044]使用者裝置180傳送的訊息與數(shù)據(jù)是由處理器220通過通信模塊210所發(fā)送,使用者裝置180所接收的訊息與數(shù)據(jù)亦是由處理器220通過通信模塊210所接收。在此,通信模塊210可支持全球移動(dòng)通信系統(tǒng)(Global System for Mobile communicat1ns,GSM)、第三代移動(dòng)通信網(wǎng)絡(luò)(The Third Generat1n Mobile Communicat1n, 3G MobileCommunicat1n)、第四代移動(dòng)通信網(wǎng)絡(luò)(4G Mobile Communicat1n)、長(zhǎng)期演進(jìn)技術(shù)網(wǎng)絡(luò)(Long Term Evolut1n Network, LTE Network)、個(gè)人手持式電話系統(tǒng)(PersonalHandy-phone System, PHS)、碼分多重接入(Code Divis1n Multiple Access, CDMA)、無(wú)線保真(Wireless Fidelity, Wi_Fi)、全球互通微波接入(Worldwide Interoperabilityfor Microwave Access, WiMAX)、藍(lán)牙(Bluetooth)等無(wú)線信號(hào)傳輸(Wireless SignalTransmiss1n)技術(shù)。通信模塊210也可以支持有線信號(hào)傳輸技術(shù),例如通用串行總線(Universal Serial Bus,USB)、火線串行接口(Firewire)或雷電串行接口(Thunderbolt)。在本范例實(shí)施例中,使用者裝置180的通信模塊210用以連接應(yīng)用程序管理系統(tǒng)100。
[0045]存儲(chǔ)裝置230例如是固定式或可移動(dòng)式的隨機(jī)存取存儲(chǔ)器(Random AccessMemory, RAM)、快閃存儲(chǔ)器(Flash Memory)、硬盤、存儲(chǔ)卡、其它類似的裝置或這些裝置的組合,用以存儲(chǔ)使用者裝置180硬件運(yùn)作所執(zhí)行的程序代碼以及數(shù)據(jù)。
[0046]圖3A為根據(jù)本公開的一范例實(shí)施例所繪示的應(yīng)用程序管理方法的流程圖。圖3B為根據(jù)本公開的一范例實(shí)施例所繪示的使用者裝置180。值得注意的是,在本范例實(shí)施例中是以管理應(yīng)用程序的使用權(quán)的觀點(diǎn)來(lái)進(jìn)行說明。
[0047]請(qǐng)同時(shí)參照?qǐng)D1、圖2以及圖3A,首先應(yīng)用程序管理系統(tǒng)100的再封裝模塊110接收第三方軟件開發(fā)端170所開發(fā)的原始應(yīng)用程序(步驟S301)。在本范例實(shí)施例中,當(dāng)再封裝模塊110接收原始應(yīng)用程序后,再封裝模塊110通過再封裝程序,注入使用權(quán)管理程序代碼以及金鑰提供模塊140所提供的金鑰至原始應(yīng)用程序,以產(chǎn)生再封裝應(yīng)用程序(步驟S303)。
[0048]詳細(xì)而言,以Android系統(tǒng)為例,再封裝模塊110先自原始應(yīng)用程序?qū)lasses,dex文件取出,再利用反匯編器(Disassembler)將classes, dex文件反匯編成至少一個(gè)附屬文件名為smali的文件,在此定義為“反匯編文件”。接著,金鑰提供模塊140先提供金鑰至再封裝模塊110,而再封裝模塊110再注入使用權(quán)管理程序代碼以及金鑰至上述反匯編文件,以產(chǎn)生至少一個(gè)第一中介文件。其中,再封裝模塊110可對(duì)反匯編文件做靜態(tài)分析(Static Analysis),以將使用權(quán)管理程序代碼注入至適當(dāng)?shù)奈恢谩Ee例而言,在本實(shí)施例中可以分析使用者裝置180在進(jìn)入此應(yīng)用程序時(shí)所載入的程序代碼,而將使用權(quán)管理程序代碼注入于此。此外,目前Android的應(yīng)用程序是由Java程序語(yǔ)言來(lái)進(jìn)行編寫。然而,由于Java程序容易被反匯編,為避免遭受到反向工程(Reverse Engineering)的攻擊,再封裝模塊110動(dòng)態(tài)混淆(Obfuscate)第一中介文件,以產(chǎn)生至少一第二中介文件。之后,再利用匯編器(Assembler)匯編上述第二中介文件,并且執(zhí)行Android系統(tǒng)對(duì)所有應(yīng)用程序所要求的數(shù)字簽章程序,以產(chǎn)生再封裝應(yīng)用程序。在此的匯編器以及反匯編器可采用專門匯編以及反匯編dex文件所使用的smali/baksmali工具。
[0049]接著,應(yīng)用程序管理模塊120會(huì)公開再封裝應(yīng)用程序,以供使用者裝置180下載并安裝再封裝應(yīng)用程序(步驟S305)。例如,應(yīng)用程序管理模塊120可提供一個(gè)網(wǎng)頁(yè)或是應(yīng)用程序販?zhǔn)燮脚_(tái)以公開上述的再封裝應(yīng)用程序,使用者裝置180可進(jìn)行付費(fèi)或免費(fèi)下載以取得上述再封裝應(yīng)用程序。
[0050]當(dāng)使用者裝置180下載并安裝再封裝應(yīng)用程序后,如圖3B所示,使用者裝置180包括再封裝應(yīng)用程序310,而再封裝應(yīng)用程序310包括使用權(quán)管理程序代碼315。在此,圖3B的使用者裝置180亦包括圖2的使用者裝置180的所有元件,相關(guān)敘述請(qǐng)參照?qǐng)D2的相關(guān)說明,在此不再贅述。
[0051]值得注意的是,使用者裝置180還包括客戶端程序320,而當(dāng)使用者裝置180的處理器220執(zhí)行客戶端程序320時(shí),其可通過通信模塊210通過與應(yīng)用程序管理系統(tǒng)100或是存儲(chǔ)裝置230的數(shù)據(jù)庫(kù)進(jìn)行溝通,以進(jìn)行使用權(quán)檢查程序。也就是說,在使用者裝置180下載并安裝再封裝應(yīng)用程序310后,當(dāng)使用者裝置180的處理器220執(zhí)行再封裝應(yīng)用程序310時(shí)(步驟S307),再封裝應(yīng)用程序310內(nèi)的使用權(quán)管理程序代碼315會(huì)發(fā)出使用權(quán)檢查請(qǐng)求,以啟動(dòng)使用者裝置180內(nèi)的客戶端程序320根據(jù)再封裝應(yīng)用程序310的使用權(quán)信息發(fā)出使用權(quán)檢查回應(yīng)(步驟S309)。接著,使用權(quán)檢查回應(yīng)以及使用權(quán)檢查回應(yīng)所需的時(shí)間將指出再封裝應(yīng)用程序310是否可繼續(xù)執(zhí)行。
[0052]在本范例實(shí)施例中,使用權(quán)管理程序代碼315可提供上述再封裝應(yīng)用程序310的名稱至客戶端程序320。接著,客戶端程序320可通過通信模塊210,將上述名稱提供給應(yīng)用程序管理系統(tǒng)100,而應(yīng)用程序管理系統(tǒng)100的使用權(quán)管理模塊130可根據(jù)接收到的再封裝應(yīng)用程序310的名稱提供對(duì)應(yīng)的使用權(quán)信息給客戶端程序320??蛻舳顺绦?20根據(jù)使用權(quán)信息的內(nèi)容進(jìn)行使用權(quán)檢查。舉例而言,使用權(quán)信息可包括再封裝應(yīng)用程序170的使用期限、使用次數(shù)等授權(quán)協(xié)議(License Agreements)??蛻舳顺绦?20根據(jù)使用權(quán)信息進(jìn)行使用權(quán)檢查,然后在使用權(quán)檢查回應(yīng)中指出再封裝應(yīng)用程序310是否可繼續(xù)執(zhí)行。接著,客戶端程序320將使用權(quán)檢查回應(yīng)傳送至使用權(quán)管理程序代碼315,以告知使用權(quán)管理程序代碼315繼續(xù)執(zhí)行或終止再封裝應(yīng)用程序310。然而,為了安全防護(hù)設(shè)計(jì)以及避免不同應(yīng)用程序間(Inter-applicat1n)的攻擊,本范例實(shí)施例采用程序間通信(Inter-processCommunicat1n, IPC)的安全通信協(xié)議,以確保客戶端程序以及再封裝應(yīng)用程序之間所傳送的數(shù)據(jù)完整性。
[0053]詳細(xì)而言,以Android操作系統(tǒng)為例,其提供一個(gè)再封裝應(yīng)用程序310與客戶端程序320之間的IPC通道。此外,使用權(quán)管理程序代碼315還可包括一個(gè)計(jì)時(shí)器。再封裝應(yīng)用程序310的使用權(quán)管理程序代碼315發(fā)出使用權(quán)檢查請(qǐng)求時(shí),會(huì)先使用再封裝應(yīng)用程序310的金鑰加密使用權(quán)檢查請(qǐng)求,再將再封裝應(yīng)用程序310的名稱以及加密后的使用權(quán)檢查請(qǐng)求發(fā)送給客戶端程序320。此時(shí),計(jì)時(shí)器也會(huì)開始計(jì)時(shí)。
[0054]客戶端程序320在接收到再封裝應(yīng)用程序310的名稱以及加密后的使用權(quán)檢查請(qǐng)求后,則通過通信模塊210,將上述名稱提供給應(yīng)用程序管理系統(tǒng)100。應(yīng)用程序管理系統(tǒng)100便可根據(jù)上述名稱,利用金鑰管理模塊150向金鑰提供模塊140查詢上述再封裝應(yīng)用程序310所對(duì)應(yīng)的金鑰,并且將金鑰回傳給使用者裝置180。
[0055]在另一范例實(shí)施例中,倘若使用者裝置180在之前有執(zhí)行使用權(quán)檢查程序,則上述使用權(quán)信息以及金鑰可存儲(chǔ)至存儲(chǔ)裝置230的數(shù)據(jù)庫(kù)中,或者僅存儲(chǔ)使用權(quán)信息與金鑰其中之一至存儲(chǔ)裝置230的數(shù)據(jù)庫(kù)中??蛻舳顺绦蚩芍苯永迷俜庋b應(yīng)用程序310的名稱于數(shù)據(jù)庫(kù)查詢?cè)俜庋b應(yīng)用程序所對(duì)應(yīng)的金鑰以及使用權(quán)信息,而不必再向應(yīng)用程序管理系統(tǒng)100查詢。
[0056]當(dāng)使用者裝置180自通信模塊230或是由本身的存儲(chǔ)裝置230取得上述使用權(quán)信息以及金鑰后,客戶端程序320先使用上述金鑰解密使用權(quán)檢查請(qǐng)求,根據(jù)使用權(quán)信息產(chǎn)生使用權(quán)檢查回應(yīng),并且再使用上述金鑰加密使用權(quán)檢查回應(yīng),再傳送至再封裝應(yīng)用程序310的使用權(quán)管理程序代碼315。當(dāng)使用權(quán)管理程序代碼315將使用權(quán)檢查回應(yīng)解碼并檢視其內(nèi)容后,計(jì)時(shí)器停止計(jì)時(shí)。
[0057]在本范例實(shí)施例中,再封裝應(yīng)用程序是否可繼續(xù)執(zhí)行是根據(jù)客戶端程序320的使用權(quán)檢查回應(yīng)以及計(jì)時(shí)器的計(jì)時(shí)。首先,根據(jù)計(jì)時(shí)器的計(jì)時(shí),使用權(quán)管理程序代碼315判斷在向客戶端程序320發(fā)出使用權(quán)檢查請(qǐng)求的預(yù)設(shè)時(shí)間(例如5秒)內(nèi)是否收到使用權(quán)檢查回應(yīng)(步驟S311)。倘若在預(yù)設(shè)時(shí)間內(nèi)未收到使用權(quán)檢查回應(yīng),則使用權(quán)管理程序代碼315終止再封裝應(yīng)用程序(步驟S313)。反之,倘若在預(yù)定時(shí)間內(nèi)收到使用權(quán)檢查回應(yīng),則使用權(quán)管理程序代碼315根據(jù)使用權(quán)檢查回應(yīng)決定是否繼續(xù)執(zhí)行再封裝應(yīng)用程序310 (步驟S315)。當(dāng)使用權(quán)檢查回應(yīng)指出再封裝應(yīng)用程序310不可繼續(xù)執(zhí)行時(shí),則使用權(quán)管理程序代碼315終止再封裝應(yīng)用程序(步驟S317)。反之,使用權(quán)管理程序代碼315則可繼續(xù)執(zhí)行再封裝應(yīng)用程序310 (步驟S319)。
[0058]在本范例實(shí)施例中,使用者裝置180可自應(yīng)用程序管理系統(tǒng)100取得使用權(quán)信息,而客戶端程序320再依使用權(quán)信息來(lái)決定是否停止再封裝應(yīng)用程序310的使用。此外,當(dāng)使用者裝置180是基于沙盒(Sand Box)來(lái)讓各應(yīng)用程序的行程獨(dú)立,以保障安全的系統(tǒng),如Android, 1S, Blackberry, Symbian等,貝U本公開更可提供應(yīng)用程序的權(quán)限(Permiss1n)管理,以對(duì)使用者裝置180內(nèi)的一個(gè)或多個(gè)應(yīng)用程序設(shè)定不同的存取權(quán)限。
[0059]圖4A為根據(jù)本公開的一范例實(shí)施例所繪示的應(yīng)用程序管理方法的流程圖。圖4B為根據(jù)本公開的一范例實(shí)施例所繪示的使用者裝置180。不同于前一范例實(shí)施例,本范例實(shí)施例是以管理應(yīng)用程序的權(quán)限的觀點(diǎn)來(lái)進(jìn)行說明。
[0060]請(qǐng)先參照?qǐng)D4A搭配圖1以及圖2,首先應(yīng)用程序管理系統(tǒng)100的再封裝模塊110接收自第三方軟件開發(fā)端170所開發(fā)的原始應(yīng)用程序(步驟S401)。在本范例實(shí)施例中,當(dāng)再封裝模塊110接收原始應(yīng)用程序后,再封裝模塊110通過再封裝程序,注入權(quán)限管理程序代碼以及金鑰提供模塊140所提供的金鑰至原始應(yīng)用程序,以產(chǎn)生再封裝應(yīng)用程序(步驟S403)。
[0061]以本范例實(shí)施例而言,再封裝模塊110先自原始應(yīng)用程序?qū)lasses, dex文件取出,再利用反匯編器將classes, dex文件反匯編成至少一個(gè)附屬文件名為smali的反匯編文件。接著,金鑰提供模塊140先提供金鑰至再封裝模塊110,而再封裝模塊110再注入權(quán)限管理程序代碼以及金鑰至上述反匯編文件,以產(chǎn)生至少一第一中介文件。其中,再封裝模塊110可同樣地對(duì)反匯編文件做靜態(tài)分析,以將權(quán)限管理程序代碼注入至適當(dāng)?shù)奈恢?。舉例而言,在本實(shí)施例中可以分析與使用者隱私相關(guān)的應(yīng)用程序接口(Applicat1n ProgrammingInterface, API)的程序代碼,而將權(quán)限管理程序代碼注入于此。再封裝模塊110動(dòng)態(tài)混淆第一中介文件,以產(chǎn)生至少一第二中介文件。之后,再利用例如是smali的匯編器匯編上述第二中介文件,并且執(zhí)行Android系統(tǒng)對(duì)所有應(yīng)用程序所要求的數(shù)字簽章程序,以產(chǎn)生再封裝應(yīng)用程序。如同第一范例實(shí)施例,匯編器以及反匯編器可采用專門匯編以及反匯編dex文件所使用的smali/baksmali工具。
[0062]接著,應(yīng)用程序管理模塊120會(huì)公開再封裝應(yīng)用程序,以供使用者裝置180下載并安裝再封裝應(yīng)用程序(步驟S405)。例如,應(yīng)用程序管理模塊120可提供一個(gè)網(wǎng)頁(yè)或是應(yīng)用程序販?zhǔn)燮脚_(tái)以公開上述的再封裝應(yīng)用程序,使用者裝置180可進(jìn)行付費(fèi)或免費(fèi)下載以取得上述再封裝應(yīng)用程序。
[0063]當(dāng)使用者裝置180下載并安裝再封裝應(yīng)用程序后,如圖4B所示,使用者裝置180還包括再封裝應(yīng)用程序410,而再封裝應(yīng)用程序410還包括權(quán)限管理程序代碼415。在此,圖4B的使用者裝置180亦包括圖2的使用者裝置180的所有元件,相關(guān)敘述請(qǐng)參照?qǐng)D2的相關(guān)說明。
[0064]值得注意的是,在本范例實(shí)施例中,使用者裝置180還包括客戶端程序420,而當(dāng)使用者裝置180的處理器220執(zhí)行客戶端程序420時(shí),其可通過通信模塊210通過與應(yīng)用程序管理系統(tǒng)100或是存儲(chǔ)裝置230的數(shù)據(jù)庫(kù)進(jìn)行溝通,以進(jìn)行權(quán)限檢查程序。
[0065]此外,存儲(chǔ)裝置230存儲(chǔ)某些系統(tǒng)函數(shù)的權(quán)限設(shè)定,上述系統(tǒng)函數(shù)通常是涉及使用者的信息隱私或信息安全的系統(tǒng)函數(shù),例如用以取得使用者裝置180的國(guó)際移動(dòng)設(shè)備辨識(shí)碼(Internat1nal Mobile Equipment Identity number, IMEI)的函數(shù)、用以存取使用者裝置180的使用者身份模塊(Subscriber Identity Module,SM)的函數(shù)、用以取得使用者裝置 180 的國(guó)際移動(dòng)用戶辨識(shí)碼(Internat1nal Mobile Subscriber Identity Number,IMSI)的函數(shù)、搜尋使用者裝置180的位置信息的函數(shù)、取得電話號(hào)碼的函數(shù)、送出簡(jiǎn)訊的函數(shù)、由網(wǎng)絡(luò)下載文件的函數(shù)等。在本范例實(shí)施例中,客戶端程序可提供一個(gè)使用者接口,使用者裝置180的使用者可用上述使用者接口將上述系統(tǒng)函數(shù)的權(quán)限設(shè)定變更為執(zhí)行、不執(zhí)行或是以假信息回應(yīng)。通過上述的使用者接口,上述的權(quán)限設(shè)定可以隨時(shí)變更,而權(quán)限管理程序代碼415可根據(jù)上述系統(tǒng)函數(shù)的權(quán)限設(shè)定而執(zhí)行上述系統(tǒng)函數(shù)、不執(zhí)行上述系統(tǒng)函數(shù)或是以假信息回應(yīng)上述系統(tǒng)函數(shù)。
[0066]在使用者裝置180下載并安裝再封裝應(yīng)用程序后,在使用者裝置180的處理器220正在執(zhí)行再封裝應(yīng)用程序時(shí)(步驟S407),當(dāng)再封裝應(yīng)用程序呼叫上述系統(tǒng)函數(shù)(步驟S409),再封裝應(yīng)用程序內(nèi)的權(quán)限管理程序代碼會(huì)先攔截再封裝應(yīng)用程序?qū)ι鲜鱿到y(tǒng)函數(shù)的呼叫(步驟S411),并且發(fā)出權(quán)限檢查請(qǐng)求,以啟動(dòng)客戶端程序根據(jù)上述系統(tǒng)函數(shù)的權(quán)限設(shè)定發(fā)出權(quán)限檢查回應(yīng)(步驟S413)。此外,權(quán)限檢查回應(yīng)以及權(quán)限檢查回應(yīng)所需的時(shí)間將指出上述系統(tǒng)函數(shù)是否可繼續(xù)執(zhí)行。
[0067]詳細(xì)而言,如前一范例實(shí)施例,Android操作系統(tǒng)提供一個(gè)再封裝應(yīng)用程序與客戶端程序之間的IPC通道。此外,權(quán)限管理程序代碼415還包括一個(gè)計(jì)時(shí)器。再封裝應(yīng)用程序410的權(quán)限管理程序代碼415發(fā)出權(quán)限檢查請(qǐng)求時(shí),會(huì)先使用再封裝應(yīng)用程序410的金鑰加密權(quán)限檢查請(qǐng)求,再將再封裝應(yīng)用程序410的名稱以及加密后的權(quán)限檢查請(qǐng)求發(fā)送給客戶端程序420。此時(shí),計(jì)時(shí)器也會(huì)開始計(jì)時(shí)。
[0068]客戶端程序420在接收到再封裝應(yīng)用程序410的名稱以及加密后的權(quán)限檢查請(qǐng)求后,則通過通信模塊210,將上述名稱提供給應(yīng)用程序管理系統(tǒng)100。應(yīng)用程序管理系統(tǒng)100便可根據(jù)上述名稱,利用金鑰管理模塊150向金鑰提供模塊140查詢上述再封裝應(yīng)用程序所對(duì)應(yīng)的金鑰,并且將金鑰回傳給使用者裝置180。
[0069]在另一實(shí)施例中,倘若使用者裝置180在之前有執(zhí)行權(quán)限檢查程序,則上述金鑰可存儲(chǔ)至存儲(chǔ)裝置230的數(shù)據(jù)庫(kù)中??蛻舳顺绦蚩芍苯永蒙鲜雒Q于數(shù)據(jù)庫(kù)查詢?cè)俜庋b應(yīng)用程序所對(duì)應(yīng)的金鑰。
[0070]當(dāng)使用者裝置180自通信模塊230或是由本身的存儲(chǔ)裝置230接收到上述金鑰后,客戶端程序420先使用上述金鑰解密權(quán)限檢查請(qǐng)求,并且再使用上述金鑰加密權(quán)限檢查回應(yīng),再傳送至再封裝應(yīng)用程序410的權(quán)限管理程序代碼415。當(dāng)權(quán)限管理程序代碼415將權(quán)限檢查回應(yīng)解碼并檢視其內(nèi)容后,計(jì)時(shí)器停止計(jì)時(shí)。在此,權(quán)限檢查回應(yīng)是根據(jù)前述使用者裝置180的使用者通過使用者接口對(duì)系統(tǒng)函數(shù)所做的權(quán)限設(shè)定。
[0071]在本范例實(shí)施例中,首先,根據(jù)計(jì)時(shí)器的計(jì)時(shí),權(quán)限管理程序代碼415判斷在向客戶端程序420發(fā)出權(quán)限檢查請(qǐng)求的預(yù)設(shè)時(shí)間(例如5秒)內(nèi)是否收到權(quán)限檢查回應(yīng)(步驟S415)。倘若尚未收到權(quán)限檢查回應(yīng),則權(quán)限管理程序代碼415不執(zhí)行上述系統(tǒng)函數(shù)(步驟S417)。反之,倘若在預(yù)定時(shí)間內(nèi)收到權(quán)限檢查回應(yīng),則權(quán)限管理程序代碼根據(jù)權(quán)限檢查回應(yīng)繼續(xù)執(zhí)行上述系統(tǒng)函數(shù)、不執(zhí)行系統(tǒng)函數(shù)或是以假信息回應(yīng)系統(tǒng)函數(shù)(步驟S419)。
[0072]舉例而言,假設(shè)在使用者裝置180內(nèi)存有導(dǎo)航的再封裝應(yīng)用程序以及Facebook的再封裝應(yīng)用程序。使用者裝置180可針對(duì)此兩種再封裝應(yīng)用程序?qū)ο到y(tǒng)函數(shù)做不同的權(quán)限設(shè)定。以讀取位置信息的系統(tǒng)函數(shù)為例,導(dǎo)航的再封裝應(yīng)用程序的權(quán)限被設(shè)定為可讀取使用者裝置180的全球定位系統(tǒng)(Global Posit1ning System,GPS)數(shù)據(jù),而Facebook的再封裝應(yīng)用程序被設(shè)定為不可讀取使用者裝置180的GPS數(shù)據(jù)。因此,一旦Facebook的再封裝應(yīng)用程序在執(zhí)行讀取位置信息的系統(tǒng)函數(shù)時(shí),權(quán)限管理程序代碼可根據(jù)權(quán)限檢查回應(yīng)拒絕Facebook讀取GPS數(shù)據(jù)。在另一實(shí)施例中,也可以假信息回應(yīng)讀取位置信息的系統(tǒng)函數(shù),使Facebook讀取假的GPS數(shù)據(jù)。藉此,使用者裝置180的使用者既可避免所在位置的GPS數(shù)據(jù)在Facebook上被他人讀取追蹤,而又可以利用GPS數(shù)據(jù)享有導(dǎo)航的服務(wù)。
[0073]在另一范例實(shí)施例中,客戶端程序420更具備了即時(shí)分析的功能。當(dāng)使用者裝置180在執(zhí)行再封裝應(yīng)用程序410時(shí),當(dāng)有動(dòng)態(tài)載入的新增程序代碼時(shí),再封裝應(yīng)用程序410的權(quán)限管理程序代碼415會(huì)將新增程序代碼傳送至客戶端程序420分析。在此,新增程序代碼可以是來(lái)自應(yīng)用程序管理系統(tǒng)100或其它來(lái)源的再封裝應(yīng)用程序的更新文件。
[0074]當(dāng)再封裝應(yīng)用程序410在執(zhí)行時(shí)期載入新增程序代碼時(shí),權(quán)限管理程序代碼415可攔截此新增程序代碼,將新增程序代碼傳送至客戶端程序420。客戶端程序420分析新增程序代碼是否呼叫需要權(quán)限管理的系統(tǒng)函數(shù),并且根據(jù)分析的結(jié)果修改新增程序代碼。客戶端程序420修改新增程序代碼之后,將回傳修改后的新增程序代碼至權(quán)限管理程序代碼415。此時(shí),權(quán)限管理程序代碼415則可允許修改后的新增程序代碼并入再封裝應(yīng)用程序410。經(jīng)過上述修改,權(quán)限管理程序代碼415可攔截新增程序代碼對(duì)上述系統(tǒng)函數(shù)的呼叫,并且發(fā)出權(quán)限檢查請(qǐng)求,以啟動(dòng)客戶端程序420根據(jù)權(quán)限設(shè)定發(fā)出權(quán)限檢查回應(yīng)。
[0075]在本范例實(shí)施例中,在特定的情況之下,應(yīng)用程序管理系統(tǒng)100的空中下載服務(wù)管理模塊160可傳送權(quán)限管理訊息至使用者裝置180的客戶端程序420。舉例而言,當(dāng)使用者遺失使用者裝置180時(shí),使用者可通知應(yīng)用程序管理系統(tǒng)100,而應(yīng)用程序管理系統(tǒng)100的空中下載服務(wù)管理模塊160可傳送權(quán)限管理訊息至使用者裝置180的客戶端程序420,通知客戶端程序420變更系統(tǒng)函數(shù)的權(quán)限設(shè)定。例如,權(quán)限管理訊息可通知客戶端程序420將導(dǎo)航的再封裝應(yīng)用程序設(shè)定為可讀取GPS數(shù)據(jù),方便追蹤使用者裝置180的所在位置。又例如,權(quán)限管理訊息可通知客戶端程序420將所有再封裝應(yīng)用程序410設(shè)定為不可取得電話號(hào)碼或收發(fā)簡(jiǎn)訊,以防止電話號(hào)碼或隱私數(shù)據(jù)被竊取。
[0076]除此之外,本范例實(shí)施例的應(yīng)用程序管理方法,無(wú)須修改使用者裝置180底層的操作系統(tǒng),因此應(yīng)用程序管理系統(tǒng)100并不限于電信業(yè)者。在另一范例實(shí)施例中,應(yīng)用程序管理系統(tǒng)100可以是一般軟件系統(tǒng)整合廠商,可以利用本公開的應(yīng)用程序管理方法發(fā)展獨(dú)立的平臺(tái),其運(yùn)作方式類似于軟件販?zhǔn)燮脚_(tái),而此獨(dú)立的平臺(tái)可應(yīng)用于企業(yè)或組織內(nèi)部,提供符合企業(yè)或組織存取政策的應(yīng)用程序給內(nèi)部人員或相關(guān)人員使用。在此范例實(shí)施例中,使用者裝置180可上傳本身已有的原始應(yīng)用程序至應(yīng)用程序管理系統(tǒng)100。應(yīng)用程序管理系統(tǒng)100可為此原始應(yīng)用程序進(jìn)行再封裝程序,產(chǎn)生可以動(dòng)態(tài)設(shè)定權(quán)限的再封裝應(yīng)用程序,以供使用者裝置180進(jìn)行下載。
[0077]值得一提的是,圖3A的使用權(quán)管理實(shí)施例以及圖4A的權(quán)限管理實(shí)施例的再封裝程序可以整合,也就是將使用權(quán)管理程序代碼連同權(quán)限管理程序代碼以及金鑰,一并注入至原始應(yīng)用程序中。藉此,使用者裝置180下載的再封裝應(yīng)用程序可以執(zhí)行使用權(quán)檢查程序以及權(quán)限檢查程序。使用權(quán)檢查程序以及權(quán)限檢查程序可使用相同或不同的金鑰,如果使用不同金鑰,則金鑰提供模塊140必須提供兩個(gè)不同的金鑰,再封裝程序必須注入這兩個(gè)不同的金鑰至原始應(yīng)用程序中以產(chǎn)生再封裝應(yīng)用程序,其中一個(gè)金鑰用于使用權(quán)檢查程序的加密和解密,另一個(gè)金鑰用于權(quán)限檢查程序的加密和解密。
[0078]綜上所述,本公開所提出的應(yīng)用程序管理方法以及應(yīng)用程序管理系統(tǒng),在公開第三方軟件開發(fā)端所開發(fā)的原始應(yīng)用程序之前,可進(jìn)行再封裝程序,為原始應(yīng)用程序注入使用權(quán)管理程序代碼以及權(quán)限管理程序代碼,以產(chǎn)生再封裝應(yīng)用程序。當(dāng)使用者裝置下載并安裝再封裝應(yīng)用程序后,可配合使用者裝置的客戶端程序執(zhí)行使用權(quán)檢查程序。此外,客戶端程序可提供使用者接口,讓使用者裝置的使用者通過使用者接口設(shè)定各個(gè)再封裝應(yīng)用程序的相關(guān)系統(tǒng)函數(shù)的存取權(quán)限,可對(duì)再封裝應(yīng)用程序進(jìn)行不同的權(quán)限管制,以適當(dāng)?shù)乇Wo(hù)使用者隱私(User Privacy)。
[0079]雖然本公開已以實(shí)施例公開如上,然其并非用以限定本公開,本領(lǐng)域技術(shù)人員在不脫離本公開的精神和范圍內(nèi),當(dāng)可作些許的更動(dòng)與潤(rùn)飾,故本公開的保護(hù)范圍當(dāng)視所附權(quán)利要求書界定范圍為準(zhǔn)。
【權(quán)利要求】
1.一種應(yīng)用程序管理方法,包括: 接收一原始應(yīng)用程序; 通過一再封裝程序,注入一使用權(quán)管理程序代碼至該原始應(yīng)用程序,以產(chǎn)生一再封裝應(yīng)用程序;以及 公開該再封裝應(yīng)用程序,以供一使用者裝置下載并安裝該再封裝應(yīng)用程序,其中該使用者裝置執(zhí)行一客戶端程序,當(dāng)該使用者裝置執(zhí)行該再封裝應(yīng)用程序時(shí),該使用權(quán)管理程序代碼發(fā)出一使用權(quán)檢查請(qǐng)求,以啟動(dòng)該客戶端程序根據(jù)該再封裝應(yīng)用程序的使用權(quán)信息發(fā)出一使用權(quán)檢查回應(yīng),該使用權(quán)檢查回應(yīng)指出該再封裝應(yīng)用程序是否可繼續(xù)執(zhí)行,當(dāng)該使用權(quán)檢查回應(yīng)指出該再封裝應(yīng)用程序不可繼續(xù)執(zhí)行,則該使用權(quán)管理程序代碼終止該再封裝應(yīng)用程序。
2.如權(quán)利要求1所述的應(yīng)用程序管理方法,其中該使用權(quán)管理程序代碼提供該再封裝應(yīng)用程序的名稱至該客戶端程序,而且該應(yīng)用程序管理方法還包括: 自該客戶端程序接收該名稱;以及 根據(jù)該名稱提供該使用權(quán)信息至該客戶端程序。
3.如權(quán)利要求1所述的應(yīng)用程序管理方法,其中該使用者裝置存儲(chǔ)一系統(tǒng)函數(shù)的權(quán)限設(shè)定,該應(yīng)用程序管理方法還包括: 通過該再封裝程序,注入一權(quán)限管理程序代碼至該原始應(yīng)用程序,以產(chǎn)生該再封裝應(yīng)用程序,其中該權(quán)限管理程序代碼攔截該再封裝應(yīng)用程序?qū)υ撓到y(tǒng)函數(shù)的呼叫,并發(fā)出一權(quán)限檢查請(qǐng)求,以啟動(dòng)該客戶端程序根據(jù)該權(quán)限設(shè)定發(fā)出一權(quán)限檢查回應(yīng),該權(quán)限管理程序代碼根據(jù)該權(quán)限檢查回應(yīng)而執(zhí)行該系統(tǒng)函數(shù)、不執(zhí)行該系統(tǒng)函數(shù)、或以假信息回應(yīng)該系統(tǒng)函數(shù)。
4.如權(quán)利要求3所述的應(yīng)用程序管理方法,其中當(dāng)該再封裝應(yīng)用程序在執(zhí)行時(shí)期載入一新增程序代碼,則該權(quán)限管理程序代碼將該新增程序代碼傳送至該客戶端程序,該客戶端程序修改該新增程序代碼,以使該權(quán)限管理程序代碼攔截該新增程序代碼對(duì)該系統(tǒng)函數(shù)的呼叫,并發(fā)出該權(quán)限檢查請(qǐng)求,以啟動(dòng)該客戶端程序根據(jù)該權(quán)限設(shè)定發(fā)出該權(quán)限檢查回應(yīng),然后該權(quán)限管理程序代碼允許該新增程序代碼并入該再封裝應(yīng)用程序。
5.如權(quán)利要求3所述的應(yīng)用程序管理方法,還包括: 提供一權(quán)限管理訊息至該客戶端程序,其中該客戶端程序根據(jù)該權(quán)限管理訊息變更該權(quán)限設(shè)定。
6.如權(quán)利要求3所述的應(yīng)用程序管理方法,其中當(dāng)該使用權(quán)管理程序代碼在發(fā)出該使用權(quán)檢查請(qǐng)求的一預(yù)設(shè)時(shí)間內(nèi)未收到該使用權(quán)檢查回應(yīng),則該使用權(quán)管理程序代碼終止該再封裝應(yīng)用程序,當(dāng)該權(quán)限管理程序代碼在發(fā)出該權(quán)限檢查請(qǐng)求的該預(yù)設(shè)時(shí)間內(nèi)未收到該權(quán)限檢查回應(yīng),則該權(quán)限管理程序代碼不執(zhí)行該系統(tǒng)函數(shù)。
7.如權(quán)利要求3所述的應(yīng)用程序管理方法,其中該使用權(quán)管理程序代碼或該權(quán)限管理程序代碼提供該再封裝應(yīng)用程序的名稱至該客戶端程序,而且該應(yīng)用程序管理方法還包括: 通過該再封裝程序,注入至少一金鑰至該原始應(yīng)用程序,以產(chǎn)生該再封裝應(yīng)用程序; 自該客戶端程序接收該名稱;以及 根據(jù)該名稱提供上述至少一金鑰其中之一至該客戶端程序,其中 當(dāng)該名稱是由該使用權(quán)管理程序代碼提供,則該使用權(quán)管理程序代碼使用該金鑰以加密該使用權(quán)檢查請(qǐng)求并解密該使用權(quán)檢查回應(yīng),該客戶端程序使用該金鑰以解密該使用權(quán)檢查請(qǐng)求并加密該使用權(quán)檢查回應(yīng), 當(dāng)該名稱是由該權(quán)限管理程序代碼提供,則該權(quán)限管理程序代碼使用該金鑰以加密該權(quán)限檢查請(qǐng)求并解密該權(quán)限檢查回應(yīng),該客戶端程序使用該金鑰以解密該權(quán)限檢查請(qǐng)求并加密該權(quán)限檢查回應(yīng)。
8.如權(quán)利要求7所述的應(yīng)用程序管理方法,其中通過該再封裝程序以產(chǎn)生該再封裝應(yīng)用程序的步驟包括: 反匯編該原始應(yīng)用程序,以產(chǎn)生至少一反匯編文件; 注入該使用權(quán)管理程序代碼、該權(quán)限管理程序代碼、以及上述至少一金鑰于該至少一反匯編文件,以產(chǎn)生至少一第一中介文件; 動(dòng)態(tài)混淆該至少一第一中介文件,以產(chǎn)生至少一第二中介文件;以及 匯編該至少一第二中介文件,并且進(jìn)行一數(shù)字簽章程序,以產(chǎn)生該再封裝應(yīng)用程序。
9.一種應(yīng)用程序管理方法,用于一使用者裝置,包括: 執(zhí)行一客戶端程序; 自一應(yīng)用程序管理系統(tǒng)下載一再封裝應(yīng)用程序,其中該再封裝應(yīng)用程序是該應(yīng)用程序管理系統(tǒng)通過一再封裝程序注入一使用權(quán)管理程序代碼至一原始應(yīng)用程序而產(chǎn)生; 執(zhí)行該再封裝應(yīng)用程序; 當(dāng)該再封裝應(yīng)用程序被執(zhí)行的時(shí)期,該使用權(quán)管理程序代碼發(fā)出一使用權(quán)檢查請(qǐng)求,以啟動(dòng)該客戶端程序根據(jù)該再封裝應(yīng)用程序的使用權(quán)信息發(fā)出一使用權(quán)檢查回應(yīng),其中該使用權(quán)檢查回應(yīng)指出該再封裝應(yīng)用程序是否可繼續(xù)執(zhí)行;以及 當(dāng)該使用權(quán)檢查回應(yīng)指出該再封裝應(yīng)用程序不可繼續(xù)執(zhí)行,則該使用權(quán)管理程序代碼終止該再封裝應(yīng)用程序。
10.如權(quán)利要求9所述的應(yīng)用程序管理方法,還包括: 該使用權(quán)管理程序代碼提供該再封裝應(yīng)用程序的名稱至該客戶端程序; 該客戶端程序提供該名稱至該應(yīng)用程序管理系統(tǒng),其中該應(yīng)用程序管理系統(tǒng)根據(jù)該名稱提供該使用權(quán)信息;以及 該客戶端程序自該應(yīng)用程序管理系統(tǒng)接收該使用權(quán)信息。
11.如權(quán)利要求9所述的應(yīng)用程序管理方法,其中該應(yīng)用程序管理系統(tǒng)在該再封裝程序中更注入一權(quán)限管理程序代碼至該原始應(yīng)用程序以產(chǎn)生該再封裝應(yīng)用程序,該應(yīng)用程序管理方法還包括: 存儲(chǔ)一系統(tǒng)函數(shù)的權(quán)限設(shè)定; 該權(quán)限管理程序代碼攔截該再封裝應(yīng)用程序?qū)υ撓到y(tǒng)函數(shù)的呼叫,并發(fā)出一權(quán)限檢查請(qǐng)求,以啟動(dòng)該客戶端程序根據(jù)該權(quán)限設(shè)定發(fā)出一權(quán)限檢查回應(yīng); 該權(quán)限管理程序代碼根據(jù)該權(quán)限檢查回應(yīng)而執(zhí)行該系統(tǒng)函數(shù)、不執(zhí)行該系統(tǒng)函數(shù)、或以假信息回應(yīng)該系統(tǒng)函數(shù); 當(dāng)該再封裝應(yīng)用程序在執(zhí)行時(shí)期載入一新增程序代碼,則該權(quán)限管理程序代碼將該新增程序代碼傳送至該客戶端程序; 該客戶端程序修改該新增程序代碼,以使該權(quán)限管理程序代碼攔截該新增程序代碼對(duì)該系統(tǒng)函數(shù)的呼叫,并發(fā)出該權(quán)限檢查請(qǐng)求,以啟動(dòng)該客戶端程序根據(jù)該權(quán)限設(shè)定發(fā)出該權(quán)限檢查回應(yīng);以及 在該客戶端程序修改該新增程序代碼之后,該權(quán)限管理程序代碼允許該新增程序代碼并入該再封裝應(yīng)用程序。
12.如權(quán)利要求11所述的應(yīng)用程序管理方法,還包括: 該客戶端程序提供一使用者接口,以供該使用者裝置的使用者變更該權(quán)限設(shè)定。
13.如權(quán)利要求11所述的應(yīng)用程序管理方法,還包括: 該客戶端程序自該應(yīng)用程序管理系統(tǒng)接收一權(quán)限管理訊息;以及 該客戶端程序根據(jù)該權(quán)限管理訊息變更該權(quán)限設(shè)定。
14.如權(quán)利要求11所述的應(yīng)用程序管理方法,還包括: 當(dāng)該使用權(quán)管理程序代碼在發(fā)出該使用權(quán)檢查請(qǐng)求的一預(yù)設(shè)時(shí)間內(nèi)未收到該使用權(quán)檢查回應(yīng),則該使用權(quán)管理程序代碼終止該再封裝應(yīng)用程序;以及 當(dāng)該權(quán)限管理程序代碼在發(fā)出該權(quán)限檢查請(qǐng)求的該預(yù)設(shè)時(shí)間內(nèi)未收到該權(quán)限檢查回應(yīng),則該權(quán)限管理程序代碼不執(zhí)行該系統(tǒng)函數(shù)。
15.如權(quán)利要求11所述的應(yīng)用程序管理方法,其中該應(yīng)用程序管理系統(tǒng)在該再封裝程序中更注入至少一金鑰至該原始應(yīng)用程序以產(chǎn)生該再封裝應(yīng)用程序,該應(yīng)用程序管理方法還包括: 該使用權(quán)管理程序代碼或該權(quán)限管理程序代碼提供該再封裝應(yīng)用程序的名稱至該客戶端程序; 該客戶端程序提供該名稱至該應(yīng)用程序管理系統(tǒng),其中該應(yīng)用程序管理系統(tǒng)根據(jù)該名稱提供上述至少一金鑰其中之一; 該客戶端程序自該應(yīng)用程序管理系統(tǒng)接收該金鑰; 當(dāng)該名稱是由該使用權(quán)管理程序代碼提供,則該使用權(quán)管理程序代碼使用該金鑰以加密該使用權(quán)檢查請(qǐng)求并解密該使用權(quán)檢查回應(yīng),該客戶端程序使用該金鑰以解密該使用權(quán)檢查請(qǐng)求并加密該使用權(quán)檢查回應(yīng);以及 當(dāng)該名稱是由該權(quán)限管理程序代碼提供,則該權(quán)限管理程序代碼使用該金鑰以加密該權(quán)限檢查請(qǐng)求并解密該權(quán)限檢查回應(yīng),該客戶端程序使用該金鑰以解密該權(quán)限檢查請(qǐng)求并加密該權(quán)限檢查回應(yīng)。
16.如權(quán)利要求15所述的應(yīng)用程序管理方法,還包括: 該客戶端程序?qū)⒃撌褂脵?quán)信息和/或自該應(yīng)用程序管理系統(tǒng)接收的該金鑰存儲(chǔ)在該使用者裝置; 當(dāng)該使用者裝置已存儲(chǔ)該使用權(quán)信息,則該客戶端程序根據(jù)存儲(chǔ)在該使用者裝置的該使用權(quán)信息發(fā)出后續(xù)的該使用權(quán)檢查回應(yīng);以及 當(dāng)該使用者裝置已存儲(chǔ)該金鑰,則該客戶端程序使用存儲(chǔ)在該使用者裝置的該金鑰以解密后續(xù)的該使用權(quán)檢查請(qǐng)求和/或后續(xù)的該權(quán)限檢查請(qǐng)求,而且該客戶端程序使用存儲(chǔ)在該使用者裝置的該金鑰以加密后續(xù)的該使用權(quán)檢查回應(yīng)和/或后續(xù)的該權(quán)限檢查回應(yīng)。
17.—種應(yīng)用程序管理系統(tǒng),包括: 一再封裝模塊,用以接收一原始應(yīng)用程序,通過一再封裝程序,注入一使用權(quán)管理程序代碼至該原始應(yīng)用程序,以產(chǎn)生一再封裝應(yīng)用程序;以及 一應(yīng)用程序管理模塊,用以公開該再封裝應(yīng)用程序,以供一使用者裝置下載并安裝該再封裝應(yīng)用程序,其中該使用者裝置執(zhí)行一客戶端程序,當(dāng)該使用者裝置執(zhí)行該再封裝應(yīng)用程序時(shí),該使用權(quán)管理程序代碼發(fā)出一使用權(quán)檢查請(qǐng)求,以啟動(dòng)該客戶端程序根據(jù)該再封裝應(yīng)用程序的使用權(quán)信息發(fā)出一使用權(quán)檢查回應(yīng),該使用權(quán)檢查回應(yīng)指出該再封裝應(yīng)用程序是否可繼續(xù)執(zhí)行,當(dāng)該使用權(quán)檢查回應(yīng)指出該再封裝應(yīng)用程序不可繼續(xù)執(zhí)行,則該使用權(quán)管理程序代碼終止該再封裝應(yīng)用程序。
18.如權(quán)利要求17所述的應(yīng)用程序管理系統(tǒng),其中該使用權(quán)管理程序代碼提供該再封裝應(yīng)用程序的名稱至該客戶端程序,而且該應(yīng)用程序管理系統(tǒng)還包括: 一使用權(quán)管理模塊,用以自該客戶端程序接收該名稱,并根據(jù)該名稱提供該使用權(quán)信息至該客戶端程序。
19.如權(quán)利要求17所述的應(yīng)用程序管理系統(tǒng),其中該使用者裝置存儲(chǔ)一系統(tǒng)函數(shù)的權(quán)限設(shè)定,該再封裝模塊還通過該再封裝程序,注入一權(quán)限管理程序代碼至該原始應(yīng)用程序,以產(chǎn)生該再封裝應(yīng)用程序,該權(quán)限管理程序代碼攔截該再封裝應(yīng)用程序?qū)υ撓到y(tǒng)函數(shù)的呼口4,并發(fā)出一權(quán)限檢查請(qǐng)求,以啟動(dòng)該客戶端程序根據(jù)該權(quán)限設(shè)定發(fā)出一權(quán)限檢查回應(yīng),該權(quán)限管理程序代碼根據(jù)該權(quán)限檢查回應(yīng)而執(zhí)行該系統(tǒng)函數(shù)、不執(zhí)行該系統(tǒng)函數(shù)、或以假信息回應(yīng)該系統(tǒng)函數(shù),其中當(dāng)該再封裝應(yīng)用程序在執(zhí)行時(shí)期載入一新增程序代碼,則該權(quán)限管理程序代碼將該新增程序代碼傳送至該客戶端程序,該客戶端程序修改該新增程序代碼,以使該權(quán)限管理程序代碼攔截該新增程序代碼對(duì)該系統(tǒng)函數(shù)的呼叫,并發(fā)出該權(quán)限檢查請(qǐng)求,以啟動(dòng)該客戶端程序根據(jù)該權(quán)限設(shè)定發(fā)出該權(quán)限檢查回應(yīng),然后該權(quán)限管理程序代碼允許該新增程序代碼并入該再封裝應(yīng)用程序。
20.如權(quán)利要求19所述的應(yīng)用程序管理系統(tǒng),還包括: 一空中下載服務(wù)管理模塊,用以提供一權(quán)限管理訊息至該客戶端程序,其中該客戶端程序根據(jù)該權(quán)限管理訊息變更該權(quán)限設(shè)定。
21.如權(quán)利要求19所述的應(yīng)用程序管理系統(tǒng),其中當(dāng)該使用權(quán)管理程序代碼在發(fā)出該使用權(quán)檢查請(qǐng)求的一預(yù)設(shè)時(shí)間內(nèi)未收到該使用權(quán)檢查回應(yīng),則該使用權(quán)管理程序代碼終止該再封裝應(yīng)用程序,當(dāng)該權(quán)限管理程序代碼在發(fā)出該權(quán)限檢查請(qǐng)求的該預(yù)設(shè)時(shí)間內(nèi)未收到該權(quán)限檢查回應(yīng),則該權(quán)限管理程序代碼不執(zhí)行該系統(tǒng)函數(shù)。
22.如權(quán)利要求19所述的應(yīng)用程序管理系統(tǒng),其中該使用權(quán)管理程序代碼或該權(quán)限管理程序代碼提供該再封裝應(yīng)用程序的名稱至該客戶端程序,而且該應(yīng)用程序管理系統(tǒng)還包括: 一金鑰提供模塊,用以提供至少一金鑰,其中該再封裝模塊還通過該再封裝程序,注入上述至少一金鑰至該原始應(yīng)用程序,以產(chǎn)生該再封裝應(yīng)用程序;以及 一金鑰管理模塊,用以自該金鑰提供模塊取得上述至少一金鑰,自該客戶端程序接收該名稱,并根據(jù)該名稱提供上述至少一金鑰其中之一至該客戶端程序,其中當(dāng)該名稱是由該使用權(quán)管理程序代碼提供,則該使用權(quán)管理程序代碼使用該金鑰以加密該使用權(quán)檢查請(qǐng)求并解密該使用權(quán)檢查回應(yīng),而且該客戶端程序使用該金鑰以解密該使用權(quán)檢查請(qǐng)求并加密該使用權(quán)檢查回應(yīng),當(dāng)該名稱是由該權(quán)限管理程序代碼提供,則該權(quán)限管理程序代碼使用該金鑰以加密該權(quán)限檢查請(qǐng)求并解密該權(quán)限檢查回應(yīng),而且該客戶端程序使用該金鑰以解密該權(quán)限檢查請(qǐng)求并加密該權(quán)限檢查回應(yīng)。
23.如權(quán)利要求22所述的應(yīng)用程序管理系統(tǒng),其中該再封裝模塊反匯編該原始應(yīng)用程序,以產(chǎn)生至少一反匯編文件,注入該使用權(quán)管理程序代碼、該權(quán)限管理程序代碼、以及上述至少一金鑰于該至少一反匯編文件,以產(chǎn)生至少一第一中介文件,動(dòng)態(tài)混淆該至少一第一中介文件,以產(chǎn)生至少一第二中介文件,匯編該至少一第二中介文件,并且進(jìn)行一數(shù)字簽章程序,以產(chǎn)生該再封裝應(yīng)用程序。
24.一種使用者裝置,包括: 一通信模塊,用以連接一應(yīng)用程序管理系統(tǒng);以及 一處理器,用以執(zhí)行一客戶端程序,自該應(yīng)用程序管理系統(tǒng)下載一再封裝應(yīng)用程序,并執(zhí)行該再封裝應(yīng)用程序,其中該再封裝應(yīng)用程序是該應(yīng)用程序管理系統(tǒng)通過一再封裝程序注入一使用權(quán)管理程序代碼至一原始應(yīng)用程序而產(chǎn)生,當(dāng)該再封裝應(yīng)用程序被執(zhí)行時(shí),該使用權(quán)管理程序代碼發(fā)出一使用權(quán)檢查請(qǐng)求,以啟動(dòng)該客戶端程序根據(jù)該再封裝應(yīng)用程序的使用權(quán)信息發(fā)出一使用權(quán)檢查回應(yīng),其中該使用權(quán)檢查回應(yīng)指出該再封裝應(yīng)用程序是否可繼續(xù)執(zhí)行,當(dāng)該使用權(quán)檢查回應(yīng)指出該再封裝應(yīng)用程序不可繼續(xù)執(zhí)行,則該使用權(quán)管理程序代碼終止該再封裝應(yīng)用程序。
25.如權(quán)利要求24所述的使用者裝置,其中該使用權(quán)管理程序代碼提供該再封裝應(yīng)用程序的名稱至該客戶端程序,該客戶端程序提供該名稱至該應(yīng)用程序管理系統(tǒng),該應(yīng)用程序管理系統(tǒng)根據(jù)該名稱提供該使用權(quán)信息,該客戶端程序自該應(yīng)用程序管理系統(tǒng)接收該使用權(quán)信息。
26.如權(quán)利要求24所述的使用者裝置,還包括: 一存儲(chǔ)裝置,用以存儲(chǔ)一系統(tǒng)函數(shù)的權(quán)限設(shè)定,該應(yīng)用程序管理系統(tǒng)在該再封裝程序中更注入一權(quán)限管理程序代碼至該原始應(yīng)用程序以產(chǎn)生該再封裝應(yīng)用程序,該權(quán)限管理程序代碼攔截該再封裝應(yīng)用程序?qū)υ撓到y(tǒng)函數(shù)的呼叫,并發(fā)出一權(quán)限檢查請(qǐng)求,以啟動(dòng)該客戶端程序根據(jù)該權(quán)限設(shè)定發(fā)出一權(quán)限檢查回應(yīng),該權(quán)限管理程序代碼根據(jù)該權(quán)限檢查回應(yīng)而執(zhí)行該系統(tǒng)函數(shù)、不執(zhí)行該系統(tǒng)函數(shù)、或以假信息回應(yīng)該系統(tǒng)函數(shù)。
27.如權(quán)利要求26所述的使用者裝置,其中當(dāng)該再封裝應(yīng)用程序在執(zhí)行時(shí)期載入一新增程序代碼,則該權(quán)限管理程序代碼將該新增程序代碼傳送至該客戶端程序,該客戶端程序修改該新增程序代碼,以使該權(quán)限管理程序代碼攔截該新增程序代碼對(duì)該系統(tǒng)函數(shù)的呼口4,并發(fā)出該權(quán)限檢查請(qǐng)求,以啟動(dòng)該客戶端程序根據(jù)該權(quán)限設(shè)定發(fā)出該權(quán)限檢查回應(yīng),在該客戶端程序修改該新增程序代碼之后,該權(quán)限管理程序代碼允許該新增程序代碼并入該再封裝應(yīng)用程序。
28.如權(quán)利要求26所述的使用者裝置,其中該客戶端程序提供一使用者接口,以供該使用者裝置的使用者變更該權(quán)限設(shè)定。
29.如權(quán)利要求26所述的使用者裝置,其中該客戶端程序自該應(yīng)用程序管理系統(tǒng)接收一權(quán)限管理訊息,并根據(jù)該權(quán)限管理訊息變更該權(quán)限設(shè)定。
30.如權(quán)利要求26所述的使用者裝置,其中當(dāng)該使用權(quán)管理程序代碼在發(fā)出該使用權(quán)檢查請(qǐng)求的一預(yù)設(shè)時(shí)間內(nèi)未收到該使用權(quán)檢查回應(yīng),則該使用權(quán)管理程序代碼終止該再封裝應(yīng)用程序,當(dāng)該權(quán)限管理程序代碼在發(fā)出該權(quán)限檢查請(qǐng)求的該預(yù)設(shè)時(shí)間內(nèi)未收到該權(quán)限檢查回應(yīng),則該權(quán)限管理程序代碼不執(zhí)行該系統(tǒng)函數(shù)。
31.如權(quán)利要求26所述的使用者裝置,其中該應(yīng)用程序管理系統(tǒng)在該再封裝程序中更注入至少一金鑰至該原始應(yīng)用程序以產(chǎn)生該再封裝應(yīng)用程序,該使用權(quán)管理程序代碼或該權(quán)限管理程序代碼提供該再封裝應(yīng)用程序的名稱至該客戶端程序,該客戶端程序提供該名稱至該應(yīng)用程序管理系統(tǒng),該應(yīng)用程序管理系統(tǒng)根據(jù)該名稱提供上述至少一金鑰其中之一,該客戶端程序自該應(yīng)用程序管理系統(tǒng)接收該金鑰,當(dāng)該名稱是由該使用權(quán)管理程序代碼提供,則該使用權(quán)管理程序代碼使用該金鑰以加密該使用權(quán)檢查請(qǐng)求并解密該使用權(quán)檢查回應(yīng),而且該客戶端程序使用該金鑰以解密該使用權(quán)檢查請(qǐng)求并加密該使用權(quán)檢查回應(yīng),當(dāng)該名稱是由該權(quán)限管理程序代碼提供,則該權(quán)限管理程序代碼使用該金鑰以加密該權(quán)限檢查請(qǐng)求并解密該權(quán)限檢查回應(yīng),而且該客戶端程序使用該金鑰以解密該權(quán)限檢查請(qǐng)求并加密該權(quán)限檢查回應(yīng)。
32.如權(quán)利要求31所述的使用者裝置,其中該客戶端程序?qū)⒃撌褂脵?quán)信息和/或自該應(yīng)用程序管理系統(tǒng)接收的該金鑰存儲(chǔ)在該存儲(chǔ)裝置,當(dāng)該存儲(chǔ)裝置已存儲(chǔ)該使用權(quán)信息,則該客戶端程序根據(jù)存儲(chǔ)在該存儲(chǔ)裝置的該使用權(quán)信息發(fā)出后續(xù)的該使用權(quán)檢查回應(yīng);當(dāng)該存儲(chǔ)裝置已存儲(chǔ)該金鑰,則該客戶端程序使用存儲(chǔ)在該存儲(chǔ)裝置的該金鑰以解密后續(xù)的該使用權(quán)檢查請(qǐng)求和/或后續(xù)的該權(quán)限檢查請(qǐng)求,而且該客戶端程序使用存儲(chǔ)在該存儲(chǔ)裝置的該金鑰以加密后續(xù)的該使用權(quán)檢查回應(yīng)和/或后續(xù)的該權(quán)限檢查回應(yīng)。
【文檔編號(hào)】G06F21/52GK104298916SQ201310379908
【公開日】2015年1月21日 申請(qǐng)日期:2013年8月28日 優(yōu)先權(quán)日:2013年7月17日
【發(fā)明者】高銘智, 潘佑宣, 黃琨富 申請(qǐng)人:財(cái)團(tuán)法人工業(yè)技術(shù)研究院