Skip to content

About

Private, lightweight DNS-over-HTTPS client for Android with local VPN, live DNS monitoring, custom blocklists, per-app control, and zero analytics.

Topics

Resources

Contributing

Stars

4 stars

Watchers

0 watching

Forks

Repository files navigation

SparkleDNS icon

SparkleDNS

A lightweight DNS-over-HTTPS client for Android.
A local VPN that captures only DNS traffic and sends every query to the DoH server you choose (RFC 8484). Everything else goes through your normal connection.

Latest release

Get it on F-Droid Get it on Obtainium Get it on GitHub Get it on Gitea

Your DNS, your choice Protected via SkySparkle Stay informed Block your way Choose your own route

Tip

If you find SparkleDNS useful, please consider giving it a ⭐ — it helps others discover the project.

✨ Features

  • 🔌 One-tap connect/disconnect, with a Quick Settings tile
  • 🔄 Switch servers on the fly — the tunnel restarts automatically
  • 🚀 Built-in server test showing protocol and latency
  • 📊 Live query monitor with stats, filters and one-tap blocking
  • 📱 Per-app DNS — chosen apps bypass the tunnel
  • 🚫 Custom blocklists — your own domains plus hosts/domain/AdBlock lists by URL (HaGeZi Pro++ and TIF presets)
  • 🔓 No analytics, no Google Play Services

Installation

  • F-Droid — install and update through the F-Droid client.
  • Obtainium — installs the APK straight from Gitea releases and keeps it up to date.
  • Manually — download the latest APK from GitHub or Gitea, allow installs from unknown sources for the app you open it with (Settings → Apps → Special access → Install unknown apps), then open the .apk and confirm.

Verifying a download

Every official APK is signed with the same key. Check it before installing:

apksigner verify --print-certs SparkleDNS-v<version>.apk

The SHA-256 fingerprint of the signing certificate must be:

42:F6:30:63:4B:D0:F8:7F:49:17:85:A8:84:87:70:E4:45:96:7B:36:F1:02:8E:FD:16:F8:F9:52:01:27:3A:29

apksigner prints the same value in lowercase without colons. On Android you can check it with AppVerifier (app ID cc.skysparkle.sparkledns).

Building from source

Requires JDK 17+ and Android SDK 36.

./gradlew assembleRelease

Releasing

  1. Bump versionName and versionCode in app/build.gradle.kts (versionCode = major * 10000 + minor * 100 + patch).
  2. Add fastlane/metadata/android/<locale>/changelogs/<versionCode>.txt.
  3. Tag the commit as v<versionName> (for example v1.0.9) — F-Droid detects new releases from these tags, so upload the signed APK to the release right away.

🤝 Contributing

Bug reports, DoH server and blocklist suggestions, translation fixes and pull requests are welcome in the issue tracker. Please read CONTRIBUTING.md first — it explains what fits the project and how to send changes. To open an issue or a pull request, create an account on this Gitea.

📄 License

GNU General Public License v3.0 only.

About

Private, lightweight DNS-over-HTTPS client for Android with local VPN, live DNS monitoring, custom blocklists, per-app control, and zero analytics.

Topics

Resources

Contributing

Stars

4 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages