Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
Netzwerkstack
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Der Netzwerkstack ist ein aktualisierbares Mainline-Modul, das dafür sorgt, dass Android an sich ändernde Netzwerkstandards angepasst werden kann und die Interoperabilität mit neuen Implementierungen ermöglicht. So können Android-Geräte dank der Aktualisierungen der Captive Portal-Erkennung und des Anmeldencodes mit sich ändernden Captive Portal-Modellen Schritt halten. Durch Aktualisierungen der APF kann Android-Geräte außerdem beim WLAN-Nutzung Strom sparen, wenn neue Pakettypen üblich werden.
Enthaltene Komponenten
Das Netzwerkstack-Modul enthält die folgenden Komponenten. Auf Geräten, auf denen das Modul verwendet wird, wurden diese Dienste in einen anderen Prozess verschoben und der Zugriff erfolgt über eine stabile AIDL-Schnittstelle.
IP-Dienste IpClient
(früher IpManager
) ist eine Komponente, die für die Bereitstellung und Wartung der IP‑Schicht verantwortlich ist. In Android 9 wurde er bereits prozessübergreifend von Komponenten wie Bluetooth und innerhalb von Prozessen von Komponenten wie WLAN verwendet. DhcpClient
ruft IP-Adressen von DHCP-Servern ab, damit sie Schnittstellen zugewiesen werden können.
NetworkMonitor Die NetworkMonitor
-Komponente prüft die Internetverbindung bei der Verbindung mit einem neuen Netzwerk oder bei Netzwerkausfällen, beim Erkennen von Captive Portals und bei der Validierung von Netzwerken.
Captive Portal-Anmelde-App: Eine vorinstallierte App, die für die Verwaltung der Anmeldung in Captive Portals verantwortlich ist. Seit Android 5.0 ist dies eine separate App, die aber mit NetworkMonitor
interagiert, um einige Nutzerauswahlen an das System weiterzuleiten.
Betroffene Pfade
Die Pfade, die durch die Umstrukturierung in das Netzwerkstack-Modul verschoben wurden, sind unten aufgeführt.
Der neue Speicherort des verschobenen Codes befindet sich unter packages/modules/NetworkStack
, packages/modules/CaptivePortalLogin
und einigen anderen freigegebenen Speicherorten. Die oben genannten Pfade beziehen sich auf den Speicherort der Dateien, bevor sie dorthin für Mainline verschoben werden.
Dateien in packages/modules/NetworkStack
und packages/modules/CaptivePortalLogin
sind Teil des Mainline-Moduls und können nicht geändert werden.
Das Netzwerkstack-Modul enthält die folgenden Komponenten im APK-Format:
- IP-Dienste
- Anmeldung über Captive Portal (
com.google.android.captiveportallogin
)
Dieses Modul wird vom Modul „Network Stack Permission Config“ begleitet. Dabei handelt es sich um eine vorinstallierte APK-Datei, die die erforderlichen Berechtigungen für die Netzwerkstack-Komponenten definiert.
Abhängigkeiten
Das Netzwerkstack-Modul hängt von Folgendem ab:
Berechtigte @hide-Methoden auf dem Systemserver (z.B. in IConnectivityManager.aidl
). Diese APIs wurden @SystemApi
und entsprechend geschützt, sodass sie für das Mainline-Modul, aber nicht für andere berechtigte Apps zugänglich sind (z.B. mit einer neuen Signaturberechtigung).
Binder-IPCs zu netd
, definiert in INetd.aidl
.
Diese Schnittstelle wurde in stabiles AIDL konvertiert und unterliegt Konformitätstests.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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."]]