應(yīng)用程序加殼配置方法與裝置制造方法
【專利摘要】本發(fā)明涉及一種應(yīng)用程序加殼配置方法,其包括以下步驟:解析所述應(yīng)用程序原安裝包,獲得其內(nèi)部文件;構(gòu)造集合所述原安裝包與所述內(nèi)部文件的加殼安裝包,使加殼安裝包與原安裝包具有不同的包名,所述被集合的內(nèi)部文件中配置有加載模塊,該加載模塊,用于將被集合的原安裝包加載到沙箱運(yùn)行環(huán)境中以運(yùn)行所述應(yīng)用程序;安裝該加殼安裝包。此外,本發(fā)明還涉及與該方法相應(yīng)的一種應(yīng)用程序加殼配置裝置。本發(fā)明使得目標(biāo)應(yīng)用程序能夠運(yùn)行于沙箱運(yùn)行環(huán)境中,并且能確保系統(tǒng)的安全。
【專利說明】應(yīng)用程序加殼配置方法與裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)軟件安全【技術(shù)領(lǐng)域】,尤其涉及一種應(yīng)用程序加殼配置方法及相 應(yīng)的裝置。
【背景技術(shù)】
[0002] 沙箱是一種按照安全策略限制程序行為的執(zhí)行環(huán)境,目前已經(jīng)廣泛實(shí)用于各種操 作系統(tǒng)中。以Android為例,一些應(yīng)用程序,出于實(shí)現(xiàn)應(yīng)用程序固有功能需要之外的目的, 特別是商業(yè)目的,隨意申請(qǐng)系統(tǒng)權(quán)限,獲取用戶隱私數(shù)據(jù)、執(zhí)行網(wǎng)絡(luò)訪問、保持設(shè)備活動(dòng)、發(fā) 送短信行為等。輕則可能導(dǎo)致用戶隱私數(shù)據(jù)泄露,或者占用系統(tǒng)資源,重則可能通過惡意扣 費(fèi)、植入廣告、消耗資費(fèi)、欺詐誘騙等,使用戶遭受損失。因此,通過沙箱技術(shù)提供的執(zhí)行環(huán) 境,由沙箱對(duì)系統(tǒng)的資源、權(quán)限進(jìn)行管理,讓應(yīng)用程序于該沙箱中運(yùn)行,應(yīng)用程序的訪問先 經(jīng)沙箱按安全策略進(jìn)行審查,由此,形成一種相對(duì)于系統(tǒng)本身的隔離運(yùn)行效果,可以有效地 保護(hù)系統(tǒng)的安全。對(duì)于沙箱中所用到的安全策略,適應(yīng)各種不同的操作系統(tǒng)有不同的細(xì)節(jié) 考慮,這些有關(guān)技術(shù)實(shí)現(xiàn)的基本知識(shí),均已為本領(lǐng)域技術(shù)人員所掌握,恕不贅述。
[0003] 目前有多種實(shí)例來實(shí)現(xiàn)沙箱技術(shù)。這些實(shí)例中,一方面,沙箱技術(shù)為了兼容市面的 多種應(yīng)用,一般僅僅通過限定沙箱的安全策略,控制該應(yīng)用的可執(zhí)行資源而實(shí)現(xiàn)。然而,在 安全領(lǐng)域,攻防雙方的技術(shù)水平此消彼長(zhǎng),傳統(tǒng)的僅僅通過限制安全策略的沙箱,有時(shí)難以 確保能夠達(dá)到所期望的目的,必須借助于更富技術(shù)含量的新方案。另一方面,沙箱技術(shù)往往 涉及系統(tǒng)底層操作,而在諸如以Android為代表的Unix系的操作系統(tǒng)中,本身有著嚴(yán)格的 權(quán)限管理,這樣,便導(dǎo)致在未獲得Root授權(quán)的前提下,難以應(yīng)用沙箱技術(shù)去構(gòu)造沙箱??梢?獨(dú)辟蹊徑,去實(shí)現(xiàn)免Root環(huán)境下的沙箱環(huán)境,然而,在這種情況下,往往會(huì)引起多方面的一 些技術(shù)障礙,這些障礙依沙箱的具體實(shí)現(xiàn)方式而定。
[0004] 目前現(xiàn)有技術(shù)中,對(duì)于這種免Root沙箱,盡管存在理論可能,未見成熟案例。但 是,從以上的分析可以看出,要基于免Root環(huán)境實(shí)現(xiàn)一種更為安全的沙箱技術(shù),需要結(jié)合 其具體技術(shù)原理,來考慮其自身的具體構(gòu)造以及在必要時(shí)考慮對(duì)相關(guān)應(yīng)用程序的重構(gòu),使 得重構(gòu)后的應(yīng)用程序可以無縫運(yùn)行于已經(jīng)基于系統(tǒng)而保持相對(duì)獨(dú)立的沙箱之中,通過該應(yīng) 用程序在沙箱中的運(yùn)行,實(shí)現(xiàn)應(yīng)有的安全控制效果。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的第一目的在于提供一種應(yīng)用程序加殼配置方法,以便為免Root沙箱環(huán) 境配置便于加載運(yùn)行的應(yīng)用程序。
[0006] 本發(fā)明的第二目在于提供一種適于構(gòu)造第一目的所述的方法的應(yīng)用程序加殼配 直裝直。
[0007] 為實(shí)現(xiàn)本發(fā)明的目的,本發(fā)明采取如下技術(shù)方案:
[0008] 本發(fā)明的一種應(yīng)用程序加殼配置方法,其包括以下步驟:
[0009] 解析所述應(yīng)用程序原安裝包,獲得其內(nèi)部文件;
[0010] 構(gòu)造集合所述原安裝包與所述內(nèi)部文件的加殼安裝包,使加殼安裝包與原安裝包 具有不同的包名,所述被集合的內(nèi)部文件中配置有加載模塊,該加載模塊,用于將被集合的 原安裝包加載到沙箱運(yùn)行環(huán)境中以運(yùn)行所述應(yīng)用程序;
[0011] 安裝該加殼安裝包。
[0012] 較佳的,加殼安裝包的包名,由所述原安裝包的包名附加前綴構(gòu)成。
[0013] 具體的,所述內(nèi)部文件之一為被集合的原安裝包的配置文件的副本,該副本中涉 及組件和動(dòng)作名稱處均被附加所述的前綴,所述配置文件的副本特指Androidmanifest. xml文件。
[0014] 進(jìn)一步,所述加載模塊設(shè)置于內(nèi)部文件之一的代碼文件中,該加載模塊被配置為 采用反射調(diào)用機(jī)制加載所述被集合的原安裝包以運(yùn)行所述應(yīng)用程序。所述代碼文件特指 classes, dex 文件。
[0015] 根據(jù)本發(fā)明的一個(gè)實(shí)例所揭示,所述內(nèi)部文件包括被集合的自原安裝包獲得的資 源文件和/或動(dòng)態(tài)庫(kù)文件及其相應(yīng)的目錄結(jié)構(gòu)。
[0016] 具體的,所述資源文件特指Res目錄及其下所包含的文件,所述動(dòng)態(tài)庫(kù)文件特指 Lib目錄及其下所包含的文件。
[0017] 較佳的,所述資源文件包括圖標(biāo)文件,且該圖標(biāo)文件基于被集合的自原安裝包獲 得的相應(yīng)圖標(biāo)文件進(jìn)行局部修改所得。
[0018] 具體的,所述被集合的原安裝包被置于加殼安裝包的Assets目錄中。
[0019] 進(jìn)一步,所述加載模塊被配置為引導(dǎo)沙箱運(yùn)行環(huán)境對(duì)所述應(yīng)用程序的運(yùn)行進(jìn)程實(shí) 施安全監(jiān)控,以實(shí)現(xiàn)該應(yīng)用程序在沙箱運(yùn)行環(huán)境中的正常運(yùn)行。
[0020] 本發(fā)明提供的一種應(yīng)用程序加殼配置裝置,其特征在于,包括:
[0021] 獲取單元,用于解析所述應(yīng)用程序原安裝包,獲得其內(nèi)部文件;
[0022] 構(gòu)造單元,用于構(gòu)造集合所述原安裝包與所述內(nèi)部文件的加殼安裝包,使加殼安 裝包與原安裝包具有不同的包名,所述被集合的內(nèi)部文件中配置有加載模塊,該加載模塊, 用于將被集合的原安裝包加載到沙箱運(yùn)行環(huán)境中以運(yùn)行所述應(yīng)用程序;
[0023] 安裝單元,用于安裝該加殼安裝包。
[0024] 相較于現(xiàn)有技術(shù),本發(fā)明至少具有如下優(yōu)點(diǎn):
[0025] 1、借助目標(biāo)應(yīng)用程序安裝包自身的內(nèi)部文件為該安裝包加殼,生成加殼安裝 包,使加殼安裝包具有與原安裝包具有不同的包名(PackageName),原安裝包的對(duì)應(yīng)組 件和動(dòng)作便被加殼安裝包進(jìn)行注冊(cè),由此,在宿主應(yīng)用程序安裝運(yùn)行后,再借助反射調(diào) 用機(jī)制去加載安裝包的四大組件時(shí),借助相應(yīng)函數(shù)使宿主應(yīng)用程序的包名與目標(biāo)應(yīng)用 程序所調(diào)度的包名保持一致,在Android系統(tǒng)中,既能使活動(dòng)組件和服務(wù)組件建立與 ActivityManagerService的正常通信,又能使活動(dòng)組件、服務(wù)組件以及廣播組件等,順利被 PackageManagerService識(shí)別,降低現(xiàn)有技術(shù)中有關(guān)加殼應(yīng)用程序運(yùn)行異常的錯(cuò)誤率。
[0026] 2、通過在加殼的宿主應(yīng)用程序中配置用于反射調(diào)用原安裝包的加載模塊,并且由 加載模塊建立起原安裝包的目標(biāo)應(yīng)用程序與沙箱運(yùn)行環(huán)境之間的通信,使得目標(biāo)應(yīng)用程序 的活動(dòng)過程可以進(jìn)一步被沙箱運(yùn)行環(huán)境進(jìn)行監(jiān)視,從而對(duì)其適用安全策略,以及對(duì)其進(jìn)行 資源引用重定向等,確保目標(biāo)應(yīng)用程序能被宿主應(yīng)用程序正常加載并保持正常運(yùn)行。
[0027] 3、由于宿主應(yīng)用程序利用原安裝包的Androidmanifest. xml為藍(lán)本,修改 包名后,完成了正常的安裝注冊(cè)程序,不必為被反射調(diào)用的目標(biāo)應(yīng)用程序的各個(gè)組件 (Activity, Service, Receiver)單獨(dú)構(gòu)造主函數(shù)入口(ActivityThread. main)和提供 LoadedAPK對(duì)象,也不必考慮因包名而帶來的PackageManagerService校驗(yàn)的程序?qū)崿F(xiàn)復(fù) 雜度問題,從而大大提高程序運(yùn)行效率。
[0028] 本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,這些將從下面的描述中變 得明顯,或通過本發(fā)明的實(shí)踐了解到。
【專利附圖】
【附圖說明】
[0029] 本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變 得明顯和容易理解,其中 :
[0030] 圖1是本發(fā)明的應(yīng)用程序加殼配置方法的流程原理圖;
[0031] 圖2是本發(fā)明的應(yīng)用程序加殼配置裝置的原理圖;
[0032] 圖3是本發(fā)明的應(yīng)用程序免Root運(yùn)行控制方法的流程原理圖;
[0033] 圖4是本發(fā)明的應(yīng)用程序免Root運(yùn)行控制裝置的原理圖。
【具體實(shí)施方式】
[0034] 下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終 相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附 圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對(duì)本發(fā)明的限制。
[0035] 本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式"一"、"一 個(gè)"、"所述"和"該"也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說明書中使用的措 辭"包括"是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加 一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元 件被"連接"或"耦接"到另一元件時(shí),它可以直接連接或耦接到其他元件,或者也可以存在 中間元件。此外,這里使用的"連接"或"耦接"可以包括無線連接或無線耦接。這里使用 的措辭"和/或"包括一個(gè)或更多個(gè)相關(guān)聯(lián)的列出項(xiàng)的全部或任一單元和全部組合。
[0036] 本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(yǔ)(包括技術(shù) 術(shù)語(yǔ)和科學(xué)術(shù)語(yǔ)),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng) 該理解的是,諸如通用字典中定義的那些術(shù)語(yǔ),應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中 的意義一致的意義,并且除非像這里一樣被特定定義,否則不會(huì)用理想化或過于正式的含 義來解釋。
[0037] 本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,這里所使用的"終端"、"終端設(shè)備"既包括無線信 號(hào)接收器的設(shè)備,其僅具備無發(fā)射能力的無線信號(hào)接收器的設(shè)備,又包括接收和發(fā)射硬件 的設(shè)備,其具有能夠在雙向通信鏈路上,執(zhí)行雙向通信的接收和發(fā)射硬件的設(shè)備。這種設(shè)備 可以包括:蜂窩或其他通信設(shè)備,其具有單線路顯示器或多線路顯示器或沒有多線路顯示 器的蜂窩或其他通信設(shè)備;PCS(Personal Communications Service,個(gè)人通信系統(tǒng)),其可 以組合語(yǔ)音、數(shù)據(jù)處理、傳真和/或數(shù)據(jù)通信能力;PDA(Personal Digital Assistant,個(gè) 人數(shù)字助理),其可以包括射頻接收器、尋呼機(jī)、互聯(lián)網(wǎng)/內(nèi)聯(lián)網(wǎng)訪問、網(wǎng)絡(luò)瀏覽器、記事本、 日歷和/或GPS (Global Positioning 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 (MobiIe Internet Device, 移動(dòng)互聯(lián)網(wǎng)設(shè)備)和/或具有音樂/視頻播放功能的移動(dòng)電話,也可以是智能電視、機(jī)頂盒 等設(shè)備。
[0038] 本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,這里所使用的服務(wù)器、云端、遠(yuǎn)端網(wǎng)絡(luò)設(shè)備等概 念,具有等同效果,其包括但不限于計(jì)算機(jī)、網(wǎng)絡(luò)主機(jī)、單個(gè)網(wǎng)絡(luò)服務(wù)器、多個(gè)網(wǎng)絡(luò)服務(wù)器集 或多個(gè)服務(wù)器構(gòu)成的云。在此,云由基于云計(jì)算(Cloud Computing)的大量計(jì)算機(jī)或網(wǎng)絡(luò) 服務(wù)器構(gòu)成,其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個(gè)超 級(jí)虛擬計(jì)算機(jī)。本發(fā)明的實(shí)施例中,遠(yuǎn)端網(wǎng)絡(luò)設(shè)備、終端設(shè)備與WNS服務(wù)器之間可通過任何 通信方式實(shí)現(xiàn)通信,包括但不限于,基于3GPP、LTE、WIMX的移動(dòng)通信、基于TCP/IP、UDP協(xié) 議的計(jì)算機(jī)網(wǎng)絡(luò)通信以及基于藍(lán)牙、紅外傳輸標(biāo)準(zhǔn)的近距無線傳輸方式。
[0039] 本領(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ǔ)言 種類、級(jí)別,也不受其賴以運(yùn)行的操作系統(tǒng)或平臺(tái)所限制。理所當(dāng)然地,此類概念也不受任 何形式的終端所限制。
[0040] 本發(fā)明以下即將描述的一種方法和裝置所實(shí)施的應(yīng)用場(chǎng)景,是安裝在移動(dòng)終端上 的基于Android操作系統(tǒng)的運(yùn)行環(huán)境。
[0041] 為了說明本發(fā)明的實(shí)施,本發(fā)明試圖結(jié)合計(jì)算機(jī)程序的靜態(tài)和動(dòng)態(tài)兩個(gè)方面進(jìn)行 描述,所謂靜態(tài)方面,是指程序安裝包、文件、數(shù)據(jù)庫(kù)等存儲(chǔ)于媒介的存儲(chǔ)對(duì)象;所謂動(dòng)態(tài)方 面,是指被調(diào)入內(nèi)存中執(zhí)行的動(dòng)態(tài)對(duì)象,包括但不局限于進(jìn)程、線程、所用到的數(shù)據(jù)等。鑒于 計(jì)算機(jī)軟件技術(shù)的這些特點(diǎn),不應(yīng)將本發(fā)明所述及的各個(gè)方法、步驟、子步驟、裝置、單元、 模塊等,孤立地理解為僅靜態(tài)或僅動(dòng)態(tài)的方面,本領(lǐng)域技術(shù)人員對(duì)此應(yīng)當(dāng)知曉。故而,本領(lǐng) 域技術(shù)人員應(yīng)當(dāng)能夠依據(jù)本發(fā)明有關(guān)靜態(tài)的表述而將其對(duì)應(yīng)到動(dòng)態(tài)的進(jìn)程活動(dòng),或者依據(jù) 本發(fā)明有關(guān)動(dòng)態(tài)的進(jìn)程活動(dòng)對(duì)應(yīng)到其靜態(tài)的表現(xiàn)形式,建立起靜態(tài)與動(dòng)態(tài)兩方面的必然性 關(guān)聯(lián),以此為基礎(chǔ)來理解本發(fā)明。
[0042] 本領(lǐng)域技術(shù)人員應(yīng)當(dāng)知曉,本發(fā)明是基于免Root提權(quán)而提出的,然而,提權(quán)操 作只是Android系統(tǒng)所實(shí)施的權(quán)限管理控制,本發(fā)明也當(dāng)然地適用于已經(jīng)Root提權(quán)的 Android操作系統(tǒng)中。
[0043] 本發(fā)明是基于沙箱原理而提出的,故而,本領(lǐng)域技術(shù)人員得以結(jié)合公知的沙箱實(shí) 現(xiàn)原理來理解本發(fā)明的實(shí)施。沙箱的作用是為目標(biāo)應(yīng)用程序的提供相對(duì)封閉的運(yùn)行環(huán)境, 使應(yīng)用程序?qū)ο到y(tǒng)的資源訪問,借助沙箱安全策略的應(yīng)用,而被限制在規(guī)定的范圍之內(nèi)。因 而,本發(fā)明的實(shí)質(zhì)在于提供一種沙箱實(shí)例,從兩個(gè)方面來實(shí)現(xiàn),第一方面是提供構(gòu)造目標(biāo)應(yīng) 用程序的解決方案,第二方面是提供與前者相應(yīng)的運(yùn)行控制方案。這兩個(gè)方面可以被集成 到一個(gè)沙箱實(shí)現(xiàn)軟件中,利用其第一方面的實(shí)現(xiàn)對(duì)目標(biāo)應(yīng)用程序進(jìn)行加工,進(jìn)而利用其第 二方面的實(shí)現(xiàn),為目標(biāo)應(yīng)用程序提供安全的沙箱運(yùn)行環(huán)境。
[0044] 有鑒于此,本發(fā)明的應(yīng)用程序加殼配置方法,主要體現(xiàn)沙箱實(shí)例的第一方面,用于 加工適配于相應(yīng)的沙箱運(yùn)行環(huán)境的目標(biāo)應(yīng)用程序,在如圖1所示的實(shí)例中,該方法包括如 下步驟:
[0045] S11、解析所述應(yīng)用程序原安裝包,獲得其內(nèi)部文件。
[0046] 這里所稱的應(yīng)用程序,即前文所稱的目標(biāo)應(yīng)用程序。由于本發(fā)明基于免Root需求 而提出,根據(jù)Android固有的原理,所述目標(biāo)應(yīng)用程序一般為用戶自行安裝的第三方應(yīng)用。 [0047] 本發(fā)明可以通過接管安裝器,來實(shí)現(xiàn)對(duì)第三方應(yīng)用的安裝控制。具體而言,可以 由用戶通過本發(fā)明提供的沙箱應(yīng)用程序下載并安裝該第三方應(yīng)用而獲得所述原安裝包,或 者,也可由該沙箱應(yīng)用程序從/data/app中獲取相應(yīng)安裝包文件。對(duì)于已裝應(yīng)用,可以本發(fā) 明處理完畢之后,誘導(dǎo)用戶卸載舊應(yīng)用,安裝新應(yīng)用。
[0048] 解析應(yīng)用程序的原安裝包的手段,為本領(lǐng)域技術(shù)人員所熟知。安裝包APK文件本 質(zhì)上是利用ZIP壓縮技術(shù)結(jié)合簽名技術(shù)實(shí)現(xiàn)的壓縮包,因此,一方面可以通過解壓技術(shù)釋 放其內(nèi)部文件,另一方面還可通過Apktool之類的工具軟件獲取其內(nèi)部文件(在這種情況 下其代碼文件會(huì)被反向?yàn)?smali文件)。本領(lǐng)域技術(shù)人員均能嫻熟地利用這些公知技術(shù)在 一個(gè)給定目錄中對(duì)原安裝包進(jìn)行處理,從而通過內(nèi)存操作(非文件操作)的方式來獲得其 中的內(nèi)部文件。
[0049] Android安裝包的內(nèi)部文件,參閱下表所示:
[0050] 表I APK文件內(nèi)部的文件結(jié)構(gòu)
[0051]
【權(quán)利要求】
1. 一種應(yīng)用程序加殼配置方法,其特征在于,包括w下步驟: 解析所述應(yīng)用程序原安裝包,獲得其內(nèi)部文件; 構(gòu)造集合所述原安裝包與所述內(nèi)部文件的加殼安裝包,使加殼安裝包與原安裝包具有 不同的包名,所述被集合的內(nèi)部文件中配置有加載模塊,該加載模塊,用于將被集合的原安 裝包加載到沙箱運(yùn)行環(huán)境中W運(yùn)行所述應(yīng)用程序; 安裝該加殼安裝包。
2. 根據(jù)權(quán)利要求1所述的應(yīng)用程序加殼配置方法,其特征在于,加殼安裝包的包名,由 所述原安裝包的包名附加前綴構(gòu)成。
3. 根據(jù)權(quán)利要求2所述的應(yīng)用程序加殼配置方法,其特征在于,所述內(nèi)部文件之一為 被集合的原安裝包的配置文件的副本,該副本中涉及組件和動(dòng)作名稱處均被附加所述的前 綴,所述配置文件的副本特指An化oidmanifest. xml文件。
4. 根據(jù)權(quán)利要求1所述的應(yīng)用程序加殼配置方法,其特征在于,所述加載模塊設(shè)置于 內(nèi)部文件之一的代碼文件中,該加載模塊被配置為采用反射調(diào)用機(jī)制加載所述被集合的原 安裝包W運(yùn)行所述應(yīng)用程序。
5. 根據(jù)權(quán)利要求4所述的應(yīng)用程序加殼配置方法,其特征在于,所述代碼文件特指 classes, dex 文件。
6. 根據(jù)權(quán)利要求1至5中任意一項(xiàng)所述的應(yīng)用程序加殼配置方法,其特征在于,所述內(nèi) 部文件包括被集合的自原安裝包獲得的資源文件和/或動(dòng)態(tài)庫(kù)文件及其相應(yīng)的目錄結(jié)構(gòu)。
7. 根據(jù)權(quán)利要求6所述的應(yīng)用程序加殼配置方法,其特征在于,所述資源文件特指Res 目錄及其下所包含的文件,所述動(dòng)態(tài)庫(kù)文件特指Lib目錄及其下所包含的文件。
8. 根據(jù)權(quán)利要求6所述的應(yīng)用程序加殼配置方法,其特征在于,所述資源文件包括圖 標(biāo)文件,且該圖標(biāo)文件基于被集合的自原安裝包獲得的相應(yīng)圖標(biāo)文件進(jìn)行局部修改所得。
9. 根據(jù)權(quán)利要求1至5中任意一項(xiàng)所述的應(yīng)用程序加殼配置方法,其特征在于,所述被 集合的原安裝包被置于加殼安裝包的Assets目錄中。
10. -種應(yīng)用程序加殼配置裝置,其特征在于,包括: 獲取單元,用于解析所述應(yīng)用程序原安裝包,獲得其內(nèi)部文件; 構(gòu)造單元,用于構(gòu)造集合所述原安裝包與所述內(nèi)部文件的加殼安裝包,使加殼安裝包 與原安裝包具有不同的包名,所述被集合的內(nèi)部文件中配置有加載模塊,該加載模塊,用于 將被集合的原安裝包加載到沙箱運(yùn)行環(huán)境中W運(yùn)行所述應(yīng)用程序; 安裝單元,用于安裝該加殼安裝包。
【文檔編號(hào)】G06F9/48GK104462880SQ201410712413
【公開日】2015年3月25日 申請(qǐng)日期:2014年11月28日 優(yōu)先權(quán)日:2014年11月28日
【發(fā)明者】楊威 申請(qǐng)人:北京奇虎科技有限公司