免 Root 抓包的可行范围
「抓包一定要 Root 吗」是新手问得最多的问题。答案分两半:抓请求不用 Root;解 HTTPS 的明文,在 7.0 以上多半绕不开。这篇把边界画清楚。
不需要 Root 的部分
在安卓上,抓包工具靠一条本地 VPN 接管流量就能工作:建隧道、记请求、摊开看参数和响应,整条链路都不碰系统分区。HTTP 流量本来就不加密,抓到就是明文;WebSocket、TCP/UDP 的连接信息同样直接可见。所以「看看某个应用发了哪些请求」这件事,任何能装 VPN 的手机都做得到——小黄鸟(HttpCanary)这类工具的「免 Root 抓包」说的就是这个范围,它的功能清单在这里。
需要 Root 的部分
HTTPS 流量被 TLS 加密,想看明文就得让抓包工具的根证书被应用信任。麻烦在于 Android 7.0 起系统不再默认信任用户安装的证书:
- 把证书装进系统证书目录是常规解法,改系统分区就需要 Root(或在带 Root 开关的模拟器里做);
- 无 Root 的真机上,可以装用户证书,但只有「声明信任用户证书」的应用才肯认——自己开发调试的应用可以这样配置,第三方应用大多不认。
所以那个常见的分界线是:免 Root 能抓到、能看 HTTP 明文;HTTPS 明文在 7.0+ 上基本依赖 Root 或模拟器。
不想 Root 的替代路径
- 用带 Root 开关的安卓模拟器:MuMu、雷电这类模拟器可以打开 Root 与可写系统盘,证书一步到位,适合调试期的临时需求。
- 只抓自己的应用:开发自己的 App 时,在应用的网络安全配置里声明信任用户证书,无 Root 也能解它自己的 HTTPS 流量;这条只适合自己的应用,发布前要记得去掉。
- 换桌面端方案:Reqable 这类桌面工具走「电脑代理 + 手机 Wi-Fi 代理」的路子,配合用户证书能覆盖一部分场景,遇到 7.0+ 的第三方应用同样是同样的证书墙。
无论选哪条路,工具的安装与证书环节都可以在安卓版下载与安装这页对照着做;证书装完仍然密文的排查,见HTTPS 抓包全是密文怎么办。