Network Stack è un modulo Mainline aggiornabile che garantisce che Android possa adattarsi agli standard di rete in evoluzione e consente l'interoperabilità con le nuove implementazioni. Ad esempio, gli aggiornamenti al codice di rilevamento e accesso ai captive portal consentono ad Android di rimanere aggiornato con i modelli di captive portal in continua evoluzione, mentre gli aggiornamenti ad APF consentono ad Android di risparmiare energia sul Wi-Fi man mano che diventano comuni nuovi tipi di pacchetti.
Componenti inclusi
Il modulo Network Stack contiene i seguenti componenti. Sui dispositivi che utilizzano il modulo, questi servizi sono stati spostati in un processo diverso e sono accessibili tramite un'interfaccia AIDL stabile.
Servizi IP.
IpClient(in precedenzaIpManager) è un componente responsabile del provisioning e della manutenzione del livello IP. In Android 9, era già utilizzato tra processi da componenti come Bluetooth e in-process da componenti come il Wi-Fi.DhcpClientottiene indirizzi IP dai server DHCP in modo che possano essere assegnati alle interfacce.NetworkMonitor. Il componente
NetworkMonitorverifica la raggiungibilità di internet quando si connette a una nuova rete o in caso di errori di rete, quando rileva i captive portal e quando convalida le reti.App di accesso ai captive portal. Un'app preinstallata responsabile della gestione dell'accesso ai captive portal. Si tratta di un'app separata da Android 5.0, ma interagisce con
NetworkMonitorper inoltrare alcune scelte dell'utente al sistema.
Percorsi interessati
Di seguito sono riportati i percorsi spostati nel modulo Network Stack dal refactoring.
Servizi IP. In
frameworks/base/services/net/java/android/net/:apfdhcpipnetlinkutil(in parte)
Rilevamento e accesso ai captive portal. In
frameworks/base/:core/java/android/net/captiveportal/services/core/java/com/android/server/connectivity/NetworkMonitor.javapackages/CaptivePortalLogin/*
La nuova posizione del codice spostato è in packages/modules/NetworkStack, packages/modules/CaptivePortalLogin e in 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 ai captive portal (
com.google.android.captiveportallogin)
Questo modulo è accompagnato dal modulo di configurazione delle autorizzazioni Network Stack, che è un file APK preinstallato che definisce le autorizzazioni necessarie per i componenti Network Stack.
Dipendenze
Il modulo Network Stack dipende da quanto segue:
Metodi @hide con privilegi nel server di sistema (ad es. in
IConnectivityManager.aidl). Queste API sono state rese@SystemApie protette in modo appropriato in modo che siano accessibili al modulo Mainline, ma non ad altre app con privilegi (ad es. utilizzando una nuova autorizzazione di firma).IPC Binder a
netddefiniti inINetd.aidl. Questa interfaccia è stata convertita in AIDL stabile ed è soggetta a test di conformità.