王建闊

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