【问题标题】:Android emulator fails to start when used with tcpdump-option与 tcpdump-option 一起使用时,Android 模拟器无法启动
【发布时间】:2016-04-12 15:06:52
【问题描述】:

当我在 Ubuntu 14.04 上从终端运行 AVD 时,以下命令可以正常运行:

my_name@host:~$ emulator -avd my_avd

但是当我想使用 tcpdump 捕获网络流量时,模拟器无法启动:

my_name@host:~$ emulator -avd my_avd -tcpdump ~/test.cap
qemu-system-i386: -tcpdump: invalid option

我在 Windows 上使用 tcpdump 运行模拟器没有问题,但在 Ubuntu 和 Debian 上它拒绝工作。这可能是一个错误还是我错过了什么?当我想使用选项-timezone Europe/Berlin 时,也会出现同样的问题。相比之下,-dns-option 8.8.8.8 选项运行良好。每个 AVD 都会出现问题。

Android SDK:

  • SDK 工具 25.1.1
  • 平台工具 23.1
  • 构建工具 23.0.3
  • Android 6.0 SDK 平台修订版 3
  • Android 6.0(Intel x86 Atom Image 32/64 Bit Revision 8 和 ARM EABI v7a Image Revision 3)

在 Intel Core 2 Duo 上启用了虚拟化 (KVM)。 Oracle JDK 8 已安装。

【问题讨论】:

    标签: android ubuntu android-emulator tcpdump


    【解决方案1】:

    我的 Mac 上发生了同样的行为,解决方案似乎是将 -engine classic 添加到您的命令行调用中。所以它是这样写的:

    my_name@host:~$ emulator -avd my_avd -tcpdump ~/test.cap -engine classic
    

    感谢@Interix 发布此here

    【讨论】:

      【解决方案2】:

      根据您的模拟器,-tcpdump 是一个无效选项。检查模拟器-?或语法的人工模拟器。但是,如果这通常可以正常工作,我会感到惊讶 - 我还没有看到 tcpdump 与任何东西作为参数集成(尽管我确信这不是不可能的)。

      通常我希望单独使用 tcpdump 作为命令。根据您安装的工具,我会运行模拟器,检查它正在运行的端口,如果您正在寻找传入流量,则分别针对其端口范围运行 tcpdump。如果是传出的,请使用 tcpdump 跟踪到您要使用的目的地的流量。

      【讨论】:

      • 我已经阅读了帮助输出(在两个系统上),所以我知道有一个选项-tcpdump <filename>。 tcpdump 选项在 Windows 上运行,但在 Linux 上它告诉我“选项无效”。
      猜你喜欢
      • 2012-09-29
      • 2016-08-09
      • 2012-04-13
      相关资源
      最近更新 更多