Rete

Android 10 include i seguenti moduli di rete:

  • Il modulo Networking Components fornisce servizi IP comuni, monitoraggio della connettività di rete e rilevamento del captive login portal.
  • Il modulo Network Stack Permission Config definisce un'autorizzazione che consente ai moduli di eseguire attività relative alla rete.

Modulo Componenti di rete

Il modulo Networking Components 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 del captive portal e al codice di accesso consentono ad Android di rimanere aggiornato con i cambiamenti dei modelli di captive portal e gli aggiornamenti di Advanced Policy Firewall (APF) consentono ad Android di risparmiare energia sul Wi-Fi man mano che nuovi tipi di pacchetti diventano comuni.

Modifiche ad Android 10

Il modulo Componenti di rete contiene i seguenti componenti.

  • Servizi IP. Il componente IpClient (ex IpManager) gestisce il provisioning e la manutenzione del livello IP. In Android 9, è stato utilizzato in modo incrociato da componenti come Bluetooth e in-process da componenti come Wi-Fi. Il componente DhcpClient ottiene gli indirizzi IP dai server DHCP in modo che possano essere assegnati alle interfacce.
  • Monitor di rete. 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 Captive Portal. L'app di accesso al Captive Portal è un'app preinstallata incaricata di gestire l'accesso ai Captive Portal. Questa è stata un'app separata da Android 5.0, ma interagisce con NetworkMonitor per inoltrare alcune scelte dell'utente al sistema.

Sui dispositivi che utilizzano il modulo Componenti di rete, i servizi di cui sopra vengono refactoring in un processo diverso e si accede utilizzando interfacce AIDL stabili . I percorsi di refactoring sono mostrati nelle tabelle seguenti.

Percorsi di refactoring dei servizi IP

Android 9 e precedenti In frameworks/base/services/net/java/android/net/ :
  • apf
  • dhcp
  • ip
  • netlink
  • util (in parte)
Android 10 e versioni successive packages/modules/NetworkStack

Percorsi di refactoring di accesso di Captive Portal

Android 9 e precedenti In frameworks/base/ :
  • core/java/android/net/captiveportal/
  • services/core/java/com/android/server/connectivity/NetworkMonitor.java
  • packages/CaptivePortalLogin/* (dove * = carattere jolly)
Android 10 e versioni successive packages/modules/CaptivePortalLogin (e alcune altre posizioni condivise)

Formato e dipendenze

Il modulo Networking Components viene fornito come tre APK: uno per i servizi IP, uno per l'accesso al captive portal e uno per Network Stack Permission Config .

Il modulo Componenti di rete dipende da quanto segue:

  • Privilegiare i metodi @hide nel server di sistema (ad esempio, in IConnectivityManager.aidl ). Queste API sono state annotate con @SystemApi e adeguatamente protette in modo che siano accessibili al modulo ma non ad altre app privilegiate (ad esempio, utilizzando una nuova autorizzazione di firma).
  • Raccogliere gli IPC in netd definiti in INetd.aidl . Questa interfaccia è stata convertita in AIDL stabile ed è soggetta a test di conformità.

Modulo di configurazione dell'autorizzazione dello stack di rete

Il modulo Network Stack Permission Config non contiene codice ma definisce invece un'autorizzazione destinata all'uso da parte dei moduli Network Stack e Captive Portal Login. Il sistema consente ai moduli a cui è stata assegnata questa autorizzazione di eseguire attività di configurazione di rete correlate sul dispositivo.