I have an Android service trying to bind to a server socket port 24. As it is privileged port, it is failing with a bind exception. I am wondering what I need to do to get this working. I see this was asked couple of times in this forum, but without a resolution.
This service runs on a device that runs on Android. We build android platform for the device. We have all the control we need.
To bind to a port less than 1024, you need to be root and there are two ways of doing that.
System app : The app should be installed into /system/apps folder from where it shall be run as root. However, there are some signature issues for which help is available. Distribution is also a problem with system apps.
su binary : The su binary can be invoked using a simple
exec("su -c [command]")
. But things are easier said than done. You need to run an android processes not just a single command. Hence, there is libsuperuser which provides you the methods and has a full-length doc page.