Rede

O Android 10 inclui os seguintes módulos de rede:

  • O módulo Componentes de Rede fornece serviços IP comuns, monitoramento de conectividade de rede e detecção de portal de login cativo.
  • O módulo Network Stack Permission Config define uma permissão que permite que os módulos executem tarefas relacionadas à rede.

Módulo de componentes de rede

O módulo Componentes de rede 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 do portal cativo e no código de login permitem que o Android fique atualizado com as mudanças nos modelos de portal cativo, e as atualizações no Firewall de política avançada (APF) permitem que o Android economize energia no Wi-Fi à medida que novos tipos de pacotes se tornam comuns.

Mudanças no Android 10

O módulo Componentes de Rede contém os seguintes componentes.

  • serviços IP. O componente IpClient (anteriormente IpManager) lida com o provisionamento e a manutenção da camada IP. No Android 9, foi usado em processo cruzado por componentes como Bluetooth e em processo por componentes como Wi-Fi. O componente DhcpClient obtém endereços IP de servidores DHCP para que possam ser atribuídos a interfaces.
  • Monitor de rede. O componente NetworkMonitor testa a acessibilidade da Internet ao se conectar 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. O 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 opções do usuário ao sistema.

Em dispositivos que usam o módulo Componentes de Rede, os serviços acima são refatorados para um processo diferente e são acessados ​​usando interfaces AIDL estáveis . Os caminhos de refatoração são mostrados nas tabelas a seguir.

Caminhos de refatoração de serviços IP

Android 9 e inferior Em frameworks/base/services/net/java/android/net/ :
  • apf
  • dhcp
  • ip
  • netlink
  • util (parcialmente)
Android 10 e superior packages/modules/NetworkStack

Caminhos de refatoração de login do portal cativo

Android 9 e inferior Em frameworks/base/ :
  • core/java/android/net/captiveportal/
  • services/core/java/com/android/server/connectivity/NetworkMonitor.java
  • packages/CaptivePortalLogin/* (onde * = curinga)
Android 10 e superior packages/modules/CaptivePortalLogin (e alguns outros locais compartilhados)

Formato e dependências

O módulo Componentes de Rede é fornecido como três APKs: um para serviços IP, um para login do portal cativo e um para Configuração de Permissão de Pilha de Rede .

O módulo Componentes de Rede depende do seguinte:

  • Métodos @hide privilegiados no servidor do sistema (por exemplo, em IConnectivityManager.aidl ). Essas APIs foram anotadas com @SystemApi e protegidas adequadamente para que sejam acessíveis ao módulo, mas não a outros aplicativos privilegiados (por exemplo, usando uma nova permissão de assinatura).
  • IPCs de fichário para netd definidos em INetd.aidl . Esta interface foi convertida em AIDL estável e está sujeita a testes de conformidade.

Módulo de configuração de permissão de pilha de rede

O módulo Network Stack Permission Config não contém código, mas define uma permissão destinada ao uso pelos módulos Network Stack e Captive Portal Login. O sistema permite que os módulos com essa permissão executem tarefas de configuração de rede relacionadas no dispositivo.