¿Cómo atar a un puerto menos de 1024 en Android?

Tengo un servicio de Android tratando de enlazar a un puerto de socket de servidor 24. Como es puerto privilegiado, está fallando con una excepción de enlace. Me estoy preguntando qué necesito hacer para conseguir este funcionamiento. Veo que esto fue pedido un par de veces en este foro, pero sin una resolución.

Este servicio se ejecuta en un dispositivo que se ejecuta en Android. Construimos la plataforma android para el dispositivo. Tenemos todo el control que necesitamos.

Para enlazar a un puerto inferior a 1024, necesita ser root y hay dos maneras de hacerlo.

  1. Aplicación del sistema : La aplicación debe instalarse en la carpeta / system / apps desde donde se ejecutará como root. Sin embargo, hay algunas cuestiones de firma para las que hay ayuda disponible . La distribución también es un problema con las aplicaciones del sistema.

  2. Su binario : El binario su puede ser invocado usando un exec("su -c [command]") simple exec("su -c [command]") . Pero las cosas son más fáciles de decir que de hacer. Tienes que ejecutar un android no sólo procesa un solo comando. Por lo tanto, hay libsuperuser que le proporciona los métodos y tiene una página completa de doc .

Esta es una pregunta muy similar: Ejecutar llamadas API seguras como root, android , aunque están intentando ejecutarse como root por un motivo diferente.

Eso me hizo preguntarme acerca de la instalación de "aplicaciones de sistema", y vi esto: https://android.stackexchange.com/questions/27/rooted-how-to-install-a-system-app

  • Averigüe si una dirección / puerto ya está enlazado bajo Android
  • Port iPhone (OpenGL / C ++) juego para Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.