Network Stack est un module Mainline pouvant être mis à jour. Il permet à Android de s'adapter aux normes réseau en constante évolution et d'assurer 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 les modèles de portail captif en constante évolution. De plus, les mises à jour de l'APF permettent à Android d'économiser de l'énergie sur le Wi-Fi à mesure que de nouveaux types de paquets deviennent courants.
Composants inclus
Le module Network Stack contient les composants suivants. Sur les appareils utilisant le module, ces services ont été déplacés vers un autre processus et sont accessibles via une interface AIDL stable.
Services d'adresse IP :
IpClient
(anciennementIpManager
) est un composant chargé du provisionnement et de la maintenance de la couche IP. Dans Android 9, il était déjà utilisé par des composants tels que le Bluetooth (processus croisés) et le Wi-Fi (processus intégrés).DhcpClient
obtient des adresses IP auprès des serveurs DHCP afin qu'elles puissent être attribuées aux interfaces.NetworkMonitor Le composant
NetworkMonitor
teste la joignabilité d'Internet lors de la connexion à un nouveau réseau ou en cas de défaillance du réseau, lors de la détection de portails captifs et lors de la validation des réseaux.Application de connexion au portail captif : application préinstallée chargée de gérer la connexion aux portails captifs. Il s'agit d'une application distincte depuis Android 5.0, mais elle interagit avec
NetworkMonitor
pour transmettre certains choix de l'utilisateur au système.
Chemins concernés
Les chemins d'accès déplacés vers le module Network Stack par la refactorisation sont listés ci-dessous.
Services d'adresse IP : Dans
frameworks/base/services/net/java/android/net/
:apf
dhcp
ip
netlink
util
(partiellement)
Détection et connexion au portail captif : Dans
frameworks/base/
:core/java/android/net/captiveportal/
services/core/java/com/android/server/connectivity/NetworkMonitor.java
packages/CaptivePortalLogin/*
Le nouveau code déplacé se trouve dans packages/modules/NetworkStack
, packages/modules/CaptivePortalLogin
et d'autres emplacements partagés. Les chemins d'accès ci-dessus font référence à l'emplacement des fichiers avant leur déplacement vers Mainline.
Les fichiers dans packages/modules/NetworkStack
et packages/modules/CaptivePortalLogin
font partie du module Mainline et ne peuvent pas être modifiés.
Format du package
Le module Network Stack contient les composants suivants au format APK :
- Services d'adresse IP
- Connexion au portail captif (
com.google.android.captiveportallogin
)
Ce module est accompagné du module de configuration des autorisations de la pile réseau, qui est un fichier APK préinstallé définissant les autorisations nécessaires pour les composants de la pile réseau.
Dépendances
Le module Network Stack dépend des éléments suivants :
Méthodes @hide privilégiées dans le serveur système (par exemple, dans
IConnectivityManager.aidl
). Ces API ont été rendues@SystemApi
et protégées de manière appropriée afin qu'elles soient accessibles au module Mainline, mais pas aux autres applications privilégiées (par exemple, à l'aide d'une nouvelle autorisation de signature).Liaison des IPC Binder à
netd
défini dansINetd.aidl
. Cette interface a été convertie en AIDL stable et est soumise à des tests de conformité.