首页
社区
课程
招聘
[原创]Wechat H5 DevTools
发表于: 2026-7-4 16:44 4727

[原创]Wechat H5 DevTools

2026-7-4 16:44
4727

环境:Android Wechat 8.0.69
目标:让 chrome://inspect 能看到并调试微信内打开的 H5 网页 (真实 DOM / Console / Network / 断点), 不包括小程序

微信有两套浏览器内核

微信打开网页不是用一个固定的浏览器,而是在 XWeb 框架下可选多个内核。本文只关心两个:

Pinus 是腾讯基于 Chromium 自研裁剪的浏览器内核(源码路径里叫 weblayer,基于 Chrome 116),
以 libxwebcore.so(135MB)的形式打包在微信里,类名 com.tencent.xweb.pinus.sdk.WebView,
内核类型枚举值 WV_KIND_PINUS

它的调试不走标准通道:Pinus 不开标准的 webview_devtools_remote 调试端口,而是走微信
自己的私有远程调试(往 xweb.weixin.qq.com 拨 WebSocket 隧道),chrome 连不上

就是 Android 系统自带的 WebView(本机是 libmonochrome_64.so,171MB,Chrome 130),
内核类型 WV_KIND_SYS。它是标准 Chromium,开启调试后会 bind 标准的
webview_devtools_remote_<pid> 端口,chrome://inspect 直接就能连

调用 android.webkit.WebView.setWebContentsDebuggingEnabled(true) 想开调试但因为渲染页面的是 Pinus,开调试端口的却是系统 WebView。所以 chrome://inspect 里能看到"远程浏览器",却没有可点的 page。

强制微信用系统 WebView 渲染 H5 + 开启系统 WebView 调试。 setWebContentsDebuggingEnabled(true) 只对 系统 WebView 那套生效

代码里直接读出三点:

串起来:往 xweb_debug 写 HardCodeWebViewmm = WV_KIND_SYS → u0.c("mm") 返回 SYS → H0 采用、返回 SYS → I0/J0 写进 WebView.m → 系统内核渲染、标准调试端口有页面。

核心前提:hookDevTools 只要保证 WebView.H0 在首次点开 H5 网页之前被 hook 住即可。

注入进程:UI 进程 com.tencent.mm(无后缀)。它是最终渲染 H5、H0 选择内核的进程。

完整流程:

Native 模块:

libxwebcore.so Pinus 私有调试函数(libxwebcore.so.i64):

提取 libxwebcore.so:解 split_delivery.config.arm64_v8a.apk → 取 libxwebfullpack.so
(是个 zip)→ 再解出 libxwebcore.so。
提取 libmonochrome_64.so:从 com.google.android.trichromelibrary_* 的 base.apk
取 lib/arm64-v8a/libmonochrome_64.so。

符号 作用
com.tencent.xweb.f1 内核类型枚举 (WV_KIND_*)
com.tencent.xweb.WebView.H0(f1, String) 内核决策入口 (getPreferedWebviewType)
com.tencent.xweb.WebView.m 缓存已决策内核的静态字段
com.tencent.xweb.u0.c(String) 从 xweb_debug SP 读 HardCodeWebView
br5.z3.f() 打开 SharedPreferences “xweb_debug”
com.tencent.xweb.pinus.sdk.WebView Pinus 内核 WebView

传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!

收藏
点赞 ・137
打赏
分享
最新回复 (98)
雪    币: 8
活跃值: (6164)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2 楼
pc端也可以这么用吗
2026-7-4 18:16
0
雪    币: 300
活跃值: (265)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3 楼
感谢你分享这么好的资源!
2026-7-4 18:52
0
雪    币: 6
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4 楼
感谢分享
2026-7-4 21:30
0
雪    币: 125
活跃值: (1915)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5 楼
学到了,感谢
2026-7-4 21:45
0
雪    币: 233
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6 楼
感谢分享
2026-7-4 21:54
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7 楼
看看
2026-7-4 22:36
0
雪    币: 139
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8 楼
66666
2026-7-5 09:03
0
雪    币: 217
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9 楼
感谢分享
2026-7-5 09:33
0
雪    币: 95
活跃值: (3852)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10 楼
66666
2026-7-5 09:37
0
雪    币: 5380
活跃值: (6905)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11 楼
6
2026-7-5 10:46
0
雪    币: 4397
活跃值: (4050)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12 楼
6
2026-7-5 11:45
0
雪    币: 1416
活跃值: (1965)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13 楼
1
2026-7-5 12:06
0
雪    币: 5536
活跃值: (5874)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14 楼
6
2026-7-5 15:00
0
雪    币: 2075
活跃值: (2655)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tmi
15 楼
6
2026-7-5 15:13
0
雪    币: 8181
活跃值: (9968)
能力值: ( LV13,RANK:409 )
在线值:
发帖
回帖
粉丝
16 楼
6
2026-7-5 15:45
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17 楼
666
2026-7-5 15:52
0
雪    币: 1901
活跃值: (6053)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
18 楼
66
2026-7-6 08:06
0
雪    币: 725
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19 楼
学习
2026-7-6 09:44
0
雪    币: 1
活跃值: (888)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20 楼
6666
2026-7-6 09:50
0
雪    币: 8
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
21 楼
1
2026-7-6 10:45
0
雪    币: 3303
活跃值: (6446)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22 楼
666
2026-7-6 10:50
0
雪    币: 1406
活跃值: (1820)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23 楼
666
2026-7-6 11:14
0
雪    币: 86
活跃值: (1642)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24 楼
666
2026-7-6 17:22
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25 楼
感谢分享
2026-7-7 09:31
0
游客
登录 | 注册 方可回帖
返回