前提条件 (必须满足)
-
获取ROOT权限:
tcpdump需要访问网络底层,这在安卓系统上必须有ROOT权限才能运行。大部分零售的电视盒子、安卓大屏默认是没有ROOT的,您可能需要通过刷机或者专门的ROOT工具来获取。 -
开启ADB调试: 您需要在安卓大屏的“开发者选项”中,开启“USB调试”或“网络ADB调试”功能。这样您才能从电脑上通过
adb命令连接到大屏的shell环境。 -
准备
tcpdump可执行文件: 大部分安卓系统默认不包含tcpdump命令。您需要一个适用于您安卓大屏CPU架构(大概率是ARM或ARM64)的tcpdump可执行文件。- 您可以从 Android TCPDUMP官网 下载预编译好的版本。
操作步骤
第一步:连接到安卓大屏的Shell环境
-
获取大屏IP地址:在安卓大屏的网络设置中,找到它的IP地址(例如,我们假设是
192.168.137.95)。 -
电脑上打开命令行/终端:
-
通过ADB连接: 输入以下命令连接到您的安卓大屏。
Bash
adb connect 192.168.137.95如果连接成功,会提示
connected to 192.168.137.95:5555。 -
进入Shell: 输入以下命令,您将进入安卓大屏的命令行环境。
Bash
adb shell您会看到命令提示符变成了类似
great_device:/ $的样子。 -
切换到ROOT用户: 在shell中,输入
su命令切换到超级用户。Bash
su命令提示符可能会变成
#,表示您现在是ROOT用户了。
第二步:将tcpdump推送到设备上并赋予权限
-
退出当前shell: 在刚才的shell窗口输入
exit,先退回到电脑的普通命令行。 -
推送文件: 将您下载好的
tcpdump文件推送到安卓大屏的一个可写目录下,比如/data/local/tmp。Bash
adb push path/to/your/tcpdump /data/local/tmp/(请将
path/to/your/tcpdump替换为您电脑上tcpdump文件的实际路径) -
重新进入Shell并授权:
Bash
adb shell su cd /data/local/tmp chmod 755 tcpdumpchmod 755命令是给tcpdump文件添加可执行权限。
第三步:开始抓包
现在,万事俱备,您可以开始抓包了。
-
确定网卡名称: 在安卓shell中,输入
netcfg或ifconfig命令,查看网络接口列表。您的Wi-Fi网卡名称通常是wlan0。Bash
# netcfg lo UP 127.0.0.1/8 0x00000049 00:00:00:00:00:00 wlan0 UP 192.168.137.95/24 0x00001043 aa:bb:cc:dd:ee:ff -
执行抓包命令:
- 手机IP地址:
192.168.137.48 - 大屏IP地址:
192.168.137.95 - 网卡名:
wlan0
在shell中执行以下命令,开始抓包并将结果保存到文件中:
Bash
# cd /data/local/tmp # ./tcpdump -i wlan0 -s 0 -w /sdcard/capture.pcap host 192.168.137.48命令参数解释:
./tcpdump: 运行当前目录下的tcpdump。-i wlan0: 指定监听的网卡是wlan0。-s 0: (snapshot length) 抓取完整的数据包,而不是只抓头部。-w /sdcard/capture.pcap: 将抓包结果写入到设备内置存储(sdcard)下的capture.pcap文件中。这个文件可以被Wireshark直接打开。host 192.168.137.48: 这是过滤器,表示只抓取源IP或目标IP是手机 (192.168.137.48) 的数据包。因为您是在大屏上抓包,所有与手机的通信自然就是您需要的数据。
- 手机IP地址:
-
复现问题:
- 命令行会显示
tcpdump: listening on wlan0, ...,表示抓包已经开始。 - 现在,拿起您的iOS手机,进行投屏操作。
- 等待问题复现(视频播放,但进度条为0)。
- 等待10-15秒。
- 命令行会显示
-
停止抓包:
- 在电脑的shell窗口,按
Ctrl + C。tcpdump会停止监听,并显示抓了多少个包。
- 在电脑的shell窗口,按
第四步:将抓包文件取回电脑进行分析
-
退出shell: 输入
exit两次,回到电脑的命令行。 -
拉取文件: 使用
adb pull命令将抓包文件从大屏上复制到您的电脑。Bash
adb pull /sdcard/capture.pcap C:\Users\YourName\Desktop\(请将
C:\Users\YourName\Desktop替换为您想保存文件的电脑路径) -
用Wireshark分析:
- 现在,您电脑上就有了一个
capture.pcap文件。 - 用Wireshark打开它,您就可以看到手机和大屏之间最直接的通信数据了,没有任何中间环节的干扰。
- 现在,您电脑上就有了一个
这个方法虽然前期准备工作稍多,但一旦环境搭好,后续抓包会非常方便和准确。