免安装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