jNetPcapをAndroid用の共有ライブラリとして正常にコンパイルしました。私はこのコードを使って簡単なアプリケーションを作った:http://jnetpcap.com/examples/classic、APIをテストする。私が持っているのでAndroidのjNetPcap:findAllDevsメソッドの問題!
私は、その理由を理解することはできません:「デバイス、エラーissocketのリストを読み込むことができません:アクセスが拒否されました」
問題は、私は、メソッドfindAllDevsを呼び出すと例外がこのメッセージに上昇した場合ということです自分のアプリケーションのルート権限を取得するためにプログラムの最初の部分で呼び出しを行い、ルートされた電話機にアプリケーションをテストします。アプリケーションを実行すると、「SnifferAppにスーパーユーザー権限が与えられました」というメッセージが表示され、例外が発生します。
アイデア?ここで
は、私のコードの一部です:Process p = Runtime.getRuntime().exec("su");
/*try {
Thread.sleep(10000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // do nothing for 1000 miliseconds (1 second)
*/
try {
System.loadLibrary(JNETPCAP_LIBRARY_NAME);
}
catch (UnsatisfiedLinkError e) {
System.out.println("Native code library failed to load.\n" + e);
}
/***************************************************************************
* First get a list of devices on this system
**************************************************************************/
int r = Pcap.findAllDevs(alldevs, errbuf);
r = Pcap.findAllDevs(alldevs, errbuf);
if (r == Pcap.NOT_OK || alldevs.isEmpty()) {
tv.append("Can't read list of devices, error is" + errbuf
.toString());
setContentView(tv);
return;
}
こんにちは、私のアプリケーションで同じ問題があります。私はjnetpcapをインストールすることができましたが、 'findAllDevs'関数を実行すると空リストが返され、errbufにエラーはありません...問題を解決したのかどうか疑問に思っていましたか?私はすでにrootとしてアプリケーションを実行しています:$ sudo -i - > root#eclipse - > AVDをEclipseで起動します。 – wasp256
私は全く解決しませんでした。最後に、私は実験を実行するためにネイティブコードを使用しました。もし私が何かを見つけたら、あなたに知らせます。 –
Thanasis Petsas私は同じ問題があります。私はAndroid NDKでJnetPcapライブラリを正常にコンパイルしましたが、公式のJnetPcapウェブサイトからこのクラシックな例を実行すると、alldevs.size()は0を返します。あなたはそれを解決しましたか? –