Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Resolución de DNS

El módulo de resolución de DNS proporciona protección al usuario para la interceptación de DNS y los ataques de actualización de la configuración y mejora el rendimiento de la red para las resoluciones de DNS. El módulo contiene el código que implementa el talón de resolución de DNS, lo que se traduce nombres como www.google.com a direcciones IP, como 2001: 1 :: db8. El talón de resolución de DNS realiza una copia de elementos de Java API como InetAddress # getAllByName y Red # getAllByName , así como funciones nativas de red , e implementos de envío y recepción de consultas DNS y almacenamiento en caché de los resultados.

Cambios en Android 10

En dispositivos con Android 9 e inferior, el código de resolución de DNS se propaga a través biónica y netd . Búsquedas DNS están centralizados en la netd daemon para permitir el almacenamiento en caché de todo el sistema, mientras que las aplicaciones llaman funciones (tales como getaddrinfo ) en Bionic. La consulta se envía a través de un socket UNIX a /dev/socket/dnsproxyd a la netd demonio, que analiza la solicitud y llamadas getaddrinfo de nuevo para las búsquedas DNS tema, a continuación, almacena en caché los resultados para que otras aplicaciones puedan usarlos. La implementación de resolución de DNS estaba contenida principalmente en bionic/libc/dns/ y en parte en system/netd/server/dns .

Android 10 se mueve el código de resolución de DNS a system/netd/resolv, lo convierte a C ++, a continuación, moderniza y refactors el código. El código en Bionic sigue existiendo por razones de compatibilidad de aplicaciones, pero el sistema ya no lo llama. Estas rutas de origen se ven afectadas por la refactorización:

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

Formato y dependencias

El módulo de resolución de DNS se entrega como un APEX archivo y está vinculado dinámicamente por netd ; sin embargo, netd no es una dependencia como el módulo sirve el socket local /dev/socket/dnsproxyd directamente. El punto final de la carpeta por la configuración de resolución fue trasladado de netd a la resolución, lo que significa que el servicio del sistema puede llamar directamente en el dispositivo de resolución sin pasar por netd .

El módulo de resolución de DNS depende de libc (biónica) y estáticamente vincula sus dependencias; no se requieren otras bibliotecas.