免root,免刷机,甚至免安装xposed框架,也能用xposed框架及插件?

大家都知道,用xposed框架必须要root,但现在root成功率越来越低,大大提高了使用门槛。看似无解的问题,其实可以通过沙箱技术解决。

市面上典型利用沙箱技术的应用是双开类应用,今天介绍的这块应用,不仅稳定支持双能开,更支持运行xposed框架+插件,真正做到免root,甚至不用安装xposed框架,就能玩转各种插件了。可谓是广大机友的福音。

下面这篇文章将分为功能介绍和技术原理两部分,由于技术原理比较深奥,对技术感兴趣的同学可以直接跳到文章后半部分观看。欢迎互相讨论!

首先说功能部分。该应用是<分身大师xposed专版>,是基于分身大师提出的升级版本。据我所知也是市面上唯一一款大厂出品的xposed双开软件。

【版本功能】

1. 免root免刷机,甚至不用安装xposed模块,直接在分身大师内部运行xposed插件!

2. 首批支持的功能有:自动抢红包,朋友圈一键转发,修改余额,伪装地理位置,伪装设备信息等;

笔者亲测了几个功能,朋友圈一键转发和自动抢红包都实现了,虽然在使用界面上还不够友好,但免去了root的烦恼,确实方便太多。

【使用步骤】

安装好的界面如下,

点击xposed插件,进入到列表页

注意:xposed插件只针对分身里的应用有效,对手机中的原生应用无效。这点请大家注意!

首次进去会有使用说明,主要说明xposed里的模块都是第三方提供的,和分身大师本身没有关系。

点击同意后进入到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应用的多帐户问题。相信二者的结合,定能给用户带来惊喜的功能。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!插入图片请使用ssl
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容