Vernetzung

Android 10 enthält die folgenden Netzwerkmodule:

  • Das Modul Networking Components bietet allgemeine IP-Dienste, Überwachung der Netzwerkkonnektivität und Captive-Login-Portal-Erkennung.
  • Das Network Stack Permission Config-Modul definiert eine Berechtigung, die es Modulen ermöglicht, netzwerkbezogene Aufgaben auszuführen.

Modul Netzwerkkomponenten

Das Netzwerkkomponentenmodul stellt sicher, dass sich Android an sich entwickelnde Netzwerkstandards anpassen kann, und ermöglicht die Interoperabilität mit neuen Implementierungen. Beispielsweise ermöglichen Updates der Captive-Portal-Erkennung und des Anmeldecodes Android, mit sich ändernden Captive-Portal-Modellen auf dem Laufenden zu bleiben, und Updates der Advanced Policy Firewall (APF) ermöglichen es Android, Strom im WLAN zu sparen, wenn neue Pakettypen üblich werden.

Änderungen in Android 10

Das Modul Netzwerkkomponenten enthält die folgenden Komponenten.

  • IP-Dienste. Die Komponente IpClient (ehemals IpManager) übernimmt die Bereitstellung und Wartung der IP-Schicht. In Android 9 wurde es prozessübergreifend von Komponenten wie Bluetooth und prozessintern von Komponenten wie Wi-Fi verwendet. Die DhcpClient-Komponente erhält IP-Adressen von DHCP-Servern, damit sie Schnittstellen zugewiesen werden können.
  • NetzwerkMonitor. Die NetworkMonitor-Komponente testet die Interneterreichbarkeit beim Verbinden mit einem neuen Netzwerk oder bei Netzwerkausfällen, beim Erkennen von Captive Portals und beim Validieren von Netzwerken.
  • Anmelde-App für das Captive-Portal. Die Anmelde-App für das Captive-Portal ist eine vorinstallierte App, die für die Verwaltung der Anmeldung bei Captive-Portalen zuständig ist. Dies ist seit Android 5.0 eine separate App, die jedoch mit NetworkMonitor interagiert, um einige Benutzerauswahlen an das System weiterzuleiten.

Auf Geräten, die das Netzwerkkomponentenmodul verwenden, werden die oben genannten Dienste in einen anderen Prozess umgestaltet und der Zugriff erfolgt über stabile AIDL-Schnittstellen . Die Umgestaltungspfade sind in den folgenden Tabellen dargestellt.

IP Services-Refaktorierungspfade

Android 9 und niedriger In frameworks/base/services/net/java/android/net/ :
  • apf
  • dhcp
  • ip
  • netlink
  • util (teilweise)
Android 10 und höher packages/modules/NetworkStack

Umgestaltungspfade für die Captive Portal-Anmeldung

Android 9 und niedriger In frameworks/base/ :
  • core/java/android/net/captiveportal/
  • services/core/java/com/android/server/connectivity/NetworkMonitor.java
  • packages/CaptivePortalLogin/* (wobei * = Platzhalter)
Android 10 und höher packages/modules/CaptivePortalLogin (und einige andere gemeinsam genutzte Speicherorte)

Format und Abhängigkeiten

Das Networking Components-Modul wird in Form von drei APKs bereitgestellt: eines für IP-Dienste, eines für die Captive-Portal-Anmeldung und eines für Network Stack Permission Config .

Das Modul Netzwerkkomponenten hängt von Folgendem ab:

  • Privilegierte @hide Methoden im Systemserver (z. B. in IConnectivityManager.aidl ). Diese APIs wurden mit @SystemApi kommentiert und entsprechend geschützt, sodass sie für das Modul zugänglich sind, aber nicht für andere privilegierte Apps (z. B. mit einer neuen Signaturberechtigung).
  • Binden Sie IPCs an netd , das in INetd.aidl definiert ist. Diese Schnittstelle wurde auf stabiles AIDL konvertiert und wird Konformitätstests unterzogen.

Network Stack Permission Config-Modul

Das Modul „Network Stack Permission Config“ enthält keinen Code, sondern definiert stattdessen eine Berechtigung, die für die Verwendung durch die Module „Network Stack“ und „Captive Portal Login“ vorgesehen ist. Das System erlaubt Modulen, denen diese Berechtigung erteilt wurde, zugehörige Netzwerkkonfigurationsaufgaben auf dem Gerät auszuführen.