需求原因
在对移动数据业务进行质量指标分析的过程中,需要在手机终端侧进行抓包分析。由于Android系统是当前的主流系统之一,因而实现在Android系统手机端进行抓包分析对移动数据业务质量指标分析具有重要作用。
抓包准备
1. Android手机需要先获得root权限。一种是否获得root权限的检验方法:安装并打开终端模拟器(可通过安卓市场等渠道获得)。在终端模拟器界面输入su并回车,若报错则说明未root,若命令提示符从$变#则为rooted;
2. 如果Android手机尚未root,可通过superoneclick或其它方法进行root处理(需要先安装Microsoft .NET Framework)。superoneclick介绍见这里。注意事项如下:
2.1 You NEED to put your phone on USB Debugging mode
2.2 You NEED to install make sure the Android drivers for your phone are installed
2.3 Make sure you DO NOT mount your SD card.
2.4 If you still can’t get something to run, try doing it in recovery mode.
3. 需要先获得 Android SDK(可通过这里下载)
4. 需要获得tcpdump软件,获取地址在这里。这里可以看具体介绍。
抓包步骤
1. 将Android手机与电脑USB相连,打开windows命令提示符窗口
2. 将tcpdump程序copy至android手机(该命令前面那个目录文件为本地地址,后面那个目录为目的手机端地址)
C:\android-sdk-windows\platform-tools>adb push c:/tcpdump /data/local/tcpdump
3. 修改tcpdump的权限
C:\android-sdk-windows\platform-tools>adb shell chmod 6755 /data/local/tcpdump
4. 进入root权限
C:\android-sdk-windows\platform-tools>adb shell
$ su
在运行su指令后,手机终端桌面会出现相应提示信息以确认您对root操作的认可。
5. 运行tcpdump
# /data/local/tcpdump -p -vv -s 0 -w /sdcard/capture.pcap
6. 在手机端执行相应需要进行抓包分析的操作,执行完成后在命令提示符窗口执行Ctrl+C中断抓包进程
7. 将抓包结果复制至本地(前面那个目录为手机端地址,后面那个目录为本地地址)
C:\android-sdk-windows\platform-tools>adb pull /sdcard/capture.pcap c:/
8. 使用Wireshark等工具查看抓包文件capture.pcap
相关问题
1. 关于 “adb.exe 应用程序错误”
当前面这种错误时,一种做法将手机通过USB与电脑相连,在设备管理器中找到”Android Composite ADB Interface”右击选择更新驱动程序,根据向导进行,在向导步骤中需要选择“不要搜索,我要自己选择要安装的驱动程序”,后将目录定位至SDK中的usb_driver目录(C:\android-sdk-windows\extras\google\usb_driver),更新驱动程序后即可。
2. 关于 “tcpdump: no suitable device found” 错误
这意味着需要root权限来运行tcpdump,可对应上述第4步进行处理
以上方法在Nexus One (G5) (Android版本:2.2.1)上验证通过。