【问题标题】:Not able to run executable file from adb shell无法从 adb shell 运行可执行文件
【发布时间】:2012-09-25 04:30:09
【问题描述】:

我已使用此命令将 tcpdump 二进制文件添加到我的 android 设备

./adb push ~/tcpdump-4.2.1/tcpdump /data/local

二进制文件已成功添加到 android 设备。 但是,当我尝试从 adb shell 执行 tcpdump 文件时,使用以下命令

./adb shell
cd data/local
./tcpdump

它给了我这个错误

/system/bin/sh: ./tcpdump: not executable: magic 7F45

我也尝试过使用chmod 777 tcpdump 更改权限,但没有成功。 我该如何克服这个问题?谢谢。

【问题讨论】:

  • chmod 给你什么错误?你可以把它推到sdcard,在那里chmod它,然后移动它(我想)。你是根吗?
  • 我使用安卓终端模拟器。它带有带有 tcpdump 的busybox
  • @Pepelac 我使用这些命令在我的 ubuntu 桌面上编译了它。/configure、make、sudo make install。然后我把 tcpdump 文件推送到 android 设备上。
  • @njzk2 chmod 在我的桌面和 adb shell 上不会给我任何错误。它执行得很好。
  • @HarshalKshatriya 是的,这没有帮助。因为您无法在使用标准 GCC 编译的 android 文件上运行。您应该从 NDK 使用它来编译 32 位 ELF 文件...

标签: android shell adb tcpdump


【解决方案1】:

你应该通过GCCAndroid NDK编译二进制文件

【讨论】:

    【解决方案2】:

    尝试以下命令:

    输入此命令c:\ProgramFiles\Android\android-sdk\platform-tools\adb shell tcpdump

    对于 Linux:

       adb shell chmod 6755 /data/local/tmp/tcpdump
    

    并通过此链接更好地理解:

    http://www.kandroid.org/online-pdk/guide/tcpdump.html

    【讨论】:

    • 我用的是 ubuntu。我仍然像这样尝试过 ./adb shell /data/local/tcpdump 。它给了我上面提到的同样的错误。
    • 我已经发布了答案,请检查并告诉我...输入您的 tcpdump 文件路径
    【解决方案3】:

    您可以找到安卓版本的 tcpdump here。此版本有些过时,仅适用于 ARM 设备。您应该按照these instructionsofficial source 构建二进制文件。

    detailed instructions关于如何在Android上运行tcpdump。请注意,您需要一个 root 设备才能开始。

    【讨论】:

    【解决方案4】:

    我在尝试在 android 模拟器中运行另一个二进制文件时遇到了同样的错误。错误来自编译。

    您必须针对 ARM 目标进行交叉编译,这意味着您需要特定的工具链,例如 arm-linux-androideabi。

    为此,您需要

    • export CROSS_COMPILE=arm-linux-androideabi-(您的工具链以“-”结尾,没有 gcc)
    • 导出 ARCH=arm
    • 将工具链添加到您的 PATH

    然后你可以运行 make 命令。您可能希望在构建之前将 -static 添加到 LDFLAGS。

    最后使用 file 命令检查你的二进制文件是否已经编译好。您应该在打印结果中查找 ARM。

    如果 Makefile 不处理 CROSS_COMPILE var,您可以尝试使用“$CROSS-COMPILE”gcc 和“$CROSS-COMPILE”ar 手动设置的参数 CC 和 AR 进行制作

    更多详情:http://source.android.com/source/index.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      • 1970-01-01
      • 2013-05-11
      • 1970-01-01
      • 2015-05-11
      • 2011-02-06
      相关资源
      最近更新 更多