La mise en réseau

Android 10 inclut les modules réseau suivants :

  • Le module Networking Components fournit des services IP communs, la surveillance de la connectivité réseau et la détection du portail de connexion captif.
  • Le module Network Stack Permission Config définit une autorisation qui permet aux modules d'effectuer des tâches liées au réseau.

Module Composants réseau

Le module Networking Components garantit qu'Android peut s'adapter à l'évolution des normes de réseau et permet l'interopérabilité avec les nouvelles implémentations. Par exemple, les mises à jour de la détection de portail captif et du code de connexion permettent à Android de rester à jour avec l'évolution des modèles de portail captif, et les mises à jour d'Advanced Policy Firewall (APF) permettent à Android d'économiser de l'énergie sur le Wi-Fi à mesure que de nouveaux types de paquets deviennent courants.

Changements dans Android 10

Le module Composants réseau contient les composants suivants.

  • Prestations IP. Le composant IpClient (anciennement IpManager) gère le provisionnement et la maintenance de la couche IP. Dans Android 9, il était utilisé en processus croisé par des composants tels que Bluetooth et en processus par des composants tels que le Wi-Fi. Le composant DhcpClient obtient les adresses IP des serveurs DHCP afin qu'elles puissent être affectées aux interfaces.
  • Moniteur réseau. Le composant NetworkMonitor teste l'accessibilité à Internet lors de la connexion à un nouveau réseau ou lors de pannes de réseau, lors de la détection de portails captifs et lors de la validation de réseaux.
  • Application de connexion au portail captif. L'application de connexion au portail captif est une application préinstallée chargée de gérer la connexion sur les portails captifs. Il s'agit d'une application distincte depuis Android 5.0, mais elle interagit avec NetworkMonitor pour transmettre certains choix d'utilisateurs au système.

Sur les appareils utilisant le module Networking Components, les services ci-dessus sont refactorisés selon un processus différent et sont accessibles à l'aide d'interfaces AIDL stables . Les chemins de refactorisation sont indiqués dans les tableaux suivants.

Chemins de refactorisation des services IP

Android 9 et inférieur Dans frameworks/base/services/net/java/android/net/ :
  • apf
  • dhcp
  • ip
  • netlink
  • util (en partie)
Android 10 et supérieur packages/modules/NetworkStack

Chemins de refactorisation de la connexion au portail captif

Android 9 et inférieur Dans frameworks/base/ :
  • core/java/android/net/captiveportal/
  • services/core/java/com/android/server/connectivity/NetworkMonitor.java
  • packages/CaptivePortalLogin/* (où * = caractère générique)
Android 10 et supérieur packages/modules/CaptivePortalLogin (et quelques autres emplacements partagés)

Format et dépendances

Le module Networking Components est fourni sous la forme de trois fichiers APK : un pour les services IP, un pour la connexion au portail captif et un pour Network Stack Permission Config .

Le module Composants réseau dépend des éléments suivants :

  • Méthodes privilégiées @hide dans le serveur système (par exemple, dans IConnectivityManager.aidl ). Ces API ont été annotées avec @SystemApi et protégées de manière appropriée afin qu'elles soient accessibles au module mais pas aux autres applications privilégiées (par exemple, en utilisant une nouvelle autorisation de signature).
  • Binder IPCs à netd défini dans INetd.aidl . Cette interface a été convertie en AIDL stable et est soumise à des tests de conformité.

Module de configuration des autorisations de la pile réseau

Le module Network Stack Permission Config ne contient pas de code mais définit à la place une autorisation destinée à être utilisée par les modules Network Stack et Captive Portal Login. Le système permet aux modules disposant de cette autorisation d'effectuer des tâches de configuration réseau connexes sur l'appareil.