Network Stack é um módulo Mainline 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 os modelos de portal cativo em constante mudança, 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 Network Stack contém os seguintes componentes. Nos dispositivos que usam o módulo, esses serviços foram movidos para um processo diferente e são acessados por meio de uma interface AIDL estável.
serviços IP.
IpClient
(anteriormenteIpManager
) é um componente responsável pelo provisionamento e manutenção da camada IP. No Android 9, já era usado em processo cruzado por componentes como Bluetooth e em processo por componentes como Wi-Fi.DhcpClient
obtém endereços IP de servidores DHCP para que possam ser atribuídos a interfaces.NetworkMonitor. O componente
NetworkMonitor
testa a acessibilidade da Internet ao conectar-se a uma nova rede ou em caso de falhas de rede, ao detectar portais cativos e ao validar redes.Aplicativo de login do portal cativo. Um aplicativo pré-instalado encarregado de gerenciar o login em portais cativos. Este é um aplicativo separado desde o Android 5.0, mas interage com o
NetworkMonitor
para encaminhar algumas escolhas do usuário para o sistema.
caminhos afetados
Os caminhos movidos para o módulo Network Stack pelo refatorador estão listados abaixo.
serviços IP. Em
frameworks/base/services/net/java/android/net/
:-
apf
-
dhcp
-
ip
-
netlink
-
util
(parcialmente)
-
Detecção e login de 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 referem-se à localização dos arquivos antes de serem movidos para o Mainline. Arquivos em packages/modules/NetworkStack
e packages/modules/CaptivePortalLogin
fazem parte do módulo Mainline e não podem ser modificados.
Formato do pacote
O módulo Network Stack contém os seguintes componentes no formato APK:
- serviços IP
- Login do portal cativo (
com.google.android.captiveportallogin
)
Este módulo é acompanhado pelo módulo Network Stack Permission Config, que é um arquivo APK pré-instalado que define as permissões necessárias para os componentes Network Stack.
Dependências
O módulo Network Stack 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 possam ser acessadas pelo módulo Mainline, mas não por outros aplicativos privilegiados (por exemplo, usando uma nova permissão de assinatura).IPCs vinculados ao
netd
definido emINetd.aidl
. Esta interface foi convertida para AIDL estável e está sujeita a testes de conformidade.