O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Resolvedor DNS

O módulo DNS Resolver fornece proteção ao usuário para interceptação de DNS e ataques de atualização de configuração e desempenho de rede aprimorado para resoluções de DNS. O módulo contém o código que implementa o rascunho resolvedor DNS, o que se traduz nomes como www.google.com para endereços IP, tais como 2001: DB8 :: 1. O rascunho resolvedor DNS apoia elementos Java API, como InetAddress # getAllByName e de rede # getAllByName , bem como funções de rede nativas e implementos envio e recebimento de consultas DNS e cache os resultados.

Mudanças no Android 10

Em dispositivos que executam o Android 9 e inferior, o código resolvedor DNS está espalhada por Bionic e netd . Pesquisas de DNS são centralizados no netd daemon para permitir o armazenamento em cache de todo o sistema, enquanto aplicações chamar funções (tais como getaddrinfo ) em Bionic. A consulta é enviada através de uma UNIX socket para /dev/socket/dnsproxyd ao netd daemon, que analisa o pedido e chamadas getaddrinfo novamente para pesquisas problema de DNS, em seguida, armazena em cache os resultados para que outros aplicativos podem usá-los. A implementação resolvedor DNS foi principalmente contida no bionic/libc/dns/ e em parte system/netd/server/dns .

Android 10 move-se o código de resolução de DNS de system/netd/resolv, converte-lo a C ++, em seguida, moderniza e refatora o código. O código no Bionic continua existindo por motivos de compatibilidade de aplicativos, mas não é mais chamado pelo sistema. Esses caminhos de origem são afetados pela refatoração:

  • bionic/libc/dns
  • system/netd/client
  • system/netd/server/dns
  • system/netd/server/DnsProxyListener.*
  • system/netd/resolv

Formato e dependências

O módulo de DNS Resolver é entregue como um APEX arquivo e é dinamicamente ligados por netd ; no entanto, netd não é uma dependência como o módulo serve o local socket /dev/socket/dnsproxyd directamente. O endpoint Binder para a configuração do resolvedor foi transferida de netd para o resolvedor, o que significa que o serviço de sistema pode ligar diretamente para o módulo de resolver, sem passar por netd .

O módulo de resolução de DNS depende libc (Bionic) e estaticamente liga suas dependências; nenhuma outra biblioteca é necessária.