Xposed框架非常强大,相当于Android上的Cydia,它给了普通用户任意 DIY 系统的能力;比如防撤回、自动抢红包、主题破解、去广告和模拟位置等等。一般使用Xposed的都需要先Root,随着Android版本的更新和国内ROM的定制,Root变得越来越难了!那么对于不能Root和不想Root的用户,如何才能使用Xposed的众多黑科技呢?
近日,知乎大神weishu有了新的突破,成功实现免Root使用Xposed! 项目地址在这:https://github.com/android-hacker/exposed 。以下是原文的原理说明(嫌长可以直接跳到使用方法):
我们想一下,Xposed为什么需要Root?从现在的实现来看,因为Xposed需要修改系统文件,而这些文件只有root权限才能修改;但是这只是当前实现的特性(修改系统分区文件),而非根本原因。Xposed要实现的最终目的是在任意App进程启动之前能任意加载 特定Xposed模块 的代码;这些特定的Xposed模块中能在App进程启动之前有机会执行特定代码,从而控制任意进程的行为。归根结底,Xposed需要控制别的进程,而没有高级权限(Root),越俎代庖是不行的。
有没有别的实现方式?
虽然没有办法控制别的进程,但是在本进程内,几乎是可以为所欲为的;如果换个方式,把别的App放在自己的进程里面运行,然后Hook自己 不就打到目的了嘛?「把别的App放在自己的进程里面运行」这种机制是容器,或者通俗点叫双开;「Hook自己」这是典型的Dexposed的思路,不过Dexposed不支持ART——但前不久 epic 的出现完成了这最后一块拼图。(关于epic在ART上实现AOP Hook可以参考 我为Dexposed续一秒——论ART上运行时 Method AOP实现。
双开的典型实现是lody的 VirtualApp,那么来一看 `VirtualApp` 与 `epic` 结合会产生什么样奇妙的化学反应。
我们的思路很清晰:用 VirtualApp 去启动别的App,在启动过程中通过 epic Hook本进程,从而控制被启动的App。同时,由于Xposed模块已经比较成熟,而且有成千上万的插件生态,最好能够直接复用Xposed 的模块,使得在双开环境下,Xposed模块就跟运行在Root手机中的Xposed环境中一样。为此,我写了一个 双开环境下的Xposed兼容层:Exposed;同时,修改了 VirtualApp 的部分实现,使得它能够在进程的启动的时候加载 Exposed 这个兼容层,代码在这:VAExposed。这样,在双开环境中,可以直接加载已有的Xposed模块进而实现非Root模式下的Xposed的功能。更有趣的是,你还可以直接使用 XposedInstaller 安装和管理任意的Xposed模块,就跟你使用真正的Xposed一样!
我们以微信防撤回为例,演示使用方法:
1、首先安装VAExposed这个修改版的双开APK: Github下载 百度网盘: https://pan.baidu.com/s/1mi89S8o 密码: bb18
2、然后安装微信防撤回模块:微信巫师(点我下载) ,也可以使用别的模块,比如Wxposed ……自行测试
3、接下来需要确保你手机上的微信是 微信巫师 所支持的,目前支持微信的版本为 6.5.8~6.5.16;如果不是的话需要去下载一个支持的版本,比如 微信_6.5.8(点我下载) 。
4、最后,你需要打开VAExposed这个双开软件,添加微信和微信巫师为双开模块,如下图:
这样,使用双开中的微信,就能享受Xposed模块的防撤回功能了!
另外,你还可以直接在双开中使用 XposedInstaller,然后就可以方便的下载和管理Xposed模块了:
就这样,我们就可以免Root使用Xposed啦!
遇到问题?欢迎加群交流↓↓↓↓↓↓↓
欢迎加入Android黑科技交流群,获取更多超强黑科技!
群号码:610047919,点我加群,或者扫描下方二维码加群:
12.11更新:最新发现360分身大师也有类似功能,还出了分身大师Xposed专版,功能较完善,缺点是广告较多,感兴趣的看这里 http://8lhx.com/mobile-app/360-fenshen-xposed/
转载请注明:乐回享 » VAExposed,免Root使用Xposed!