Jim
Jim

Reputation: 131

Raw Sockets on Android

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

Answers (4)

Velo Traveler
Velo Traveler

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

JeppeSRC
JeppeSRC

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

JHelp
JHelp

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

Steve
Steve

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

Related Questions