À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release
au lieu de aosp-main
pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Pile réseau
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
La pile réseau est un module Mainline pouvant être mis à jour qui garantit qu'Android peut s'adapter aux normes réseau en constante évolution 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 les modèles de portail captif en constante évolution. 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 de pile réseau 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 IP IpClient
(anciennement IpManager
) est un composant chargé du provisionnement et de la maintenance de la couche IP. Dans Android 9, il était déjà utilisé entre les processus par des composants tels que le Bluetooth et dans le processus par des composants tels que le Wi-Fi. DhcpClient
obtient des adresses IP auprès des serveurs DHCP afin qu'elles puissent être attribuées aux interfaces.
NetworkMonitor Le composant NetworkMonitor
vérifie la connectivité 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 sur les 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éplacés vers le module de pile réseau par le refactoring sont listés ci-dessous.
Le nouvel emplacement du 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 qu'ils ne soient déplacés vers cet emplacement pour la branche principale.
Les fichiers de packages/modules/NetworkStack
et packages/modules/CaptivePortalLogin
font partie du module Mainline et ne peuvent pas être modifiés.
Le module de pile réseau contient les composants suivants au format APK:
- Services 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é qui définit les autorisations nécessaires pour les composants de la pile réseau.
Dépendances
Le module de pile réseau 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é définies comme @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).
IPC de liaison vers netd
défini dans INetd.aidl
.
Cette interface a été convertie en AIDL stable et est soumise à des tests de conformité.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (UTC)."],[],[],null,["# Network Stack is an updatable Mainline module that ensures that Android can\nadapt to evolving network standards and allows for interoperability with new\nimplementations. For example, updates to captive portal detection and login code\nallow Android to stay up to date with changing captive portal models, and\nupdates to APF allow Android to save power on Wi-Fi as new types of packets\nbecome common.\n\nIncluded components\n-------------------\n\nThe Network Stack module contains the following components. On devices using the\nmodule, these services were moved to a different process and are accessed\nthrough a stable AIDL interface.\n\n- **IP services.** `IpClient` (formerly `IpManager`) is a component in charge of\n IP layer provisioning and maintenance. In Android 9, it was already used\n cross-process by components such as Bluetooth, and in-process by components\n such as Wi-Fi. `DhcpClient` obtains IP addresses from DHCP servers so they can\n be assigned to interfaces.\n\n- **NetworkMonitor.** The `NetworkMonitor` component tests for internet\n reachability when connecting to a new network or upon network failures, when\n detecting captive portals, and when validating networks.\n\n- **Captive portal login app.** A preinstalled app in charge of managing login\n on captive portals. This has been a separate app since Android 5.0, but it\n interacts with `NetworkMonitor` to forward some user choices to the system.\n\nAffected paths\n--------------\n\nThe paths moved to the Network Stack module by the refactor are listed below.\n\n- **IP services.** In `frameworks/base/services/net/java/android/net/`:\n\n - `apf`\n - `dhcp`\n - `ip`\n - `netlink`\n - `util` (partly)\n- **Captive portal detection and login.** In `frameworks/base/`:\n\n - `core/java/android/net/captiveportal/`\n - `services/core/java/com/android/server/connectivity/NetworkMonitor.java`\n - `packages/CaptivePortalLogin/*`\n\nThe new location of the moved code is in `packages/modules/NetworkStack`,\n`packages/modules/CaptivePortalLogin` and some other shared locations. The above\npaths refer to the location of files before being moved there for Mainline.\nFiles in `packages/modules/NetworkStack` and\n`packages/modules/CaptivePortalLogin` are part of the Mainline module and cannot\nbe modified.\n\nPackage format\n--------------\n\nThe Network Stack module contains the following components in APK format:\n\n- IP services\n- Captive portal login (`com.google.android.captiveportallogin`)\n\nThis module is accompanied by the Network Stack Permission Config module,\nwhich is a pre-installed APK file that defines the necessary permissions for the\nNetwork Stack components.\n\nDependencies\n------------\n\nThe Network Stack module depends on the following:\n\n- Privileged @hide methods in the system server (e.g., in\n `IConnectivityManager.aidl`). These APIs have been made `@SystemApi` and\n appropriately protected so that they are accessible to the Mainline module but\n not other privileged apps (e.g., using a new signature permission).\n\n- Binder IPCs to `netd` defined in\n [`INetd.aidl`](https://android.googlesource.com/platform/system/netd/+/android16-release/server/binder/android/net/INetd.aidl).\n This interface has been converted to stable AIDL and is subject to conformance\n tests."]]