O Android 10 inclui os seguintes módulos de rede:
- O módulo Networking Components fornece serviços de 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 Networking Components 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, atualizações para detecção de portal cativo e código de login permitem que o Android fique atualizado com a mudança de modelos de portal cativo, e atualizações para Advanced Policy Firewall (APF) permitem que Android economize energia em Wi-Fi conforme 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 de IP. O componente IpClient (anteriormente IpManager) lida com o provisionamento e a manutenção da camada IP. No Android 9, era 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.
- NetworkMonitor. 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 Captive é um aplicativo pré-instalado encarregado de gerenciar o login em portais cativos. Este tem sido um aplicativo separado desde o Android 5.0, mas interage com o NetworkMonitor para encaminhar algumas escolhas do usuário para o 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 por meio de 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 Networking Components é entregue como três APKs: um para serviços IP, um para login de portal cativo e um para Network Stack Permission Config .
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 de forma adequada para que sejam acessíveis ao módulo, mas não a outros aplicativos privilegiados (por exemplo, usando uma nova permissão de assinatura). - Binder IPCs para
netd
definido 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 nenhum 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.