I am writing an app where I would like to expose a service on a privileged port (i.e. <1024). This is not possible in Android without root permissions, from what I can see (I've made a test app, and it opens port 8000 fine, but fails with any port below 1024).
I understand the options for doing this are:
- Rooting the phone (not acceptable for this use case)
- Installing my app as a privileged app
- I will have a high degree of control over the devices this app will be installed on. Is this possible? Hexnode seem to claim their app can be installed as a privileged app here
- Somehow redirecting all traffic from the privileged port in question to a different, non-privileged port. I can't see how this would be possible without root access.
Is it possible to give my app permissions to expose a port below 1024 somehow? Perhaps by installing the APK via an MDM or UEM?
If a Privileged user is required there isn't ANY way you could achieve that without Rooting the device.