王建闊
摘要:現(xiàn)在大部分朋友的生活已經(jīng)嚴(yán)重依賴智能手機(jī),手機(jī)里藏著我們各種各樣的隱私,分身類的手機(jī)應(yīng)用迎合了部分消費者的需求,市面上所謂的手機(jī)分身軟件,大部分都是提供“應(yīng)用雙開”功能,對于要使用多個微信、微博、貼吧的朋友可能還比較實用。目前市面上有如下“分身類”的產(chǎn)品:有些是廠商開發(fā),內(nèi)置于手機(jī)內(nèi)部,如小米、奇酷等,還有一些第三方應(yīng)用單獨實現(xiàn)了此功能,如LBE平行空間、360分身大師、克隆大師、DroidPlugin等,并且這類第三方應(yīng)用不需要root手機(jī)。通過實際使用和對比,總結(jié)目前分身類應(yīng)用技術(shù)實現(xiàn)方案。
關(guān)鍵詞:Android;手機(jī);應(yīng)用;雙開實現(xiàn)原理;風(fēng)險
一、修改APK
反編譯APK,修改APK包名、簽名,將APK偽裝成另外一個不同的APK,但對于一些有加密的APK,可能沒辦法實現(xiàn)。市面上的克隆大師就是利用這一原理實現(xiàn)了多款應(yīng)用的雙開。
二、以插件機(jī)制運行
這一技術(shù)可以在無需安裝、修改的情況下運行APK文件,利用反射替換,動態(tài)代理,hook了系統(tǒng)的大部分與system—server進(jìn)程通訊的函數(shù),以此作為“欺上瞞下”的目的,欺騙系統(tǒng)“以為”只有一個APK在運行。市面上的DroidPlugin就是360手機(jī)助手在Android系統(tǒng)上實現(xiàn)了一種新的插件機(jī)制:它可以在無需安裝、修改的情況下運行APK文件。
三、修改Framework
對于有系統(tǒng)修改權(quán)限的手機(jī)生產(chǎn)廠商,可以修改Framework層來實現(xiàn)雙開的目的手機(jī)的系統(tǒng)分身是在OS層實現(xiàn)的虛擬化技術(shù),需要通過修改Android系統(tǒng)的Framework層以及OS的源碼。它比較依賴手機(jī)廠商的定制系統(tǒng),不能在其他手機(jī)廠商的Android版本上運行。不過這也意味著同一臺手機(jī)將會為你提供兩個完全不同且互相封閉的系統(tǒng)環(huán)境,用不同的解鎖密碼、進(jìn)入不同的桌面、安裝不同的應(yīng)用。兩者的數(shù)據(jù)完全隔離,相冊、桌面、通訊錄全都不一樣,即使是同一個應(yīng)用的數(shù)據(jù)都是完全隔離互不干涉的,所以當(dāng)你將手機(jī)插入電腦時,也完全不會顯示另外一個系統(tǒng)儲存的資料。市面上利用該技術(shù)實現(xiàn)應(yīng)用雙開常見的產(chǎn)品包括小米MUMI8系統(tǒng)、360奇酷手機(jī)、NubiaZ17mini等。
四、通過虛擬化技術(shù)實現(xiàn)
這個虛擬化的實現(xiàn),簡而言之就是創(chuàng)造一個基于Android系統(tǒng)的虛擬平臺,通修改Framework層的虛擬實現(xiàn)、Android系統(tǒng)組件管理、文件系統(tǒng)虛擬化和應(yīng)用進(jìn)程管理,將APK復(fù)制一份到虛擬空間中運行,從而在手機(jī)上支持多個應(yīng)用空間,并達(dá)到不相互干擾的效果。市面上常見的運用虛擬化技術(shù)實現(xiàn)應(yīng)用雙開的產(chǎn)品包括:360分身大師,LBE平行空間等。
五、應(yīng)用雙開的存在的風(fēng)險:
1.數(shù)據(jù)安全隱患風(fēng)險:
部分的分身雙開應(yīng)用數(shù)據(jù),通過應(yīng)用分身的過濾,萬一應(yīng)用分身被掌握,或使用第三方應(yīng)用分身類應(yīng)用,數(shù)據(jù)會存在安全隱患。簡單粗暴的反編譯修改APK的方式也會存在類似的問題更可能存在植入數(shù)據(jù)竊取代碼的數(shù)據(jù)安全隱患。
2. Android政策風(fēng)險:
應(yīng)用分身功能可能Android會禁止該類應(yīng)用。后續(xù)Android版本更新后有可能會被限制無法使用。
3.卡頓、資源占用問題:
應(yīng)用分身無論采用系統(tǒng)層還是應(yīng)用層的做法,都會占用系統(tǒng)資源,如果分身過多,可能會造成系統(tǒng)卡頓。可以通過限制分身數(shù)量的方式來加以避免。
4.第三方應(yīng)用兼容問題
應(yīng)用分身可能會遭到第三方應(yīng)用如微信/QQ等的屏蔽,一些第三方應(yīng)用調(diào)用接口不標(biāo)準(zhǔn),可能沒辦法被應(yīng)用分身監(jiān)聽和替換,會造成分身應(yīng)用和本身應(yīng)用表現(xiàn)不同的兼容性異常。