Tengo un servicio de Android que intenta vincularse a un puerto de socket del servidor 24. Como es un puerto con privilegios, está fallando con una excepción de vinculación. Me pregunto qué debo hacer para que esto funcione. Veo que esto fue preguntado un par de veces en este foro, pero sin una resolución.¿Cómo enlazar a un puerto de menos de 1024 en Android?
Este servicio se ejecuta en un dispositivo que se ejecuta en Android. Construimos la plataforma de Android para el dispositivo. Tenemos todo el control que necesitamos.
Según el conocimiento general de Linux, solo los procesos que se ejecutan como root pueden escuchar en el puerto 24. ¿Puede incluso ejecutar aplicaciones Java como raíz? –
De acuerdo. El proceso debe ejecutarse como root, o quizás como una identificación de usuario con privilegios de administrador (no estoy seguro de si Android admite ese concepto de Linux). Por lo general, si controlas el dispositivo, no estás escribiendo daemons en Java, sino en C/C++, e iniciándolos con el soporte normal de demonios de Linux. – CommonsWare
La forma "su ..." de elevar privilegios no es una opción ya que estoy vinculando a un puerto. No estoy tratando de generar un guión de shell. Como todas las aplicaciones de Android son básicamente un proceso bifurcado de zygote, a menos que zygote eleve los privilegios en función de ALGO, no puedes enlazar. Me pregunto si zygote lo permite o no. Si lo hace, ¿qué es eso ALGO? – videoguy