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 rilevamento dei captive portal e al codice di accesso consentono ad Android di rimanere al passo con i modelli di captive portal in continua evoluzione e 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 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 precedenza- IpManager) è un componente responsabile di provisioning e manutenzione del livello IP. In Android 9, veniva già utilizzato in modo multiprocesso da componenti come il Bluetooth e in modo 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 - NetworkMonitoresegue test di raggiungibilità di internet quando ci si connette a una nuova rete o in caso di errori di rete, quando rileva captive portal e quando convalida le reti.
- App di accesso al captive portal.Un'app preinstallata incaricata di gestire l'accesso sui 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
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 di captive portal e accesso. 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 in altre posizioni condivise. I percorsi
sopra indicati si riferiscono alla posizione dei file prima di essere spostati 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 a captive portal (com.google.android.captiveportallogin)
Questo modulo è accompagnato dal modulo di configurazione delle autorizzazioni dello stack di rete, che è un file APK preinstallato che definisce le autorizzazioni necessarie per i componenti dello stack di rete.
Dipendenze
Il modulo Network Stack dipende da quanto segue:
- Metodi @hide privilegiati 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 privilegiate (ad es. utilizzando una nuova autorizzazione di firma).
- IPC Binder per - netddefiniti in- INetd.aidl. Questa interfaccia è stata convertita in AIDL stabile ed è soggetta a test di conformità.
