Reputation: 131
I want to create an application that runs on Android and uses Raw Sockets. I see there isn't any raw socket support in the java.net.* or the android.net.* libraries. Are raw sockets possible on Android?
Upvotes: 11
Views: 20650
Reputation: 236
I've been able to use raw sockets on a rooted phone using Python running under the QPython app. It's kind of clunky, the script re-invokes itself with "su" if it's not already running as root, but it works.
Upvotes: 1
Reputation: 99
As far as I know it's not possible on Android. Not in java nor c/c++ due to security reasons(I guess), the only possible solution would be through some hack with root access. I've been searching for a way as well but never found anything.
Upvotes: 0
Reputation: 1
Why not use Android interprocess comunication, like :
AIDL, Intent, Broadcast etc
See http://developer.android.com/guide/topics/fundamentals/services.html for example. They use internally raw sockets
Upvotes: -8
Reputation: 55555
Correct, raw sockets are not supported in any Java or Android libraries, in part because (I quote from here):
it is believed that such a package would degrade the current Java security model and may be difficult to implement in a non-operating system (OS) dependent fashion.
There are 3rd party libraries like RockSaw or JSocket, however these require compiling C or C++, so you are out of luck there.
Also, I believe you need root access to use raw sockets.
So, with all that, I would say technically it's possible, but not practical at this time.
Upvotes: 12