之前使用过fiddler、Charles这些工具来抓包进行数据分析,但是这些工具通常只能抓取Http请求的。现在要抓取系统在亮屏状态时,所有的数据请求,这时可以用到linux下常用的tcpdump。
一.tcpdump编译
在AOSP源码的external/tcpdump路径下。
注意如果lunch时,选择的是user,需要修改下Android.mk,把下面一行注释掉
LOCAL_MODULE_TAGS := debug
二.tcpdump使用
编译好后,push到/system/xbin/下。当然如果权限不够,也可推到其它目录下,并给tcpdump可执行权限。
这里抓取的是全部数据,cd到tcpdump路径下,然后执行:
./tcpdump -i wlan0 -w /sdcard/tcpdump.cap
-i后接网络接口
-w后接日志保存的路径
这里说两点要注意的:
1.开启wifi后,就可以输入命令了,输入命令后再连接wifi,这样抓取的数据更全
2.如果要重启后,抓取数据。请先清除掉已保存的wifi,重启后按步骤一执行
三.tcpdump日志查看
上面保存的数据可以直接拖到wireshark打开
因为这是一篇实战记录,关于tcpdump更多的命令以及wireshark相关的请自行在网上查找。