Xposed 如何在所有应用的任一 Activity 下钩子?
Android Xposed 框架开发中,想在所有的 Activity 在他们 OnCreate 的生命周期向某一地方输出一条日志,并记录这个 Activity 所在包名类名是什么,应该如何 hook?
先在此谢过大家了!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
直接hook,Activity类的onCreate应该就满足你的需求了呀.
题主自己来回答啦
请注意题目说的是“所有应用”而不是某一应用,在查xposed api的时候看到这个
也就是说,如果你想hook某一app,就用IXposedHookLoadPackage;如果是所有应用,那就要在zygote里做手脚。
题目过去很久了,不过为了防止以后有人再有同样的问题还是回答一下吧。不管是不是原来的问题
其实解决办法没有题主说的那么复杂。
首先,在MainActivity的oncreate里打下断点,然后进入debug,得到下面的调用栈
可以看到在oncreate之前执行的是performCreate,然后点击这一行,再旁边的窗口加上getClass(),就输出了当前的类名。因此hook Activity.performCreate即可。
至于hook Activity.onCreate大概也可以实现同样的效果,只不过这个hook到的是Activity调用super.onCreate的这一条语句,一般不是我们需要的。
同理可以hook各种生命周期方法。