Network Stack es un módulo Mainline actualizable que 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 APF permiten que Android ahorre energía en Wi-Fi a medida que nuevos tipos de paquetes se vuelven comunes.
Componentes incluidos
El módulo Network Stack contiene los siguientes componentes. En los dispositivos que utilizan el módulo, estos servicios se trasladaron a un proceso diferente y se accede a ellos a través de una interfaz AIDL estable.
servicios de propiedad intelectual.
IpClient
(anteriormenteIpManager
) es un componente a cargo del aprovisionamiento y mantenimiento de la capa IP. En Android 9, ya se usaba en procesos cruzados por componentes como Bluetooth y en proceso por componentes como Wi-Fi.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. Una aplicación preinstalada encargada de administrar el inicio de sesión en 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.
Caminos afectados
Las rutas movidas al módulo Network Stack por el refactor se enumeran a continuación.
servicios de propiedad intelectual. En
frameworks/base/services/net/java/android/net/
:-
apf
-
dhcp
-
ip
-
netlink
-
util
(parcialmente)
-
Detección de portal cautivo e inicio de sesión. En
frameworks/base/
:-
core/java/android/net/captiveportal/
-
services/core/java/com/android/server/connectivity/NetworkMonitor.java
-
packages/CaptivePortalLogin/*
-
La nueva ubicación del código movido está en packages/modules/NetworkStack
, packages/modules/CaptivePortalLogin
y algunas otras ubicaciones compartidas. Las rutas anteriores se refieren a la ubicación de los archivos antes de moverlos allí para Mainline. Los archivos en packages/modules/NetworkStack
y packages/modules/CaptivePortalLogin
son parte del módulo Mainline y no se pueden modificar.
formato de paquete
El módulo Network Stack contiene los siguientes componentes en formato APK:
- servicios de PI
- Inicio de sesión del portal cautivo (
com.google.android.captiveportallogin
)
Este módulo va acompañado del módulo de configuración de permisos de Network Stack, que es un archivo APK preinstalado que define los permisos necesarios para los componentes de Network Stack.
dependencias
El módulo Network Stack depende de lo siguiente:
Métodos @hide privilegiados en el servidor del sistema (p. ej., en
IConnectivityManager.aidl
). Estas API se crearon como@SystemApi
y se protegieron adecuadamente para que sean accesibles para el módulo Mainline pero no para otras aplicaciones privilegiadas (p. ej., usando un nuevo permiso de firma).Binder IPCs to
netd
definido enINetd.aidl
. Esta interfaz se ha convertido a AIDL estable y está sujeta a pruebas de conformidad.