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/ :
|
---|---|
Android 10 e superior | packages/modules/NetworkStack |
Caminhos de refatoração de login do portal cativo
Android 9 e inferior | Em frameworks/base/ :
|
---|---|
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, emIConnectivityManager.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 emINetd.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.