Voglio creare un'applicazione che funziona su Android e utilizza Raw Sockets. Vedo che non esiste alcun supporto raw socket nelle librerie java.net. * O android.net. *. Sono disponibili socket grezzi su Android?Socket raw su Android
risposta
corrette, prese prime non sono supportati in tutte le librerie Java o Android, in parte perché (cito a here):
si ritiene che un tale pacchetto sarebbe degradare l'attuale modello di sicurezza di Java e potrebbe essere difficile implementare in un modo non operativo del sistema operativo (SO).
ci sono 3rd librerie di parti come RockSaw o JSocket, tuttavia questi richiedono la compilazione di C o C++, così si sono fuori di fortuna lì.
Inoltre, credo che sia necessario l'accesso come root per utilizzare socket raw.
Quindi, con tutto ciò, direi che tecnicamente è possibile, ma non pratico in questo momento.
perché non utilizzare Android tra processi di comunicazione, come:
AIDL, Intent, Broadcast ecc
Vedi http://developer.android.com/guide/topics/fundamentals/services.html per esempio. Utilizzano prese interne allo zero
Per quanto ne so non è possibile su Android. Non in java né c/C++ per motivi di sicurezza (immagino), l'unica soluzione possibile sarebbe attraverso qualche hack con accesso root. Ho cercato anche un modo, ma non ho mai trovato nulla.
- 1. accesso socket raw come utente normale su linux 2.4
- 2. È possibile il socket raw sull'interfaccia loopback?
- 3. come associare il socket raw all'interfaccia specifica
- 4. Raw socket e sendto in python
- 5. Raw Socket Linux invia/riceve un pacchetto
- 6. libpcap usa socket raw sotto di loro?
- 7. Eccezione socket Android "socket chiuso"
- 8. Ricezione pacchetti socket RAW con precisione in microsecondi
- 9. I/O socket asincrono su Android
- 10. PHP Socket con android
- 11. Raw Socket modalità promiscua non annusando quello che scrivo
- 12. Python arp sniffing raw socket nessun pacchetto di risposta
- 13. ciò che è presa RAW in programmazione socket
- 14. SMS raw pdu in Android
- 15. Socket per server Android
- 16. Timeout connessione socket Android
- 17. trasferimento file socket android
- 18. Errore socket 10052 su socket UDP
- 19. browser e socket Android io
- 20. socket Java (server Android-Java)
- 21. Android - Come ottenere Uri dal file raw?
- 22. prestazioni Socket su Linux
- 23. Presa raw in java
- 24. Problema di socket Android su Samsung Galaxy S4 (SGS4)
- 25. Invia e ricevi dati su UDP Socket java android
- 26. Prese RAW - C# - Set Flags
- 27. GCM vs. socket in Android
- 28. Come scaricare file RTSP raw su file?
- 29. Come catturare l'input HID raw su linux?
- 30. Porting Winsock su socket Linux
È possibile utilizzare Android NDK per codice C/C++. Ciò non aiuta comunque la restrizione di accesso. – fadden
In realtà ho bisogno di Raw Sockets. Lo scopo dell'utilizzo di Raw Sockets è che i pacchetti possano essere manipolati. Voglio scrivere un layer PPPoE, che richiederebbe l'accesso ai pacchetti grezzi. Ha davvero bisogno di essere eseguito allo stesso livello del client VPN integrato. C'è un kit simile a DDK che ti consente di scrivere a livello di driver su Android? – Tingo
@Tingo e Steve: "Credo che sia necessario l'accesso come root per utilizzare socket raw": più precisamente, è necessario [CAP_NET_RAW capability] (http://man7.org/linux/man-pages/man7/packet.7.html), ma sì, a meno che non venga utilizzata la gestione dei privilegi a grana fine, che si riduce a "root". – jbm