Network Stack è un modulo Mainline aggiornabile che permette ad Android adattarsi agli standard di rete in continua evoluzione e consentire l'interoperabilità con nuovi implementazioni. Ad esempio, aggiornamenti al rilevamento del captive portal e al codice di accesso consentono ad Android di restare al passo con i modelli mutevoli di captive portal e aggiornamenti all'APF consentono ad Android di risparmiare energia sul Wi-Fi come nuovi tipi di pacchetti diventano comuni.
Componenti inclusi
Il modulo Network Stack contiene i seguenti componenti. Sui dispositivi che utilizzano questi servizi sono stati spostati in un processo diverso e vi si accede 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 cross-process da componenti come Bluetooth e processo in-process da componenti come il Wi-Fi.DhcpClient
ottiene gli indirizzi IP dai server DHCP in modo che possano essere assegnati alle interfacce.NetworkMonitor. Il componente
NetworkMonitor
testa la raggiungibilità di internet quando ci si connette a una nuova rete o in caso di errori di rete, quando vengono rilevati captive portal e quando si convalidano le reti.App di accesso a captive portal. Un'app preinstallata incaricata di gestire l'accesso ai captive portal. Si tratta di 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 a 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 si trova in packages/modules/NetworkStack
,
packages/modules/CaptivePortalLogin
e alcune altre posizioni condivise. Quanto riportato sopra
i percorsi si riferiscono alla posizione dei file prima di essere spostati lì per Mainline.
File in packages/modules/NetworkStack
e
packages/modules/CaptivePortalLogin
fanno parte del modulo Mainline e non possono
possono essere modificate.
Formato del pacchetto
Il modulo Stack di rete contiene i seguenti componenti in formato APK:
- Servizi IP
- Accesso al 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 con privilegi nel server di sistema (ad es.
IConnectivityManager.aidl
). Queste API sono state create@SystemApi
opportunamente protetti in modo che siano accessibili al modulo Mainline, non altre app con privilegi (ad esempio, l'utilizzo di una nuova autorizzazione di firma).Binder IPC a
netd
definito inINetd.aidl
. Questa interfaccia è stata convertita in AIDL stabile ed è soggetta a test di conformità.