免安裝xposed | 也能用xposed框架及附加元件

大家都知道, 用xposed框架必須要root, 但現在root成功率越來越低, 大大提高了使用門檻. 看似無解的問題, 其實可以通過沙箱技術解決.

市面上典型利用沙箱技術的應用是雙開類應用, 今天介紹的這塊應用, 不僅穩定支援雙能開, 更支援運行xposed框架+附加元件, 真正做到免root, 甚至不用安裝xposed框架, 就能玩轉各種附加元件了. 可謂是廣大機友的福音.

下面這篇文章將分為功能介紹和技術原理兩部分, 由於技術原理比較深奧, 對技術感興趣的同學可以直接跳到文章後半部分觀看. 歡迎互相討論!

首先說功能部分. 該應用是 <分身大師X版 ﹥, 是基於分身大師提出的升級版本. 據我所知也是市面上唯一一款大廠出品的xposed雙開軟體.

應用寶下載地址如下:

http://sj.qq.com/myapp/detail.htm?apkName=com.qihoo.magic.xposed

【演示視頻】

http://v.youku.com/v_show/id_XMzM5MDc3MjU0OA==.html?spm=a2h3j.8428770.3416059.1

【版本功能】

1. 免root免刷機, 甚至不用安裝xposed模組, 直接在分身大師內部運行xposed附加元件!

2. 首批支援的功能有: 自動搶紅包, 本地修改餘額, 偽裝地理位置, 偽裝設備資訊等;

筆者親測了幾個功能, 本地修改餘額和自動搶紅包都實現了, 免去了root的煩惱, 確實方便太多.

【使用步驟】

安裝好的界面如下,

點擊xposed附加元件, 進入到列表頁

注意: xposed附加元件只針對分身裡的應用有效, 對手機中的原生應用無效. 這點請大家注意!

首次進去會有使用說明, 說明xposed裡的附加元件模組都是第三方開發者提供的, 和分身大師本身沒有關係.

點擊同意後進入到xposed附加元件列表, 選擇一個模組比如自動搶紅包, 點擊卡片進入到功能說明頁面, 點擊下載.

在此必須說明一下, 部分用戶會擔心是否會造成微信封號, 風險確實是有的! ! 但是相比市面上其他同類APP, 風險是比較小的, 請大家酌情使用.

這個是功能詳情頁的頁面, 在這裡下載xposed附加元件.

4. 回到列表頁, 下載好之後點擊啟用, 進入附加元件功能設置頁面. 搶紅包功能不需要做任何更改直接就能用了.

5. 現在可以自動搶紅包了! ! 親測效果有效:

其他功能大家自己試試吧. 整體看, 大部分附加元件可以用, 部分還不支援, 估計後續還會繼續優化.

好了, 下面從技術層面闡述實現原理, 閱讀時間大概7分鐘.

免root免刷機, 用分身大師玩轉Xposed附加元件

一, 初識Xposed

Xposed開原始碼網址是https://github.com/rovo89. Xposed代碼工程結構如下圖所示,

Xposed實現基本原理是使用改造後的app_process替換Android系統中的app_process (art虛擬機還會替換libart.so) , 這需要root許可權或者刷機才能實現. 不需要root或者刷機的情況下, 能否實現在Android應用程序中運行Xposed附加元件? 下一章節將對此問題進行探討.

二, 不root不刷機, 在分身大師中運行Xposed附加元件

Xposed附加元件大體可以分為兩類, 一類是修改Android系統的, 比如重力工具箱; 一類是修改Android應用的, 比如微X模組. 修改系統, 無論從哪個實現路徑來講, 都是需要root或者刷機的, 本文不探討此類附加元件. 那麼剩下的一類修改Android應用的附加元件是否可以在不root不刷機的情況下在應用中運行?

Xposed附加元件需要運行在宿主應用進程中才能完成相應的功能. 不root不刷機, 支援Xposed附加元件在應用中運行, 一個核心問題是如何注入Xposed附加元件代碼到宿主應用進程中; 另一個核心問題是在宿主應用進程中如何提供Xposed附加元件運行環境.

1. 應用雙開

對於如何注入Xposed附加元件代碼到宿主應用進程中的問題, 從Android的進程沙箱隔離機制來看, 兩個Android應用之間, 在不擁有root許可權的情況下, 一個Android應用是不可能把代碼注入到另外一個Android應用進程. 但是在一個Android應用內部或者是一個進程內部是可行的, 不存在許可權問題.

由此引申出, 在一個Android應用內, 如何運行另外一個Android應用 (Xposed附加元件的宿主進程) ? 應用雙開 是一個很好的解決方案. 分身大師是其中很經典的一款應用, 核心是利用沙箱技術虛擬化一個Android系統.

所謂Android虛擬化技術, 就是利用Hook技術和沙箱機制, 在一個Android應用中類比出一個Android系統. 雙開的App運行在虛擬化出來的Android系統中, 與外部的Android系統完全隔離.

下圖雙開類應用的進程模型示意圖, 所有進程的UID是相同的.

解決了Xposed附加元件宿主應用的運行問題後, 如何注入Xposed附加元件代碼到宿主應用進程並在宿主應用進程中提供Xposed附加元件運行環境?

2. Xposed附加元件運行環境

首先, 需要移植Xposed框架. Xposed框架移植涉及到兩部分, 一部分是Xposed框架C++部分的移植, 具體是Javahook native庫 (libxposed_ dalvik.so和libxposed_art.so) 的移植; 一部分是Xposed 框架Java部分的移植, 具體是XposedBridge.jar的移植.

雙開應用的進程 (如微信的進程) 是一個進程中雙Application同時運行, 一個Application是Host Application (雙開類應用自己的Application) , 一個Application是雙開應用 (如微信) 的Application. 將上圖中的雙開應用 (如微信) 的進程1放大細化, 如下圖所示,

在一個雙開應用 (如微信) 進程中, 首先啟動的是Host Application, 在雙開應用 (如微信) 的Application啟動之前, 我們可以通過DexClassloader將XposedBridge.jar代碼注入到雙開應用 (如微信) 進程中. 將XposedBridge.jar代碼注入後, 調用其入口main函數, 先準備Xposed附加元件運行環境 (主要是Java hook so庫載入) , 接著載入Xposed附加元件並調用其入口函數, Xposed附加元件便開始啟動運行在雙開應用進程 (如微信) 中.

總結:

經過從技術角度的分析, 探討了不root不刷機情況下, 在Android應用中運行Xposed附加元件的技術實現路徑, 給出了實現路徑的理論支援. 在市場上, 已經出現了支援Xposed附加元件運行的應用 '分身大師xposed專版' , 它是360出品的雙開類App, 其已實現在雙開的應用中運行Xposed附加元件. 從該產品來看, 不root不刷機情況下, 支援應用中運行Xposed附加元件完全具有可行性.

最後, Xposed是一個依賴高超技術實現的工具, 它不僅帶來了效率的提升, 而且還帶來了一些意想不到的功能. 應用雙開是沙箱技術在Android系統上大膽探索, 勇於創新取得的成果, 其有效解決了Android應用的多帳戶問題. 相信二者的結合, 定能給用戶帶來驚喜的功能.


大家都知道, 用xposed框架必須要root, 但現在root成功率越來越低, 大大提高了使用門檻. 看似無解的問題, 其實可以通過沙箱技術解決.

市面上典型利用沙箱技術的應用是雙開類應用, 今天介紹的這塊應用, 不僅穩定支援雙能開, 更支援運行xposed框架+附加元件, 真正做到免root, 甚至不用安裝xposed框架, 就能玩轉各種附加元件了. 可謂是廣大機友的福音.

下面這篇文章將分為功能介紹和技術原理兩部分, 由於技術原理比較深奧, 對技術感興趣的同學可以直接跳到文章後半部分觀看. 歡迎互相討論!

首先說功能部分. 該應用是 <分身大師X版 ﹥, 是基於分身大師提出的升級版本. 據我所知也是市面上唯一一款大廠出品的xposed雙開軟體.

應用寶下載地址如下:

http://sj.qq.com/myapp/detail.htm?apkName=com.qihoo.magic.xposed

【演示視頻】

http://v.youku.com/v_show/id_XMzM5MDc3MjU0OA==.html?spm=a2h3j.8428770.3416059.1

【版本功能】

1. 免root免刷機, 甚至不用安裝xposed模組, 直接在分身大師內部運行xposed附加元件!

2. 首批支援的功能有: 自動搶紅包, 本地修改餘額, 偽裝地理位置, 偽裝設備資訊等;

筆者親測了幾個功能, 本地修改餘額和自動搶紅包都實現了, 免去了root的煩惱, 確實方便太多.

【使用步驟】

安裝好的界面如下,

點擊xposed附加元件, 進入到列表頁

注意: xposed附加元件只針對分身裡的應用有效, 對手機中的原生應用無效. 這點請大家注意!

首次進去會有使用說明, 說明xposed裡的附加元件模組都是第三方開發者提供的, 和分身大師本身沒有關係.

點擊同意後進入到xposed附加元件列表, 選擇一個模組比如自動搶紅包, 點擊卡片進入到功能說明頁面, 點擊下載.

在此必須說明一下, 部分用戶會擔心是否會造成微信封號, 風險確實是有的! ! 但是相比市面上其他同類APP, 風險是比較小的, 請大家酌情使用.

這個是功能詳情頁的頁面, 在這裡下載xposed附加元件.

4. 回到列表頁, 下載好之後點擊啟用, 進入附加元件功能設置頁面. 搶紅包功能不需要做任何更改直接就能用了.

5. 現在可以自動搶紅包了! ! 親測效果有效:

其他功能大家自己試試吧. 整體看, 大部分附加元件可以用, 部分還不支援, 估計後續還會繼續優化.

好了, 下面從技術層面闡述實現原理, 閱讀時間大概7分鐘.

免root免刷機, 用分身大師玩轉Xposed附加元件

一, 初識Xposed

Xposed開原始碼網址是https://github.com/rovo89. Xposed代碼工程結構如下圖所示,

Xposed實現基本原理是使用改造後的app_process替換Android系統中的app_process (art虛擬機還會替換libart.so) , 這需要root許可權或者刷機才能實現. 不需要root或者刷機的情況下, 能否實現在Android應用程序中運行Xposed附加元件? 下一章節將對此問題進行探討.

二, 不root不刷機, 在分身大師中運行Xposed附加元件

Xposed附加元件大體可以分為兩類, 一類是修改Android系統的, 比如重力工具箱; 一類是修改Android應用的, 比如微X模組. 修改系統, 無論從哪個實現路徑來講, 都是需要root或者刷機的, 本文不探討此類附加元件. 那麼剩下的一類修改Android應用的附加元件是否可以在不root不刷機的情況下在應用中運行?

Xposed附加元件需要運行在宿主應用進程中才能完成相應的功能. 不root不刷機, 支援Xposed附加元件在應用中運行, 一個核心問題是如何注入Xposed附加元件代碼到宿主應用進程中; 另一個核心問題是在宿主應用進程中如何提供Xposed附加元件運行環境.

1. 應用雙開

對於如何注入Xposed附加元件代碼到宿主應用進程中的問題, 從Android的進程沙箱隔離機制來看, 兩個Android應用之間, 在不擁有root許可權的情況下, 一個Android應用是不可能把代碼注入到另外一個Android應用進程. 但是在一個Android應用內部或者是一個進程內部是可行的, 不存在許可權問題.

由此引申出, 在一個Android應用內, 如何運行另外一個Android應用 (Xposed附加元件的宿主進程) ? 應用雙開 是一個很好的解決方案. 分身大師是其中很經典的一款應用, 核心是利用沙箱技術虛擬化一個Android系統.

所謂Android虛擬化技術, 就是利用Hook技術和沙箱機制, 在一個Android應用中類比出一個Android系統. 雙開的App運行在虛擬化出來的Android系統中, 與外部的Android系統完全隔離.

下圖雙開類應用的進程模型示意圖, 所有進程的UID是相同的.

解決了Xposed附加元件宿主應用的運行問題後, 如何注入Xposed附加元件代碼到宿主應用進程並在宿主應用進程中提供Xposed附加元件運行環境?

2. Xposed附加元件運行環境

首先, 需要移植Xposed框架. Xposed框架移植涉及到兩部分, 一部分是Xposed框架C++部分的移植, 具體是Javahook native庫 (libxposed_ dalvik.so和libxposed_art.so) 的移植; 一部分是Xposed 框架Java部分的移植, 具體是XposedBridge.jar的移植.

雙開應用的進程 (如微信的進程) 是一個進程中雙Application同時運行, 一個Application是Host Application (雙開類應用自己的Application) , 一個Application是雙開應用 (如微信) 的Application. 將上圖中的雙開應用 (如微信) 的進程1放大細化, 如下圖所示,

在一個雙開應用 (如微信) 進程中, 首先啟動的是Host Application, 在雙開應用 (如微信) 的Application啟動之前, 我們可以通過DexClassloader將XposedBridge.jar代碼注入到雙開應用 (如微信) 進程中. 將XposedBridge.jar代碼注入後, 調用其入口main函數, 先準備Xposed附加元件運行環境 (主要是Java hook so庫載入) , 接著載入Xposed附加元件並調用其入口函數, Xposed附加元件便開始啟動運行在雙開應用進程 (如微信) 中.

總結:

經過從技術角度的分析, 探討了不root不刷機情況下, 在Android應用中運行Xposed附加元件的技術實現路徑, 給出了實現路徑的理論支援. 在市場上, 已經出現了支援Xposed附加元件運行的應用 '分身大師xposed專版' , 它是360出品的雙開類App, 其已實現在雙開的應用中運行Xposed附加元件. 從該產品來看, 不root不刷機情況下, 支援應用中運行Xposed附加元件完全具有可行性.

最後, Xposed是一個依賴高超技術實現的工具, 它不僅帶來了效率的提升, 而且還帶來了一些意想不到的功能. 應用雙開是沙箱技術在Android系統上大膽探索, 勇於創新取得的成果, 其有效解決了Android應用的多帳戶問題. 相信二者的結合, 定能給用戶帶來驚喜的功能.

2016 GoodChinaBrand | ICP: 12011751 | China Exports