Private DNS Smart Control

by Arexalem

Version 7 (February 19, 2026)

Download (51 downloads)

Control Private DNS from quick tile (change, add, edit, remove DNS from your list). Automatically check whether the connection to the hostname is reachable then update the quick tile state accordingly. Need premium.

How to setup:
• Add empty Automate quick tile: Notification (expanded) >> Edit >> Add tiles via drag & drop.
• Get permission: Automate settings >> Privileges >> Turn on "modify system secure settings".
• If you can't get the permission (Android 11+): Automate settings >> Privileged service start method >> ADB >> Follow the instructions given by the app >> Try granting the permission again.

Feature:
• Tap to cycle through the DNS list. Default has Off & Automatic in the list.
• Long Press shows 4 options: Add New, Edit, Remove, & Select entries in your DNS list.
• Shows a connected indicator with active/inactive quick tile if the hostname is reachable/invalid or data off. Updated every time interactive state changes or when the network state changes. Set the key "interval" in pingSettingDict to x sec to enable periodic ping checks.
• Automatically syncs the quick tile state with the Android system settings.
• If your settings have a custom Private DNS that is not in your list, you can choose to add it.

Other info:
• Reachability is determined by running 15 parallel netcat connections to the hostname on port 853 (DoT protocol) with a 1s delay. If any connection succeeds, the hostname is considered reachable. The shell command only checks the port and does not send any actual data.
• Be careful when adding an invalid hostname. If you use it, you may lose internet access. Change it to another hostname or remove it.
• If you see a quick tile visual glitch, that's because the fiber that controls it is stopped and started again.
• Don't worry if you encounter java.lang.InterruptedException, it is caused by stopping fiber because of a successful netcat.
• I tried my best to not cause any bugs, that's why this flow is big with a complicated fork mechanic. Normally if it is set to Off or Automatic it will have 3 running fibers, if it is set to one of your Private DNS entries, it will have 4 or 5 (data off/on), or more than 6 for a short time when running (netcat) check. If it stays at 6 or more running fibers, there is something wrong and the flow should be stopped. If you find any bugs just tell me in the comments.

Update 7:
- Fixed duplicate bugs.

Update 6 (major):
- Added select options.
- Changed netcat count, parallel delay, & disabled periodic check by default.
- Refactored flow to fix many bugs.

Update 5:
- Optimized fiber stopping & number of blocks.
- Fixed edit bugs.

Update 4 (major):
- The quick tile state now fully syncs with the Android system settings when you add or change Private DNS via that method.