Network Stack ist ein aktualisierbares Mainline-Modul, das dafür sorgt, dass Android an neue Netzwerkstandards anpassen und Interoperabilität mit neuen Implementierungen. 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 mit der wurden diese Dienste in einen anderen Prozess verschoben über eine stabile AIDL-Schnittstelle.
IP-Dienste
IpClient
(früherIpManager
) 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 Komponente „
NetworkMonitor
“ testet die Internetverbindung Erreichbarkeit beim Herstellen einer Verbindung zu einem neuen Netzwerk oder bei Netzwerkausfällen, wenn zur Erkennung von Captive Portalen und zur Validierung von Netzwerken.Captive Portal-Anmelde-App: eine vorinstallierte App für die Verwaltung der Anmeldung auf Captive Portals. 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 Refaktorierung in das Netzwerkstapelmodul verschoben werden, sind unten aufgeführt.
IP-Dienste: In
frameworks/base/services/net/java/android/net/
:apf
dhcp
ip
netlink
util
(teilweise)
Captive Portal-Erkennung und ‑Anmeldung In
frameworks/base/
:core/java/android/net/captiveportal/
services/core/java/com/android/server/connectivity/NetworkMonitor.java
packages/CaptivePortalLogin/*
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.
Paketformat
Das Netzwerkstack-Modul enthält die folgenden Komponenten im APK-Format:
- IP-Dienste
- Captive Portal-Anmeldung (
com.google.android.captiveportallogin
)
Dieses Modul wird vom Konfigurationsmodul für Netzwerkstack-Berechtigungen Hierbei handelt es sich um eine vorinstallierte APK-Datei, in der die erforderlichen Berechtigungen für das Netzwerkstack-Komponenten
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 an
netd
, definiert inINetd.aidl
Diese Schnittstelle wurde in stabiles AIDL konvertiert und unterliegt Konformitätstests.