A partir de 27 de março de 2025, recomendamos usar android-latest-release
em vez de aosp-main
para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Pilha de rede
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A pilha de rede é um módulo principal atualizável que garante que o Android possa
se adaptar aos padrões de rede em evolução e permite a interoperabilidade com novas
implementações. Por exemplo, as atualizações na detecção de portal cativo e no código de login
permitem que o Android fique atualizado com a mudança de modelos de portal cativo, e
as atualizações no APF permitem que o Android economize energia no Wi-Fi à medida que novos tipos de pacotes
se tornam comuns.
Componentes incluídos
O módulo da pilha de rede contém os seguintes componentes. Em dispositivos que usam o
módulo, esses serviços foram movidos para um processo diferente e são acessados
por uma interface AIDL estável.
Serviços de IP. IpClient
(anteriormente IpManager
) é um componente responsável pelo
provisionamento e pela manutenção da camada IP. No Android 9, ele já era usado
entre processos por componentes como Bluetooth e em processo por componentes
como Wi-Fi. DhcpClient
obtém endereços IP de servidores DHCP para que eles possam
ser atribuídos a interfaces.
NetworkMonitor. O componente NetworkMonitor
testa a acessibilidade
da Internet ao se conectar a uma nova rede ou em falhas de rede, ao
detectar portais cativos e ao validar redes.
App de login do portal cativo: um app pré-instalado responsável por gerenciar o login
em portais cativos. Esse é um app separado desde o Android 5.0, mas ele
interage com NetworkMonitor
para encaminhar algumas escolhas do usuário ao sistema.
Caminhos afetados
Os caminhos movidos para o módulo da pilha de rede pelo refatoramento estão listados abaixo.
O novo local do código movido está em packages/modules/NetworkStack
,
packages/modules/CaptivePortalLogin
e alguns outros locais compartilhados. Os caminhos
acima se referem ao local dos arquivos antes de serem movidos para a Mainline.
Os arquivos em packages/modules/NetworkStack
e
packages/modules/CaptivePortalLogin
fazem parte do módulo principal e não podem
ser modificados.
O módulo da pilha de rede contém os seguintes componentes no formato APK:
- Serviços de IP
- Login do portal cativo (
com.google.android.captiveportallogin
)
Esse módulo é acompanhado pelo módulo de configuração de permissões da pilha de rede,
que é um arquivo APK pré-instalado que define as permissões necessárias para os
componentes da pilha de rede.
Dependências
O módulo da pilha de rede depende do seguinte:
Métodos privilegiados @hide no servidor do sistema (por exemplo, em
IConnectivityManager.aidl
). Essas APIs foram feitas @SystemApi
e
protegidas adequadamente para que sejam acessíveis ao módulo Mainline, mas
não a outros apps privilegiados (por exemplo, usando uma nova permissão de assinatura).
IPCs de vinculação para netd
definidos em
INetd.aidl
.
Essa interface foi convertida em AIDL estável e está sujeita a testes de conformidade.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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."]]