2 votos

¿Los permisos de Android permiten escuchas en puertos >1024 sin permisos especiales de Root (sólo los permisos estándar de la aplicación)?

No soy un desarrollador de Android, soy un desarrollador en muchos otros contextos.

Tengo una pregunta sencilla a la que no veo respuesta en Google: ¿Puede una aplicación estándar de Android (sin necesidad de rootear) escuchar un socket en un puerto de alto número? Por ejemplo, ¿sólo utilizando los permisos estándar de la aplicación?

Cualquier referencia a la documentación sobre los permisos disponibles sería una buena adición para este guerrero de fin de semana Android coder to-be.

3voto

pr0nin Puntos 353

Android se basa en Linux y por lo tanto tiene las mismas limitaciones que los permisos de Root son necesarios para abrir un socket en los puertos por debajo de 1024.

Para abrir un socket en una aplicación en un puerto mayor o igual a 1024 la propia aplicación necesita tener el permiso estático:

<uses-permission android:name="android.permission.INTERNET" /> 

definido en su AndroidManifest.xml . Sin ese permiso, el sistema operativo Android no permite ninguna comunicación de red. Con el permiso se pueden abrir sockets de cliente y servidor para realizar operaciones de red de forma habitual.

Al abrir un socket para ejecutar un servidor, ten en cuenta que normalmente esto sólo tiene sentido en la interfaz WiFi. En la interfaz de la red móvil se puede abrir un socket, pero como los proveedores de la red móvil no asignan una IP pública, no se puede llegar a un servidor que se ejecute en un sistema Android conectado a través de datos móviles a Internet.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X