2 votes

Les autorisations Android permettent-elles d'écouter les ports >1024 sans autorisation spéciale de la racine (uniquement les autorisations standard dans l'application) ?

Je ne suis pas un développeur Android, je suis un développeur dans de nombreux autres contextes.

J'ai une question simple à laquelle je ne trouve pas de réponse sur Google : Est-ce qu'une application Android standard (pas de rooting requis) peut écouter un socket sur un port numéroté élevé ? C'est à dire en utilisant uniquement les permissions standard de l'application ?

Toute référence à la documentation sur les permissions disponibles serait un ajout appréciable pour ce guerrier du week-end qu'est le futur codeur Android.

3voto

pr0nin Points 353

Android est basé sur Linux et a donc les mêmes limitations que les autorisations Root sont nécessaires pour ouvrir un socket sur les ports inférieurs à 1024.

Pour ouvrir un socket dans une application sur un port supérieur ou égal à 1024, l'application elle-même doit avoir l'autorisation statique :

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

défini dans son AndroidManifest.xml . Sans cette autorisation, aucune communication réseau n'est permise par le système d'exploitation Android. Avec cette autorisation, vous pouvez ouvrir des sockets client et serveur pour effectuer des opérations réseau comme d'habitude.

Lorsque vous ouvrez un socket pour faire tourner un serveur, sachez que cela n'a généralement de sens que sur l'interface WiFi. Sur l'interface du réseau mobile, vous pouvez ouvrir un socket, mais comme les fournisseurs de réseaux mobiles n'attribuent pas d'IP publique, vous ne pouvez pas atteindre un serveur fonctionnant sur un système Android connecté à l'internet via des données mobiles.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X