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 sobre as mudanças nos modelos desses portais. 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
(anteriormenteIpManager
) é 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
recebe endereços IP dos 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 de 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.
Serviços de IP. Em
frameworks/base/services/net/java/android/net/
:apf
dhcp
ip
netlink
util
(parcial)
Detecção e login do portal cativo. Em
frameworks/base/
:core/java/android/net/captiveportal/
services/core/java/com/android/server/connectivity/NetworkMonitor.java
packages/CaptivePortalLogin/*
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.
Formato do pacote
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 Pilha de rede depende do seguinte:
Métodos privilegiados de @hide no servidor do sistema (por exemplo, em
IConnectivityManager.aidl
). Essas APIs foram transformadas em@SystemApi
e protegidas adequadamente para que possam ser acessadas pelo módulo Mainline, mas não por outros apps privilegiados (por exemplo, usando uma nova permissão de assinatura).IPCs de vinculação para
netd
definidos emINetd.aidl
. Essa interface foi convertida em AIDL estável e está sujeita a testes de conformidade.