Network Stack è un modulo Mainline aggiornabile che garantisce che Android possa adattarsi agli standard di rete in evoluzione e consente l'interoperabilità con nuove implementazioni. Ad esempio, gli aggiornamenti al rilevamento del captive Portal e al codice di accesso consentono ad Android di rimanere aggiornato con i cambiamenti dei modelli di captive Portal, mentre gli aggiornamenti ad APF consentono ad Android di risparmiare energia sul Wi-Fi man mano che nuovi tipi di pacchetti diventano comuni.
Componenti inclusi
Il modulo Stack di rete contiene i seguenti componenti. Sui dispositivi che utilizzano il modulo, questi servizi sono stati spostati su un processo diverso e sono accessibili tramite un'interfaccia AIDL stabile.
Servizi IP.
IpClient
(precedentementeIpManager
) è un componente responsabile del provisioning e della manutenzione del livello IP. In Android 9 veniva già utilizzato in modalità cross-process da componenti come Bluetooth e in-process da componenti come Wi-Fi.DhcpClient
ottiene gli indirizzi IP dai server DHCP in modo che possano essere assegnati alle interfacce.NetworkMonitor. Il componente
NetworkMonitor
verifica la raggiungibilità di Internet durante la connessione a una nuova rete o in caso di errori di rete, durante il rilevamento di captive Portal e durante la convalida delle reti.App di accesso al portale captive. Un'app preinstallata incaricata di gestire l'accesso sui captive Portal. Questa è un'app separata da Android 5.0, ma interagisce con
NetworkMonitor
per inoltrare alcune scelte dell'utente al sistema.
Percorsi interessati
I percorsi spostati nel modulo Network Stack dal refactoring sono elencati di seguito.
Servizi IP. In
frameworks/base/services/net/java/android/net/
:-
apf
-
dhcp
-
ip
-
netlink
-
util
(in parte)
-
Rilevamento e accesso al captive Portal. In
frameworks/base/
:-
core/java/android/net/captiveportal/
-
services/core/java/com/android/server/connectivity/NetworkMonitor.java
-
packages/CaptivePortalLogin/*
-
La nuova posizione del codice spostato è in packages/modules/NetworkStack
, packages/modules/CaptivePortalLogin
e alcune altre posizioni condivise. I percorsi sopra indicati si riferiscono alla posizione dei file prima di essere spostati lì per Mainline. I file in packages/modules/NetworkStack
e packages/modules/CaptivePortalLogin
fanno parte del modulo Mainline e non possono essere modificati.
Formato del pacchetto
Il modulo Network Stack contiene i seguenti componenti in formato APK:
- Servizi IP
- Accesso al portale captive (
com.google.android.captiveportallogin
)
Questo modulo è accompagnato dal modulo Network Stack Permission Config, che è un file APK preinstallato che definisce le autorizzazioni necessarie per i componenti Network Stack.
Dipendenze
Il modulo Stack di rete dipende da quanto segue:
Metodi @hide privilegiati nel server di sistema (ad esempio, in
IConnectivityManager.aidl
). Queste API sono state rese@SystemApi
e opportunamente protette in modo che siano accessibili al modulo Mainline ma non ad altre app privilegiate (ad esempio, utilizzando una nuova autorizzazione di firma).Raccoglitore IPC per
netd
definito inINetd.aidl
. Questa interfaccia è stata convertita in AIDL stabile ed è soggetta a test di conformità.