Skip to content
This repository has been archived by the owner on Apr 18, 2019. It is now read-only.

laggardkernel/dnscrypt-proxy-magisk

Repository files navigation

Obsolete repo. Use the other one from official Magisk-Modules-Repo instead.

DNSCrypt for Android

DNSCrypt

DNSCrypt is a protocol that authenticates communications between a DNS client and a DNS resolver. It prevents DNS spoofing. It uses cryptographic signatures to verify that responses originate from the chosen DNS resolver and haven't been tampered with.

It is an open specification, with free and opensource reference implementations, and it is not affiliated with any company nor organization.

Free, DNSCrypt-enabled resolvers are available all over the world

A couple companies, organizations and individuals are operating public recursive DNS servers supporting the DNSCrypt protocol, so that all you need to run is a client.

A constantly updated list of open DNSCrypt resolvers can be downloaded to replace the default CSV file shipped with the dnscrypt-proxy client.

If you are running your own public DNS resolver in order to help make the Internet a more secure place, please submit a pull request to have your resolver added to the list of public DNS resolvers.

Installing a DNSCrypt client

DNSCrypt itself is not a product, but a protocol that anyone can implement. Portable implementations are also available, on top on which graphical user interfaces and convenient tools have been built.

Choose your platform to discover some of the available options: Windows - macOS - Linux / BSD - Android - iOS or run the software on a router.

Firewall setup: although some resolvers may prefer a different port, the default port used by the DNSCrypt protocol is 443. Outgoing queries to this port on both TCP and UDP should be allowed by your firewall.

DNSCrypt for Android

Running DNSCrypt on Android currently requires a rooted device. If you don't know how to root an Android device, the xda-developers forum is a good place to start.

  • Start by downloading a precompiled dnscrypt-proxy package for Android.
  • If you want to change the DNSCrypt resolver to use, unzip the archive, edit the RESOLVER_NAME variable in system/etc/init.d/99dnscrypt. Keep the content as a ZIP file, with the original structure.
  • Upload the ZIP file to the device, into /sdcard or any location you can write to.
  • Make sure that you have a custom recovery such as TWRP or CWM. The easiest way is to download and install TWRP Manager from the Google Play Store. Reboot in recovery mode and install the ZIP file.
  • Reboot.
  • Dowload and install Universal Init.d from the Google Play Store. Follow the instructions until you see Your Kernel Has init.d Support.
  • The DNSCrypt proxy should be running at this point, but your device may still use the previous DNS settings. Download and install DNS Changer fron the Google Play Store. In order to actually use DNSCrypt, enter 127.0.0.1 as the primary DNS resolver. In order to stop using DNSCrypt, leave this field empty.
  • DNS changes may not be visible immediately. Android has its own DNS cache, and web browsers such as Chrome have another layer of DNS caching. In order to clear Chrome's DNS cache, enter chrome://net-internals/#dns in the URL bar, and press Clear host cache.

Relevant discussions:

The dnscrypt-proxy source code can be cross-compiled for Android using the provided dist-build/android*.sh scripts.

It might also soon be part of the Cyanogen Mod.

Magisk Version Installation

Support

Credit