Terms of Service
Last updated: 2026-08-27
These terms govern your use of the dnsetter Android app
(name.gpm.dnsetter), provided by Gabriele Proietti Mattia. Installing or
using the app means you accept them. If you do not, do not install it — and uninstall
it if you already have.
What dnsetter is
dnsetter watches for a VPN connection and changes Android’s Private DNS setting while one is up, putting your setting back — mode and hostname — when the tunnel goes away. You decide what happens per VPN app, and you can do the same by hand from a Quick Settings tile. It runs on your device, resolves nothing itself, and creates no VPN of its own.
Licence
You get a personal, non-exclusive, non-transferable, revocable licence to use the app on devices you own or control. You may not sell, rent, sublicense or redistribute it, and you may not remove or alter attribution or notices in it.
Where the source code is published, its own licence governs the code — these terms cover the distributed app, not the repository.
No warranty
The app is provided “as is” and “as available”, without warranty of any kind, express or implied, including merchantability, fitness for a particular purpose and non-infringement. It is a personal project, not a commercial product with a support obligation.
Turning Private DNS off is a real reduction in privacy
This is the most important paragraph on this page.
Private DNS is what encrypts your name lookups. While dnsetter has it switched off, the names your phone looks up over that connection are visible to whoever carries the traffic — which, while a VPN is up, is normally the operator of that tunnel, and which, if the tunnel drops before the app notices, is your network. That is the trade the app exists to make on your behalf, and it is the reason it tells you on the Status tab exactly what is in force right now rather than only what it intended.
dnsetter is built to make the bad outcomes hard rather than impossible: it stores your setting before it touches anything, reads every write back instead of assuming it took, restores mode and hostname together, and stands down the moment you change Private DNS yourself. These are safeguards, not guarantees. A phone that is wiped, an app that is force-stopped mid-switch or uninstalled while it is holding your setting, or a system that silently refuses a write can all leave Private DNS off until you set it back yourself.
Check the setting after anything unusual, and know where it lives: Settings → Network & internet → Private DNS. Nothing this app does is beyond your reach there.
What is outside anyone’s control
- What your phone does with the setting. Android manufacturers modify this part of the system, and some skins accept a write to Private DNS and do not apply it. dnsetter reads every write back and reports what it found, which is the most any app can do from outside the system.
- What your VPN app does. How a tunnel handles name resolution — whether it carries your queries, and to which resolver — is its behaviour, not this app’s. The collision this app exists for is not documented by Google, and whether it happens on your device with your tunnel is exactly what the beta is for.
- Which tunnel is up. Android does not tell an ordinary app who owns a VPN connection. Where the system names one, that is what you see; where it does not, the app says so and applies your default rather than guessing.
- Android’s process rules. The watch needs a running process, which is what the permanent notification is. Manufacturer battery managers kill background work beyond what the platform documents, and no promise is made that a switch happens at any particular moment, or at all, on any particular device.
The permission you grant
dnsetter cannot work without WRITE_SECURE_SETTINGS, which no dialog can grant: you give it
once, from a computer over ADB or through Shizuku, and granting it is your decision to make on
a device you control. It is a powerful permission, and what this app does with it is written
down and narrow — it writes private_dns_mode and private_dns_specifier, and nothing else.
Do not grant it on a device that is not yours to configure, and be aware that anyone with access to your unlocked device can change what the app is set to do.
Acceptable use
Do not use the app unlawfully, and do not use it to evade a network policy you are bound by — a work phone, a school device or any network whose rules you have agreed to. Changing how a device resolves names is exactly the kind of thing such rules are about.
Paid features
Some features may be offered as a paid unlock, through Google Play Billing in the Play version. Prices, currencies and taxes are shown by the store at the moment of purchase, and refunds follow Google Play’s own policy. Whatever is available free today stays free for installs already using it. The version distributed outside Google Play contains no purchases.
Limitation of liability
To the maximum extent permitted by law, Gabriele Proietti Mattia is not liable for any indirect, incidental, special or consequential damages, nor for any loss arising from the app switching Private DNS as configured, failing to switch it, failing to restore it, restoring it late, or from name resolution being unencrypted while it was switched off.
Nothing here excludes liability that cannot lawfully be excluded, including liability for death or personal injury caused by negligence, or for fraud. Consumers keep their mandatory statutory rights, which these terms do not limit.
Availability and changes
The app may be modified, suspended or discontinued at any time, and these terms may be updated; the current version always lives on this page, with the date below. Continuing to use the app after a change means you accept it.
Governing law
These terms are governed by Italian law. If you are a consumer, you keep the protection of the mandatory provisions of the law of your country of residence, and may bring proceedings in the courts there.
Contact
Last updated: 2026-08-27