- 建议使用支持
New XSharedPreferences
特性的Xposed
框架,如LSPosed
、EdXposed
等,否则模块不一定可以正常工作对于虚拟框架如
太极
、LSPatch
等,因本模块的核心功能基于用户存储的规则配置,各虚拟框架由于无系统层级权限,无法给与目标app读取模块配置文件的权限,所以核心功能在考虑与实体框架兼容性的情况下无法正常实现。 - 建议使用
LSPosed
以确保本模块的稳定性,本模块只在LSPosed
框架环境下进行了功能性测试,本教程亦采用LSPosed
进行说明,其他框架的使用者请自行转换相关操作为对应框架的操作 - 建议在良好的网络环境下进行:检查更新、使用云端规则、下载资源,中国大陆、北朝鲜等无法保证 GitHub 连接稳定性的地区可能会导致这些功能失效
-
在
LSPosed
中开启本模块,并勾选目标 App不需要勾选
Android System WebView
,这是没有效果的 -
打开本模块,并确保主界面状态显示为绿色的
已启用
-
在
Hook 资源管理
中下载必要的资源,否则后续基于这些资源的功能将无法生效 -
在
Hook 规则管理
中找到目标 App,并配置其 Hook 规则- 如果目标 App 的目标版本的 Hook 规则已被收录在云端规则库,可点击
添加规则
按钮,在规则编辑器
界面的右上角使用云端规则
功能导入对应规则并保存如有多条规则请重复此步骤
- 如果目标 App 的其他版本的 Hook 规则已被收录在云端规则库,可尝试使用其他版本的 Hook 规则进行 Hook
但不保证可用性
- 如果目标 App 使用 WebView 引擎时未进行名称混淆、逻辑重写等操作,可尝试使用右上角的
预置规则
功能导入目标 WebView 引擎的 Hook 规则如不生效请确认目标 WebView 引擎是否正确、是否有名称混淆、逻辑重写等操作
- 如果上述方法都无法成功 Hook,请选择以下其中一种方式:
- 前往
捐赠
并留言目标 App 的名称和版本,金额随意,作者将抽空适配并将其特殊规则收录进云端规则库如需及时了解收录情况,可凭捐赠截图发送邮件至
[email protected]
,作者将在收录后第一时间回复邮件告知 - 前往本项目仓库或规则仓库提交
issue
,作者将抽空适配并将其特殊规则收录进云端规则库,并第一时间回复issue
告知 - 自行寻找目标 App 的相关 Hook 点,并点击
添加规则
按钮,选择合适的 Hook 方法并填入 Hook 点,保存即可如需多条规则请重复此步骤 您可以将您的规则提交到规则仓库以供他人使用,具体提交方式请看规则仓库首页
- 前往
- 如果目标 App 的目标版本的 Hook 规则已被收录在云端规则库,可点击
-
完全结束目标 App 的进程并重新打开使用了 WebView 的页面,验证规则生效情况
-
如需反馈 bug,请前往本项目仓库提交
issue
,务必描述清楚 bug 的触发条件如果有报错,请附带上使用
dev
版本复现一遍后产生的Xposed
日志
- 如需开启远程调试,请确保以下条件满足其中之一:
- 对于 WebView 、 TBS X5 ,至少有一个
hookWebView
规则生效。 - 对于 UC U4 ,至少有一个
replaceNebulaUCSDK
规则生效,已开启UC 调试内核
注入,且选择版本与目标页面所用的内核版本一致。 - 对于 CrossWalk ,至少有一个
hookCrossWalk
规则生效。
- 对于 WebView 、 TBS X5 ,至少有一个
- 如需注入
vConsole
,请确保以下条件满足所有:- 至少有一个
hookWebViewClient
规则生效。 - 如果目标页面未开启
javascript 执行
功能,请确保 #1 条件(远程调试) 满足。 - 已开启
vConsole
注入,且选择版本支持目标页面所用的内核版本。 - 目标页面使用了
WebViewClient
接口。
- 至少有一个
- Q: 为什么对
微信
的 Hook 没有生效 A: 因为微信有名称混淆且每个版本几乎都有 WebView 相关代码的修改,所以 Hook 点可能失效,解决方法请看上方开始 Hook 目标 App
段落