A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release
en lugar de aosp-main
para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
Pila de red
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
La pila de red es un módulo de Mainline actualizable que garantiza que Android se pueda adaptar a los estándares de red en evolución y permite la interoperabilidad con implementaciones nuevas. Por ejemplo, las actualizaciones de la detección de portales cautivos y el código de acceso permiten que Android se mantenga al día con los modelos de portales cautivos cambiantes, y las actualizaciones de APF permiten que Android ahorre energía en Wi-Fi a medida que se vuelven comunes nuevos tipos de paquetes.
Componentes incluidos
El módulo de pila de red contiene los siguientes componentes. En los dispositivos que usan 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 IP IpClient
(antes IpManager
) es un componente a cargo del aprovisionamiento y el mantenimiento de la capa IP. En Android 9, ya se usaba en varios procesos por componentes como Bluetooth y en el proceso por componentes como Wi-Fi. DhcpClient
obtiene direcciones IP de los servidores DHCP para que se puedan asignar a interfaces.
NetworkMonitor. El componente NetworkMonitor
prueba la accesibilidad a Internet cuando se conecta a una red nueva o cuando se producen fallas en la red, cuando se detectan portales cautivos y cuando se validan las redes.
App de acceso al portal cautivo: Es una app preinstalada a cargo de administrar el acceso en los portales cautivos. Esta es una app independiente desde Android 5.0, pero interactúa con NetworkMonitor
para reenviar algunas opciones del usuario al sistema.
Rutas afectadas
A continuación, se enumeran las rutas que el refactor trasladó al módulo de pila de red.
La nueva ubicación del código trasladado está en packages/modules/NetworkStack
, packages/modules/CaptivePortalLogin
y algunas otras ubicaciones compartidas. Las rutas de acceso anteriores hacen referencia a la ubicación de los archivos antes de que se muevan allí para Mainline.
Los archivos de packages/modules/NetworkStack
y packages/modules/CaptivePortalLogin
forman parte del módulo Mainline y no se pueden modificar.
El módulo de pila de red contiene los siguientes componentes en formato APK:
- Servicios de IP
- Acceso al portal cautivo (
com.google.android.captiveportallogin
)
Este módulo se acompaña del módulo de configuración de permisos de la pila de red, que es un archivo APK preinstalado que define los permisos necesarios para los componentes de la pila de red.
Dependencias
El módulo de pila de red depende de lo siguiente:
Métodos @hide con privilegios en el servidor del sistema (p.ej., en IConnectivityManager.aidl
). Estas APIs se convirtieron en @SystemApi
y se protegieron de manera adecuada para que el módulo Mainline pueda acceder a ellas, pero no otras apps con privilegios (p.ej., con un nuevo permiso de firma).
IPC de Binder a netd
definido en INetd.aidl
.
Esta interfaz se convirtió en AIDL estable y está sujeta a pruebas de conformidad.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-07-27 (UTC)"],[],[],null,["# Network Stack is an updatable Mainline module that ensures that Android can\nadapt to evolving network standards and allows for interoperability with new\nimplementations. For example, updates to captive portal detection and login code\nallow Android to stay up to date with changing captive portal models, and\nupdates to APF allow Android to save power on Wi-Fi as new types of packets\nbecome common.\n\nIncluded components\n-------------------\n\nThe Network Stack module contains the following components. On devices using the\nmodule, these services were moved to a different process and are accessed\nthrough a stable AIDL interface.\n\n- **IP services.** `IpClient` (formerly `IpManager`) is a component in charge of\n IP layer provisioning and maintenance. In Android 9, it was already used\n cross-process by components such as Bluetooth, and in-process by components\n such as Wi-Fi. `DhcpClient` obtains IP addresses from DHCP servers so they can\n be assigned to interfaces.\n\n- **NetworkMonitor.** The `NetworkMonitor` component tests for internet\n reachability when connecting to a new network or upon network failures, when\n detecting captive portals, and when validating networks.\n\n- **Captive portal login app.** A preinstalled app in charge of managing login\n on captive portals. This has been a separate app since Android 5.0, but it\n interacts with `NetworkMonitor` to forward some user choices to the system.\n\nAffected paths\n--------------\n\nThe paths moved to the Network Stack module by the refactor are listed below.\n\n- **IP services.** In `frameworks/base/services/net/java/android/net/`:\n\n - `apf`\n - `dhcp`\n - `ip`\n - `netlink`\n - `util` (partly)\n- **Captive portal detection and login.** In `frameworks/base/`:\n\n - `core/java/android/net/captiveportal/`\n - `services/core/java/com/android/server/connectivity/NetworkMonitor.java`\n - `packages/CaptivePortalLogin/*`\n\nThe new location of the moved code is in `packages/modules/NetworkStack`,\n`packages/modules/CaptivePortalLogin` and some other shared locations. The above\npaths refer to the location of files before being moved there for Mainline.\nFiles in `packages/modules/NetworkStack` and\n`packages/modules/CaptivePortalLogin` are part of the Mainline module and cannot\nbe modified.\n\nPackage format\n--------------\n\nThe Network Stack module contains the following components in APK format:\n\n- IP services\n- Captive portal login (`com.google.android.captiveportallogin`)\n\nThis module is accompanied by the Network Stack Permission Config module,\nwhich is a pre-installed APK file that defines the necessary permissions for the\nNetwork Stack components.\n\nDependencies\n------------\n\nThe Network Stack module depends on the following:\n\n- Privileged @hide methods in the system server (e.g., in\n `IConnectivityManager.aidl`). These APIs have been made `@SystemApi` and\n appropriately protected so that they are accessible to the Mainline module but\n not other privileged apps (e.g., using a new signature permission).\n\n- Binder IPCs to `netd` defined in\n [`INetd.aidl`](https://android.googlesource.com/platform/system/netd/+/android16-release/server/binder/android/net/INetd.aidl).\n This interface has been converted to stable AIDL and is subject to conformance\n tests."]]