Android从7.0过后,默认不在信任用户导入的证书文件,以至于在数据抓包的时候,不能正确抓取HTTPS的数据包。我有一台Nexus 7 2013 LTE,如果使用官方原生的系统,几乎无法使用,所以一直以来,都使用的第三方的ROM,这里推荐LineageOS。那今天就来讲一下,LineageOS如何导入用户证书,使用Fiddler抓取HTTPS数据包。

第一步、安装好LineageOS后,需要刷入Magisk以获取Root权限。本来Magisk有一个MagiskTrustUserCerts的模块,但是对于Android Q来说,并不好使。

第二步、安装好Fiddler,然后配置好Https数据包抓取的功能,此进程不在做过多描述。然后在平板上打开http://电脑IP地址:8888,将Fiddler生成的证书下载,并导入到Android的用户凭据里。

第三步,打开Android的调试模式,使用ADB连接Android设备。因为刚才已经导入了用户凭据,所以我们需要找到用户凭据的文件,执行以下命令。

adb connect 192.168.2.202:5555
adb shell
ls /data/misc/user/0/cacerts-added/

此时会显示类似 269953fb.0 这样的文件信息,这就是我们所导入的用户凭据文件。然后按以下步骤操作就可以了。注意将用户凭据的文件名替换成你自己的设备上的文件名。

su
mount -o rw,remount /
mount -o rw,remount /system
cp /data/misc/user/0/cacerts-added/269953fb.0 /system/etc/security/cacerts/
rm /data/misc/user/0/cacerts-added/269953fb.0
reboot

操作完后,我们的设置就会自动重启,重启后,我们设置Wifi代理,设置成我们电脑的IP,然后在使用Fiddler抓取APP的数据包即可。