HTTP/3 与 QUIC 支持限制
❌ r0capture 暂不支持 HTTP/3 与 QUIC。
为什么不支持
HTTP/3 基于 QUIC,而 QUIC 基于 UDP,且 TLS 握手内嵌在 QUIC 协议里:
r0capture hook 的是 SSL_read/SSL_write,这是 TCP+TLS 模型下的函数。QUIC 不走 SSL_read/SSL_write,而是用 BoringSSL 的 QUIC API(SSL_set_quic_method 等),完全是另一套接口。
现状
来自 README
暂不支持 HTTP/2、或 HTTP/3,该部分 API 在安卓系统上暂未普及或布署,为 App 自带,无法进行通用 hook。
哪些 App 用 HTTP/3
- 大厂 App(用 Cronet / 自带 QUIC 库)
- Chrome 系浏览器内核的 WebView
这些 App 的 HTTP/3 流量 r0capture 抓不到,但它们通常同时支持 HTTP/2 fallback——逼迫 App 降级的方法:
- 阻断 UDP(QUIC 走 UDP),App 会回退到 TCP HTTP/2
- 这样 r0capture 就能抓到降级后的 HTTP/2
替代方案
- mitmproxy(较新版本支持 QUIC 解密,需绕过 pinning)
- 阻断 UDP 强制降级到 HTTP/2 后再用 r0capture