Android 9 and onward supports "DNS over TLS".
By default, DNS is sent over a plaintext connection. DNS over TLS is one way to send DNS queries over an encrypted connection.
This feature can normally be found under the advanced network settings but unfortunately, this option can nowhere to be found on MIUI 10 and 11, which is the skin on top of Android for Xiaomi phones. It is hidden instead. At least on my phone, the Xiaomi Pocophone F1.
There is a method to enable it by using a 3rd party application to make the hidden feature show up. Allowing you to enable DNS over TLS and configure it.
- Download and install the app "QuickShortcutMaker" by sika524.
- Open the app and under the tab "Activities" search for "more".
- Click on "com.android.settings.Settings$NetworkDashboardActivity".
- Click on "Try" to open up the hidden settings screen to configure private DNS.
- Click on "Private DNS" and than "Private DNS provider hostname".
- Enter the DNS over TLS provider hostname you wish to use and click "Save".
Do not use dns.adguard.me because it is only accessible by me.
Popular public DNS over TLS providers which you can use: