Repository navigation
Releases: mjryan253/PinDNS
Releases · mjryan253/PinDNS
Release list
v0.6
Changed
- Renamed to PinDNS - the app, repository and documentation now use the name PinDNS (formerly PrivDNS Toggle). The package ID
com.privdnstoggle.appis unchanged, so existing installs update in place and keep theirWRITE_SECURE_SETTINGSgrant. The Quick Settings tile is now labelled "PinDNS Toggle" and release files are namedPinDNS-v<version>.apk.
Documentation
- Project website - PinDNS now has a home at pindns.xyz.
- Pick a DNS Provider - the README setup section now has an optional step pointing at NextDNS, labelled as a referral link. Any Private DNS provider still works; NextDNS is not required.
- Corrections - build output paths, the Gradle and JDK versions, the logcat filter tags and three places that claimed Save turns Private DNS on (it only tests the connection and stores the hostname) now match the code.
Sideload the APK below, or track this repo in Obtainium.
Signing certificate SHA-256: 5344da60b330aca1109d26bac272f437d72c9a1a456aa1c9b7ea9c587ce19289 (check with apksigner verify --print-certs).
v0.5
Added
- Grant with Shizuku - one-time in-app grant of
WRITE_SECURE_SETTINGSthrough a Shizuku user service, for devices without access to a computer. The ADB command remains supported. - CI pipeline - GitHub Actions run unit and Robolectric regression tests, Android Lint, a release build and OWASP Dependency-Check on every pull request.
- README badges, About and donations - Obtainium install badge, release/download/CI/stack badges, Shizuku and Samsung Galaxy device notes, an About section (single developer, v1.0 targeted for Q4 2026) and a PayPal donation link;
.github/FUNDING.ymladds a GitHub Sponsor button. - Publish workflow - merging a version bump to main builds, tests, signs and publishes the GitHub Release automatically.
Changed
- Release signing key - releases are signed with a dedicated release key (certificate SHA-256
5344da60b330aca1109d26bac272f437d72c9a1a456aa1c9b7ea9c587ce19289) instead of a debug key. Upgrading from 0.4.1 or earlier: uninstall the old version first, then install and grantWRITE_SECURE_SETTINGSagain.
Fixed
- Quick Settings tile on Android 9 - the tile service no longer calls
Tile.setSubtitle(API 29) on API 28 devices, which crashed the tile; the subtitle is simply omitted there.
Sideload the APK below, or track this repo in Obtainium.
Signing certificate SHA-256: 5344da60b330aca1109d26bac272f437d72c9a1a456aa1c9b7ea9c587ce19289 (check with apksigner verify --print-certs).
OLED black screen and other updates
What's Changed
- Remove release workflow and add unit tests for DebugLogger and DnsMan… by @mjryan253 in #6
- Linting pr setup by @mjryan253 in #7
- UI ux redesign by @mjryan253 in #8
Full Changelog: v0.4...v0.4.1
version 0.4 release
What's Changed
- Beta/v0.3.1 by @mjryan253 in #2
- Update version to 0.3.2 and document changes in CHANGELOG.md by @mjryan253 in #3
- Samsung update by @mjryan253 in #4
- Prepare for release of version 0.4 by @mjryan253 in #5
Full Changelog: v0.3...v0.4
samsung update push bugfix
What's Changed
- Beta/v0.3.1 by @mjryan253 in #2
- Update version to 0.3.2 and document changes in CHANGELOG.md by @mjryan253 in #3
Full Changelog: v0.3...beta/v0.3.3
v0.3
v0.2-beta
PrivDNS Toggle v0.2-beta
First public beta release.
Features
- Quick Settings Tile - toggle Private DNS on/off directly from the notification shade
- Large Toggle Switch - prominent horizontal switch in the app with animated state transitions
- DNS Validation - syntax validation for hostnames, IPv4, and IPv6 addresses, plus a TLS connection test (port 853, 10s timeout) before saving
- Dark Mode UI - Material 3 dark theme by default, with dynamic color support on Android 12+
- In-App Setup Instructions - collapsible card with the ADB permission grant command and copy-to-clipboard
- Custom App Icons - launcher icons, adaptive icons, and Quick Settings tile icon
Requirements
- Android 9+ (API 28)
- One-time ADB grant of WRITE_SECURE_SETTINGS permission
- No root required
Install
- Download the APK below and sideload onto your device
- Grant permission via ADB:
adb shell pm grant com.privdnstoggle.app android.permission.WRITE_SECURE_SETTINGS - Open the app, enter your DNS provider hostname, and tap Save
- Use the in-app toggle or Quick Settings tile to enable/disable Private DNS
Note: This is an unsigned APK. You may need to allow installation from unknown sources.