>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
Kotlin

Como Parei de Lutar com as Configurações de DNS no Android

Situação familiar: você decide configurar um servidor DNS pessoal para se livrar dos anúncios em apps e navegador. Você vai às configurações do Android, se perde nas profundezas do menu de conexões, procura a opção "DNS Privado", digita o endereço do host... E isso toda vez que precisa verificar se algum site ou app "quebrou" por causa do DNS. No Android essa configuração está tão escondida, como se o Google estivesse protegendo intencionalmente as receitas de anúncios.

Recentemente encontrei um pequeno utilitário chamado adns do desenvolvedor eyalm2000. É uma ferramenta open-source que faz uma coisa simples: coloca o toggle de DNS do sistema direto na tela inicial ou na sombra de notificações.

Qual é o benefício

O problema com a maioria dos bloqueadores de anúncios no Android é que eles funcionam como um serviço VPN local ou como um serviço em segundo plano. Isso inevitavelmente "drena" a bateria, ocupa espaço nas notificações e às vezes entra em conflito com clientes VPN reais.

adns funciona de forma diferente. Ele não executa nenhum processo em segundo plano. Essencialmente, é uma GUI leve para a configuração de DNS Privado do sistema que apareceu no Android 9. O app simplesmente alterna uma variável global do sistema.

Para quem isso é útil:

  • Usuários do NextDNS (para eles é praticamente um paraíso com integração direta)
  • Quem usa AdGuard DNS, Cloudflare ou seus próprios servidores Pi-hole/AdGuard Home
  • Desenvolvedores que precisam trocar rapidamente o DNS para testar sites

Alguns cliques e internet limpa

A coisa mais conveniente do app é a integração com o NextDNS. Se você tem uma conta, pode fazer login diretamente no app, selecionar o perfil que precisa e alterar suas configurações em tempo real. Se você está usando um serviço diferente, basta especificar o hostname (por exemplo, dns.adguard.com).

Recursos que gostei:

  • Tile nas Configurações Rápidas. Agora você pode desativar o filtro em um segundo sem minimizar o app atual.
  • Sem consumo de bateria. O app "dorme" 99% do tempo e só acorda quando você pressiona o botão.
  • Design Material 3. Parece uma parte nativa do sistema, não um hack da era do Android Gingerbread.

Tela principal do ADNS Tela de configurações do ADNS Tela de configurações do ADNS

Como fazer funcionar

Como o Android protege suas configurações como a maçã do olho, nenhum app pode alterar o DNS do sistema assim tão facilmente. Para o adns funcionar, você precisa conceder a ele a permissão WRITE_SECURE_SETTINGS.

Existem dois caminhos. O mais fácil para quem não quer mexer com o console é usar o Shizuku. Esse app faz a ponte das permissões do ADB para outros programas. Se o Shizuku já estiver configurado, basta pressionar um botão na interface do adns.

A segunda opção é o ADB clássico. Conecte seu celular ao computador e execute o comando:

adb shell pm grant com.eyalm.adns android.permission.WRITE_SECURE_SETTINGS

Depois disso, a mágica começa a funcionar.

Lado técnico

O projeto é escrito em Kotlin usando Jetpack Compose. O código é surpreendentemente limpo e compacto. Se você faz desenvolvimento mobile, recomendo dar uma olhada no repositório — é um ótimo exemplo de como trabalhar com configurações de sistema Android usando métodos modernos. O app é leve e não exige permissões desnecessárias (exceto as necessárias para o DNS).

Vale a pena tentar

Se você usa ativamente DNS personalizado e está cansado de navegar pelos menus de configurações — com certeza sim. Esse é um daqueles casos em que um pequeno utilitário resolve um "ponto de dor" específico e faz isso de forma elegante.

O único ponto negativo que encontrei: a instalação exige uma configuração única com ADB ou Shizuku. Mas essa é a política de segurança do Android, o desenvolvedor não pode fazer nada sobre isso. Mas uma vez configurado — você esquece dos anúncios para sempre.

Você pode pegar o APK na seção Releases no GitHub ou no catálogo IzzyOnDroid.

Projetos relacionados