在参考Android利用tcpdump和wireshark抓取网络数据包使用tcpdump的时候,会提示如下信息:
λ adb shell /data/local/tcpdump
"/data/local/tcpdump": error: Android 5.0 and later only support position-independent executables (-fPIE).
什么是PIE:
位置独立的可执行区域(position-independent executables)
为什么要关闭PIE:
Android L(以上)中限制每个app只能在sd卡的特定文件夹内写入文件而不能读取整个sd卡,这样便于管理app。
解决方法
执行该native可执行文件,输出位置放到同目录就好了。
λ adb shell
phone:/ # cd data/local/
phone:/data/local # tcpdump -n -s 0 > log.txt

本文介绍了解决Android L及以上版本中因位置独立的可执行文件限制导致无法使用tcpdump的问题。通过将捕获的数据重定向到本地文件的方式绕过了这一限制。
1405

被折叠的 条评论
为什么被折叠?



