【转】[Andriod]Xposed和VirtualXposed
Xposed框架以在不修改APK文件的情况下修改程序的运行。
这套框架需要设备解锁了Bootloader方可安装使用[1](root为解锁Bootloader的充分不必要条件,而xposed安装仅需通过TWRP等第三方Recovery卡刷安装包而不需要设备拥有完整的root权限)。
(1) xposed 是啥?
xposed是一个框架,上面有很多模块,这些模块都依赖于xposed这个框架,之所以称xposed是第一神器,就是因为这些模块可以完成许多匪夷所思的功能,例如:修改微信的界面,自动抢红包模块,自定义程序的文本,防止微信消息撤回,防止BAT三大流氓的全家桶相互唤醒、连锁启动,锁屏后自动干掉APP防止后台运行耗电,还有很多修改App或手机数据的装B模块等等。
(2) xposed 的原理?
xposed 原理就是修改系统的关键文件,然后当APP调用系统API时,首先经过xposed,而这些基于xposed的模块就可以选择性的在App调用这些api的时候干一些”坏坏”的事情,或者修改返回的结果,这样app在运行的时候效果就会改变,但app本身并没有被破坏,只是调用系统api的时候,Android系统的表现发生了变化,这就是钩子,专业术语hook。所以,说白了,xposed就是个强大的钩子框架。
来一段专业的原理解释吧:
作者通过替换 /system/bin/app_precesss 程序控制zygote进程,使得它在系统启动的过程中会加载Xposed framework的一个jar文件即XposedBridge.jar,从而完成对Zygote进程及其创建的Dalvik虚拟机的劫持,并且能够允许开发者独立的替代任何class,例如framework本身,系统UI又或者随意的一个app。
除此之外使用这种方法的好处是ROM,APP都没有产生任何变化,因此理论上就不会造成设备变砖,同时撤掉修改也非常容易,仅需要停用 Xposed framework 即可完全恢复原样。
摘自https://blog.csdn.net/fuchaosz/article/details/53143216
VirtualXposed 是什么原理?
它就是先在你手机上建立一个「虚拟空间」,你需要在这个“虚拟环境”里面安装 APP ,并且安装其对应的 Xposed 框架模块,这样就能让这个模块对该 APP 起到作用了。
安装到VirtualXposed中的应用,运行起来跟普通应用无任何差别,可以正常收发消息,接收推送,读取本机文件等。