首页
社区
课程
招聘
Xposed插件安装更新免重启手机方案
发表于: 2018-7-10 18:43 6707

Xposed插件安装更新免重启手机方案

2018-7-10 18:43
6707
毋庸置疑的是,Xposed已经被玩坏了。

但是, Xposed无论从哪个方面来说都是一款非常优秀的框架、方案。

但是很多开发者对于在开发插件时,安装、更新Xposed插件需要重启手机,总是有种难言之隐,抱怨之声犹如滔滔江水连绵不绝,又犹如黄河泛滥一发不可收拾。


如果看看Android源码,看看Xposed源码,了解了Android运行时系统进程和应用进程生命周期,了解了Xposed提供的功能以及注入代码的场景、时机,应该就不会抱怨那么多了。

因为安装和更新插件后如果不(软)重启手机,意味着放弃部分功能。


Xposed提供的功能接口主要有4个,具体都是干什么的,相信小伙伴们都是成竹在胸,就不啰嗦了。

  1. de.robv.android.xposed.IXposedHookZygoteInit
  2. de.robv.android.xposed.IXposedHookLoadPackage
  3. de.robv.android.xposed.IXposedHookInitPackageResources
  4. de.robv.android.xposed.IXposedHookCmdInit


但实际情况是,很多开发者只使用了Xposed的一部分功能,也就是de.robv.android.xposed.IXposedHookLoadPackage提供的功能。一般情况下,只是实现了该接口,然后在目标应用程序进程中注入执行插件代码,干一些自定义的勾当。


本文提供的免重启方案,仅仅针对de.robv.android.xposed.IXposedHookLoadPackage接口而已。如果你在开发中涉及到了更多的接口,比如de.robv.android.xposed.IXposedHookZygoteInit,那还能指望(软)不重启吗?


本文提供的免重启方案,主要对XposedBridge(源码地址:https://github.com/rovo89/XposedBridge)中的de.robv.android.xposed.XposedInit类进行了源码修改,然后重新进行编译。文件已经上传github,下载地址:https://github.com/fooree/fooXposed/blob/master/files/XposedBridge_fooree_compile.jar。


因为Xposed本身设计及其提供的功能比较完善(虽说不能满足部分人需求),此次更改其实是一种破坏Xposed架构和功能的行为;思来想去,满满的全是罪恶感。


为了能够免重启,最终还是下手了。

使用方法:替换手机中的/system/framework/XposedBridge.jar文件,然后重启手机()。务必首先备份原文件哦。

测试说明:在搭载Android 7.0系统的Nexus 5X手机上了测试,其他高度定制化的Android系统没有测试过。

使用限制

  • 只能在ART模式下(Android 4.4.4以上)有效。
  • 只能对仅仅实现了de.robv.android.xposed.IXposedHookLoadPackage接口的插件生效。
  • 对于不能退出的进程无效,例如system_server。
  • 安装、更新插件后,需要等到XposedInstaller弹出模块更新通知,然后重启目标应用才能生效,而不是重启手机哦。


  • 安装插件后在XposedInstaller中勾选才能生效,但仅仅是勾选而已;取消勾选失效。
  • 小伙伴在测试、使用过程中遇到其他问题其他问题,请留言讨论。


小伙伴们,开始享受大把大把的免重启时光吧。




[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2018-7-10 19:15 被fooree编辑 ,原因: 图片挂了
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 11716
活跃值: (133)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
谢谢分享,不过图片挂了,话说比公众号更新晚了一周啊。

提个建议,微信公众号阅读包含代码或者流程图之类的文章体验真的不好,建议发在类似看雪或者做了适配的私人博客,然后公众号的阅读原文做个跳转。
2018-7-10 19:11
0
雪    币: 24
活跃值: (68)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
junkboy 谢谢分享,不过图片挂了,话说比公众号更新晚了一周啊。 提个建议,微信公众号阅读包含代码或者流程图之类的文章体验真的不好,建议发在类似看雪或者做了适配的私人博客,然后公众号的阅读原文做个跳转。
同感。
谢谢你的建议。一定会考虑的
2018-7-10 19:13
0
雪    币: 233
活跃值: (1346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
支持大神
2018-7-11 00:27
0
游客
登录 | 注册 方可回帖
返回
//