5

このコマンドを使用して、Androidデバイスにtcpdumpバイナリファイルを追加しました

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

バイナリがAndroidデバイスに正常に追加されました。しかし、次のコマンドを使用して、adbシェルからtcpdumpファイルを実行しようとすると

./adb shell
cd data/local
./tcpdump

このエラーが発生します

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

また、を使用して権限を変更しようとしましchmod 777 tcpdumpたが、無駄でした。この問題を解決するにはどうすればよいですか?ありがとう。

4

4 に答える 4

4

tcpdump の Android バージョンは、こちらにあります。このビルドはやや時代遅れであり、ARM デバイスにのみ関連しています。公式ソースからバイナリをビルドするには、次の手順に従ってください。

Androidでtcpdumpを実行する方法に関する詳細な手順があります。まず、ルート化されたデバイスが必要であることに注意してください。

于 2012-10-04T21:30:37.310 に答える
1

Android NDKGCCからバイナリ ファイルをコンパイルする必要があります。

于 2012-10-04T07:25:58.217 に答える
1

次のコマンドを試してください。

このコマンドを入力してください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

于 2012-10-04T07:49:37.040 に答える
0

別のバイナリを Android エミュレーターに実行しようとすると、同じエラーが発生しました。エラーはコンパイルから発生しました。

ARM ターゲット用にクロスコンパイルする必要があります。つまり、arm-linux-androideabi などの特定のツールチェーンが必要です。

そのためには、次のことが必要です。

  • export CROSS_COMPILE=arm-linux-androideabi- (gcc なしで「-」で終わるツールチェーン)
  • エクスポート ARCH=アーム
  • ツールチェーンを PATH に追加します

その後、make コマンドを実行できます。ビルドする前に、LDFLAGS に -static を追加することをお勧めします。

最後に、file コマンドを使用して、バイナリが適切にコンパイルされていることを確認します。印刷された結果で ARM を探す必要があります。

Makefile が CROSS_COMPILE 変数を処理しない場合は、"$CROSS-COMPILE"gcc と "$CROSS-COMPILE"ar で手動で設定されたパラメーター CC と AR で作成を試みることができます。

詳細はこちら: http://source.android.com/source/index.html

于 2013-05-06T12:53:44.993 に答える