Rete

Android 10 include i seguenti moduli di rete:

  • Il modulo Componenti di rete fornisce servizi IP comuni, monitoraggio della connettività di rete e rilevamento del portale di accesso captive.
  • 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 la modifica dei modelli di captive portal e gli aggiornamenti a Advanced Policy Firewall (APF) consentono ad Android di risparmiare energia sul Wi-Fi man mano che nuovi tipi di pacchetti diventano comuni.

Modifiche in Android 10

Il modulo Componenti di rete contiene i seguenti componenti.

  • servizi IP. Il componente IpClient (precedentemente IpManager) gestisce il provisioning e la manutenzione del livello IP. In Android 9, è stato utilizzato in processi incrociati 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.
  • Network Monitor. Il componente NetworkMonitor verifica la raggiungibilità di Internet durante la connessione a una nuova rete o in caso di guasti 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 sui captive portal. Questa è un'app separata da Android 5.0, ma interagisce con NetworkMonitor per inoltrare alcune scelte dell'utente al sistema.

Sui dispositivi utilizzando modulo Rete Componenti, i servizi di cui sopra sono riscritta ad un processo differente e sono accessibili mediante interfacce stabile AIDL . I percorsi di refactoring sono mostrati nelle tabelle seguenti.

Percorsi di refactoring dei servizi IP

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

Percorsi di refactoring di accesso al Captive Portal

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

Formato e dipendenze

Il modulo di Rete Componenti viene fornito come tre APK: uno per i servizi IP, uno per prigioniero login portale, e uno per la rete Stack Permission Config .

Il modulo Componenti di rete dipende da quanto segue:

  • Privilegiati @hide metodi nel server del sistema (ad esempio, in IConnectivityManager.aidl ). Queste API sono stati annotati con @SystemApi e opportunamente protetti in modo che siano accessibili al modulo, ma non altre applicazioni privilegiate (ad esempio, utilizzando una nuova autorizzazione di firma).
  • Binder IPC a netd definito in INetd.aidl . Questa interfaccia è stata convertita in AIDL stabile ed è soggetta a test di conformità.

Modulo di configurazione dei permessi 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 concessa questa autorizzazione di eseguire attività di configurazione di rete correlate sul dispositivo.