ShizuStore

Private DNS Quick Toggle

karasevm

1.11.0 · GitHub

Download APK
Quick settings Android 9+ 1 year ago MIT
25 ShizuStore
51.9k GitHub
1k Stars
4 MB Size

More about this app

Quick settings tile to switch active private DNS server

GitHub Downloads (all assets, all releases) GitHub Release IzzyOnDroid Translation status

Private DNS Quick Toggle

A quick settings tile to switch your private dns provider. Supports any number of providers. Makes it easy to turn adblocking dns servers on or off with just a single tap.

Private DNS app screenshot

Installation

IzzyOnDroid (Recommended, will enable auto-updates on Android 12+)

  1. Install an F-droid client such as Droidify or the official F-Droid client
  2. Verify that IzzyOnDroid repo is added and enabled
  3. Search for the full app name "Private DNS Quick Toggle" and install it

GitHub Releases

Get the latest apk on the releases page

Activation

To change the system DNS options the app requires android.permission.WRITE_SECURE_SETTINGS permission. There are multiple ways to provide it.

Automatic (Shizuku)

  1. Install and start Shizuku.
  2. Start the app and allow Shizuku access when prompted.

Manual

For the app to work properly you'll need to provide it permissions via ADB:

  1. Get to your PC and download platform tools from google here.
  2. Extract the tools, and open terminal in the same directory (Windows guide, macos guide).
  3. Turn on USB Debugging on your phone (This may require different steps, for Xiaomi you also have to enable USB Debugging (Security settings), but generally this video guide should work on most phones)
  4. Connect your phone to your PC
  5. Run this command in the terminal
./adb shell pm grant ru.karasevm.privatednstoggle android.permission.WRITE_SECURE_SETTINGS
  1. That's it, you should have the app installed.

Contributing

Translation

The easiest way to contribute would be to submit a translation to your language. Thanks to Weblate gratis hosting for open-source projects you can do it without any programming knowledge on their website.

Translation status

Translation status

Code

If you want to contribute code please try to adhere to the following guidelines:

  • Include javadoc comments for all the public methods you add
  • Keep the code neatly formatted, you can you the built-in Android Studio formatter
  • Please describe what your code does and how does it do that when sending a PR
  • Before sending a PR please test your change on the oldest and latest supported Android versions (9 and 14 at the time of writing)
Close

How Shizuku is used

Can switch private DNS mode and server through `Shizuku`

This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.

How this app uses Shizuku

Shizuku is used to change the system private DNS configuration.

  • Switch DNS mode: users can switch the system private DNS mode between off, automatic and private hostname from the quick settings tile, shortcuts or in-app dialog, applied through Shizuku.
  • Change DNS server: users can cycle through saved DNS hostnames and apply the selected hostname as the active system private DNS provider, applied through Shizuku.

Android APIs or commands used

  • IPermissionManager.grantRuntimePermission
  • IPackageManager.grantRuntimePermission
  • Settings.Global.putString
Close

Changelog

What's new for version 1.11.0

What's Changed

Shortcuts feature

The app now features 2 shortcuts you can use. image Next server/mode does exactly the same action as the quick toggle itself
Switch mode adds a new ability to switch only the mode (Off, Auto, Private) without switching the active server. This allows you to quickly toggle the private DNS feature without cycling through all the added servers. Thanks to @InfiniteCoder06 for laying the groundwork for this feature. As of now the shortcuts cannot be called from third party software, I am currently investigating a way to make this possible without compromising on security.

Translations

Thanks to the following users for submitting translations:

  • Chinese (Traditional Han script)
    • 張恩愷 (kevin0910305)
    • Jia-Bin (@OrStudio)
  • Hungarian
    • Pacuka (@Pacuka)
  • Italian
    • Champ0999 (@Champ0999)
  • Serbian
    • zivojin kuzmanovic (kuzmanovic.zivojin2)
  • Ukrainian
    • Dmitriy (@dmytro-kerest)
  • Vietnamese
    • tuấn nguyễn (nguyentuan9834nblkh)

Other changes

  • Updated libraries and targetSdk for Android 16
  • Added a list of used open-source libraries

Full Changelog: https://github.com/karasevm/PrivateDNSAndroid/compare/v1.10.0...v1.11.0

Close

Permissions

3 permissions requested

  • android.permission.WRITE_SECURE_SETTINGS
  • ru.karasevm.privatednstoggle.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
  • moe.shizuku.manager.permission.API_V23
Close