## DcDNS v1.0.4
DcDNS v1.0.4
What's New
- Settings Panel: Added a built-in settings UI accessible from the header. Every privacy feature can now be toggled on or off without editing code.
- Custom DNS-over-HTTPS: You can now set your own primary and fallback DoH resolvers. Includes one-click presets for Mullvad, Cloudflare, Google, Quad9, OpenDNS, and Mullvad AdBlock.
- Discord Telemetry Blocking: New network-layer blocking for Discord analytics, event tracking, and third-party telemetry endpoints (/science, /track, /metrics, /analytics, Sentry, Mixpanel, Segment, Amplitude, click.discord.com). Requests are cancelled before they leave the client.
- Crash Report Blocking: Dedicated toggle to disable Breakpad crash reporting and block crash upload endpoints independently from general telemetry.
- Custom User-Agent: Option to override the User-Agent with a specific string, or keep the default auto-clean behaviour.
- Configurable Label Position: The "Encrypted by DcDNS" badge can now be placed in four corners (bottom-right, bottom-left, top-right, top-left). The badge now uses a fixed-position renderer overlay so it persists through fullscreen, screen sharing, and layout changes.
- Backup Handling: When reinstalling, DcDNS now asks whether to keep the existing backup or overwrite it with the current stock file.
- SHA-256 File Verification: The installer now displays the SHA-256 hash of the target index.js in the client selection view for integrity verification.
Privacy & Security
- All protections are now toggleable via persistent config stored in Discord's userData directory (
dcdns_conf.json). - Added
setPermissionCheckHandlerto harden geolocation blocking against already-granted permission states. - Expanded header stripping to include
X-Goog-Visitor-IdandX-Firebase-Client. - Added Chromium flags:
disable-domain-reliability,disable-featuresexpanded to cover ReportingObserver, NetworkTimeServiceQuerying, SafeBrowsingExtendedReporting, HyperlinkAuditing, and AutofillServerCommunication. - Removed automatic Discord invite popup on startup. The invite link is now available only as a manual button in the Policy screen.
UX & Interface
- Application window height increased to 560px to accommodate the new settings panel.
- Settings are saved to localStorage in the UI and written to a JSON config file that the injected payload reads at Discord startup.
- Cleaned up the title bar label script — removed the Chrome version string from the badge text for a cleaner look.
Technical
- Payload is now dynamically rebuilt at install time with user settings baked in as JavaScript defaults.
- Added
hashlib.sha256file hashing for integrity display. - Refactored
Apiclass to support two-step install flow (backup prompt modal viainstall_confirm_backup). - Policy text updated to reflect MIT licensing and the new toggleable architecture.
Note: Discord auto-updates overwrite the patched index.js. After any Discord update, re-run DcDNS and click Install to re-apply the patch with your saved settings.
