2011-10-23 11 views
5

So come sviluppare in Android e utilizzare la lib di Apache HTTP, ma voglio andare più in basso, ottenere l'adattatore di interfaccia wireless ed essere in grado di inviare pacchetti wireless & in modalità wireless. So che è possibile poiché ci sono applicazioni sniffer nel mercato Android. Mi sono guardato intorno e ho cercato molto su google, ma non riesco a capire come iniziare. Sorprendentemente nessuno sembra aver mai fatto questa domanda anche su SO.Networking a livello di pacchetto in Android

Suppongo che non ci siano API Android che lo facciano per te. Si prega di suggerire un modo di inviare/ricevere pacchetti in Android o postare riferimenti a tali risorse.

Grazie!

Nota: So che java.net api può essere utilizzato in Android (anche se non l'ho usato prima) ma questo non mi dà il tipo di accesso che voglio.

+0

Qual è lo scopo attuale qui? – EJP

+0

Voglio creare un'app che possa connettersi al server BSNL (ISP) attraverso un access point che si trova in modalità Bridge. a parte questo, molte altre cose interessanti possono essere fatte. – Rushil

+0

@Rushil, che cosa ha a che fare la modalità bridge con qualsiasi cosa? Di solito quando si parla di "bridge mode" è nel contesto di avere un dispositivo che NON agisce come un punto di accesso, il cui scopo è quello di fornire l'accesso a una LAN wireless via Ethernet. Stai parlando di wireless ad-hoc? In tal caso, vedere [questa domanda] (http://stackoverflow.com/questions/1932150/can-android-do-peer-to-peer-ad-hoc-networking). – mpontillo

risposta

2

Non c'è modo di farlo con l'SDK/NDK standard.

Su un dispositivo rooted, è possibile chiamare in tcpdump o un'altra applicazione basata su libpcap. Non esiste un modo supportato per fornire alle applicazioni Java i privilegi richiesti su un dispositivo Android di produzione.

Ad esempio, this blog post descrive come utilizzare tcpdump per eseguire un'acquisizione di pacchetti di base su Android.

+0

Grazie! è un buon inizio! Ma quel post sul blog diceva che dovresti collegare il dispositivo Android a un PC. Non è possibile creare un'app che sia in grado di acquisire e inviare pacchetti usando libpcap.? Voglio dire, su un telefono rooted..il post sul blog non sembra dire molto .. – Rushil

+1

@Rushil, ci sono alcuni motivi per cui hai bisogno di un PC collegato. (1) per fare il root del dispositivo, se non lo è già (2) per spingere il binario tcpdump sul telefono. (3) per eseguire 'adb shell' per eseguire tcpdump da. Su un telefono rooted, è possibile scrivere codice Java per chiamare in un 'libpcap' basato su misura binario che dovresti progettare per riportare i dati alla tua GUI in un formato che potresti visualizzare.Il punto è, se il tuo unico obiettivo è vedere i pacchetti in arrivo, tutto quello che devi fare è rootare il telefono, abilitare debugging, push tcpdump, lancia 'adb shell' come root e inizia a usare' tcpdump'. – mpontillo

+0

@Rushil, anche, come Ho già accennato, anche su un dispositivo rooted che fornisce un privilegio root di applicazioni Java non supportato. L'unica cosa a metà supportata (dalla comunità, vedi [androidsu] (http://androidsu.com/superuser/)) è di lanciare un binario nativo arbitrario come root. In questo modo è possibile eseguire una compilazione incrociata di un binario con un 'libpcap' collegato staticamente (simile a' tcpdump') che è possibile chiamare per eseguire il lavoro che si desidera eseguire. Ad esempio, è possibile progettare il programma in modo da generare risultati in formato XML su 'stdout' e dargli comandi su' stdin'. – mpontillo

1

Avete dato un'occhiata al NDK? Forse puoi fare quello che vuoi in C (++).

+0

Ya ne ho sentito parlare, ma non so esattamente come procedere per configurarlo.sembra complicato :-( – Rushil

1

Android OS 4.0 o successivo fornisce un VpnService tramite il quale è possibile monitorare il traffico di rete. L'applicazione fornita a http://www.taosoftware.co.jp/en/android/packetcapture/ utilizza VpnService che acquisisce i dati.

+0

Grazie! In realtà ho bisogno di essere in grado di "creare" tali strumenti, non utilizzare software di terze parti. Comunque ci proverò :-) – Rushil

+0

@sandy - Ho guardato il VpnService ma non sono stato in grado di monitorare il traffico di rete. Sembra essere usato per connettersi a una VPN, non per agire come uno. Hai avuto fortuna a fare questo? – brianestey

+0

@brianestey -Voglio provare ma non riesco a trovare alcuna soluzione. – saini

Problemi correlati