Redes

Android 10 incluye los siguientes módulos de red:

  • El módulo Componentes de red proporciona servicios de IP comunes, monitoreo de conectividad de red y detección de portal de inicio de sesión cautivo.
  • El módulo Configuración de permisos de pila de red define un permiso que permite a los módulos realizar tareas relacionadas con la red.

Módulo de componentes de red

El módulo de componentes de red garantiza que Android pueda adaptarse a los estándares de red en evolución y permite la interoperabilidad con nuevas implementaciones. Por ejemplo, las actualizaciones de la detección de portales cautivos y el código de inicio de sesión permiten que Android se mantenga actualizado con los modelos cambiantes de portales cautivos, y las actualizaciones de Advanced Policy Firewall (APF) permiten que Android ahorre energía en Wi-Fi a medida que nuevos tipos de paquetes se vuelven comunes.

Cambios en Android 10

El módulo Componentes de red contiene los siguientes componentes.

  • servicios de propiedad intelectual. El componente IpClient (anteriormente IpManager) maneja el aprovisionamiento y el mantenimiento de la capa IP. En Android 9, se utilizó en procesos cruzados por componentes como Bluetooth y en proceso por componentes como Wi-Fi. El componente DhcpClient obtiene direcciones IP de los servidores DHCP para que puedan asignarse a las interfaces.
  • Monitor de red. El componente NetworkMonitor prueba la accesibilidad a Internet cuando se conecta a una nueva red o cuando falla la red, cuando detecta portales cautivos y cuando valida redes.
  • Aplicación de inicio de sesión del portal cautivo. La aplicación de inicio de sesión del portal cautivo es una aplicación preinstalada a cargo de administrar el inicio de sesión en los portales cautivos. Esta ha sido una aplicación separada desde Android 5.0, pero interactúa con NetworkMonitor para enviar algunas opciones de usuario al sistema.

En los dispositivos que utilizan el módulo Componentes de red, los servicios anteriores se refactorizan a un proceso diferente y se accede a ellos mediante interfaces AIDL estables . Las rutas de refactorización se muestran en las siguientes tablas.

Rutas de refactorización de servicios IP

Android 9 y versiones anteriores En frameworks/base/services/net/java/android/net/ :
  • apf
  • dhcp
  • ip
  • netlink
  • util (parcialmente)
Android 10 y superior packages/modules/NetworkStack

Rutas de refactorización de inicio de sesión de portal cautivo

Android 9 y versiones anteriores En frameworks/base/ :
  • core/java/android/net/captiveportal/
  • services/core/java/com/android/server/connectivity/NetworkMonitor.java
  • packages/CaptivePortalLogin/* (donde * = comodín)
Android 10 y superior packages/modules/CaptivePortalLogin (y algunas otras ubicaciones compartidas)

Formato y dependencias

El módulo de componentes de red se entrega como tres APK: uno para servicios de IP, uno para inicio de sesión en portal cautivo y otro para configuración de permisos de pila de red .

El módulo Componentes de red depende de lo siguiente:

  • Métodos @hide privilegiados en el servidor del sistema (por ejemplo, en IConnectivityManager.aidl ). Estas API se han anotado con @SystemApi y se han protegido adecuadamente para que sean accesibles para el módulo, pero no para otras aplicaciones privilegiadas (por ejemplo, mediante un nuevo permiso de firma).
  • Binder IPCs to netd definido en INetd.aidl . Esta interfaz se ha convertido a AIDL estable y está sujeta a pruebas de conformidad.

Módulo de configuración de permisos de pila de red

El módulo de configuración de permisos de la pila de red no contiene ningún código, sino que define un permiso destinado a ser utilizado por los módulos de inicio de sesión del portal cautivo y de la pila de red. El sistema permite que los módulos con este permiso realicen tareas de configuración de red relacionadas en el dispositivo.