Ho compilato jNetPcap come libreria condivisa per Android. Ho creato una semplice applicazione utilizzando questo codice: http://jnetpcap.com/examples/classic per testare l'API.jNetPcap su Android: problema con il metodo findAllDevs!
Il problema è che quando chiamo le findAllDevs metodo e viene sollevata un'eccezione con questo messaggio: "Impossibile leggere l'elenco dei dispositivi, errore issocket: Permesso negato"
non riesco a capire il motivo, dal momento che ho fatto una chiamata nella prima parte del mio programma in modo da ottenere i permessi di root per la mia applicazione e testare la mia applicazione su un telefono rooted. Quando eseguo l'applicazione, viene visualizzato un pop-up con questo messaggio: "SnifferApp ha ottenuto le autorizzazioni Superuser" e quindi si verifica l'eccezione.
Qualche idea?
Ecco un pezzo del mio codice:
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;
}
Ciao, ho lo stesso problema con la mia applicazione. Sono stato in grado di installare jnetpcap, ma quando si esegue la funzione 'findAllDevs' ricevo una lista vuota, senza errori in errbuf ... Mi chiedevo se hai risolto il problema? Sto già eseguendo l'applicazione come root: $ sudo -i -> root # eclipse -> avvia l'AVD in eclissi – wasp256
Non l'ho risolto affatto. Infine, ho usato il codice nativo per eseguire i miei esperimenti .. Se trovo qualcosa ti farò sapere. –
Thanasis Petsas Ho lo stesso problema. Ho soddisfatto correttamente la libreria JnetPcap con Android NDK, ma quando eseguo questo classico esempio dal sito Web ufficiale di JnetPcap, alldevs.size() restituisce 0. L'hai risolto ??? –