O 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 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. 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(antigamenteIpManager) é um componente responsável pelo provisionamento e manutenção da camada de IP. No Android 9, ele já era usado entre processos por componentes como o Bluetooth e no processo por componentes como o Wi-Fi.DhcpClientrecebe endereços IP de servidores DHCP para que possam ser atribuídos a interfaces.NetworkMonitor. O componente
NetworkMonitortesta a acessibilidade à Internet ao se conectar a uma nova rede ou em caso de 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
NetworkMonitorpara encaminhar algumas opções do usuário ao sistema.
Caminhos afetados
Os caminhos movidos para o módulo Network Stack pela refatoração estão listados abaixo.
Serviços de IP. Em
frameworks/base/services/net/java/android/net/:apfdhcpipnetlinkutil(parcialmente)
Detecção e login do portal cativo. Em
frameworks/base/:core/java/android/net/captiveportal/services/core/java/com/android/server/connectivity/NetworkMonitor.javapackages/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 o Mainline.
Os 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 de IP
- Login do portal cativo (
com.google.android.captiveportallogin)
Esse módulo é acompanhado pelo módulo de configuração de permissão do Network Stack, que é um arquivo APK pré-instalado que define as permissões necessárias para os componentes do Network Stack.
Dependências
O módulo Network Stack depende do seguinte:
Métodos @hide privilegiados no servidor do sistema (por exemplo, em
IConnectivityManager.aidl). Essas APIs foram criadas como@SystemApie 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 do Binder para
netddefinidos emINetd.aidl. Essa interface foi convertida para AIDL estável e está sujeita a testes de conformidade.