Repository navigation
π NoDPI for Android 2.0
The first stable release of the 2.x line β and a complete rewrite once again. The app is now native: Kotlin, Jetpack Compose and Material 3 Expressive instead of Python and Kivy. The APK went from 46.7 MB down to 1.8 MB, and the traffic engine now works exactly like the desktop NoDPI.
β οΈ Version 2.0 is signed with a new key, so it cannot be installed over v1.0 or v2.0-beta.
Before installing, write down or take a screenshot of your blacklist, then uninstall the old version. Otherwise Android will show "App not installed: package conflicts with an existing package".
After this one-time reinstall, future versions will update normally.
β¨ What's New
Native App
- Rewritten from scratch in Kotlin with Jetpack Compose and Material 3 Expressive
- 25Γ smaller APK, faster start, lower battery usage
- Proper foreground service: the proxy keeps running when the app is closed
- Notification with live traffic stats and a Stop button
- Quick Settings tile to toggle the proxy from the notification shade
- Start on boot (was missing in 2.0-beta)
Traffic Engine β same as desktop NoDPI
- SNI fragmentation β ClientHello is split into TLS records around the SNI field, the SNI itself character by character
- Disorder (on by default) β the first fragment is sent with TTL=1, so DPI sees the stream out of order and lets the connection through. Can be turned off in Settings
- Random fragmentation has been removed, as in the desktop version
- Cloudflare-aware β sites hosted on Cloudflare are sent without fragmentation: it cannot unblock them there and only breaks access. The
Allmode no longer breaks Cloudflare sites - Blacklist modes
Standard/All/Autoand matching modesStrict/Looseare kept
Statistics & Log
- Home screen shows connections (total / unblocked / direct / errors), traffic and current/average speed
- New Log tab: every connection with traffic, filters, sharing, and one-tap "Add to blacklist"
Blacklist
- Search, add several domains at once, undo deletion
- Import from and export to a text file, reset to default
Settings
- Local network access (0.0.0.0) to share the proxy with other devices, e.g. via hotspot
- Optional proxy authentication (Basic)
- Light / Dark / System theme, new light blue palette, optional dynamic color
- English and Russian, following the system language or chosen manually
- Battery optimization and notification status right in Settings
- First launch offers to disable battery optimization and enable start on boot
Other
- Built-in update check in About
- New adaptive icon
β οΈ Known Issues & Limitations
- Blocked sites hosted on Cloudflare cannot be unblocked by fragmentation
- Telegram, WhatsApp, and voice/video in Discord are not unblocked; sites blocked by IP address are unavailable too
- Android applies a manual proxy only to Wi-Fi networks; on mobile data use an app or browser that supports HTTP proxies
- The blacklist from previous versions cannot be transferred automatically because of the new signing key
π¦ Installation
- Uninstall the previous version of NoDPI if you have it (save your blacklist first)
- Download
NoDPI-2.0.apkfrom the Assets section below - Enable "Install from unknown sources" in your device settings
- Install, launch and accept the disclaimer
- Tap the power button on the main screen
- In Wi-Fi settings set the proxy to Manual: host
127.0.0.1, port8881
Requires Android 7.0 or newer.
Verify the APK
- File SHA-256:
DBE6CBBD1616561F1B7EDEFABD99062DFACC671DA5F7A955A31613CA6AF76481 - Signing certificate SHA-256:
88624eed3ffc1318a6ae5cb28e614c20b4a5069d81ba693fb71868d678d2efbb
If you encounter issues, please open an Issue with your device model, Android version, unblocking mode and provider name.
