Skip to content

About

Android DPI bypass app with some extra things.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

DPIMech logo

DPIMech for Android

Open the sites and apps your internet provider blocks with DPI (Discord, YouTube, Roblox…)
on your phone, without root and without a remote server.

Latest release CI GPL-3.0 Android 8.0+

English · Türkçe · Русский · فارسی · العربية · Website

Also on the computer: DPIMech for Windows, Linux and macOS uses the same strategies. Both apps share one strategy list, so what works on your provider works in both.

Download

GitHub Releases dpimech-<version>-universal.apk works on every phone. Smaller per-architecture APKs (arm64-v8a for most phones) and SHA256SUMS are in the same release.
Obtainium Add https://github.com/halilkhrmn/dpimech-android to get updates automatically.

Android 8.0 or newer.

Screenshots

Home Setup wizard Strategy Lab Settings About

Features

  • Setup wizard: pick the sites, DPIMech tests your connection and turns on what works.
  • Whole phone or chosen apps: the sites commonly blocked in your country for every app, or only the apps you pick (e.g. Discord). Other connections are left untouched.
  • Strategy Lab: tests strategies against real sites, with confirmation rounds, and shows which one works on your provider. Presets for known providers are tried first.
  • Automatic strategy per network: on a new Wi-Fi or mobile operator it finds what works and remembers it.
  • Encrypted DNS (DoH) for the bypassed apps, and an optional QUIC block so browsers and YouTube use TCP, where the bypass works.
  • Live status: traffic chart, average ping of your sites and DNS counts on the home screen and in the notification.
  • Widgets (one per profile if you like), launcher shortcuts that turn a profile on and open its app, Quick Settings tile.
  • Quick check of one site (directly and through the bypass), profile backup to a file, start on boot and Android's always-on VPN.
  • Strategies updated without a new release, plus a community list; DNS blocking check; watchdog that restarts the engine; logs and problem report.
  • English, Türkçe, Русский, فارسی, العربية (Persian and Arabic are new: corrections welcome). Material You, light and dark.

How it works

Many providers recognise blocked sites by reading the first packets of a connection (the domain name in the TLS handshake). ByeDPI changes how those packets look, so the filter does not recognise them, while the site still understands them.

DPIMech uses Android's VpnService only to catch the chosen apps' traffic on the phone and hands it to ByeDPI through hev-socks5-tunnel.

  • Not a VPN service. Every connection still goes straight to the site. Nothing passes through anyone else's server, and your IP address is not hidden.
  • Sites blocked by IP address stay blocked. No local trick helps there.
  • One VPN at a time. Android allows only one, so another VPN or a VPN-based ad blocker cannot run together with DPIMech.

Permissions

Permission Why
VPN (BIND_VPN_SERVICE) catch the chosen apps' traffic on the phone
See installed apps (QUERY_ALL_PACKAGES) the app picker for per-app profiles
Notifications status, strategy test progress, "bypass stopped"
Ignore battery optimisation (asked, optional) so Android does not stop the bypass in the background
Run at startup (RECEIVE_BOOT_COMPLETED) "Start when the phone starts" (off unless you turn it on)

Network requests made by the app itself

  • ipwho.is: your provider's name, for the per-network memory and the presets (it sees your IP address). On each new network only with the automatic strategy, otherwise only when you run a test; off in Settings → "Look up the network provider".
  • The strategy lists on GitHub (desktop repository and community list).
  • DNS over HTTPS to the DNS server chosen in Settings (Cloudflare by default).
  • The sites you test, during the Strategy Lab.

No analytics, no crash reporting, no ads.

Building

You need JDK 17+, the Android SDK (platform 37) and NDK 29. Clone with submodules:

git clone --recurse-submodules https://github.com/halilkhrmn/dpimech-android
cd dpimech-android
./gradlew :app:assembleDebug

Tests, release builds and the project layout are described in AGENTS.md. docs/RELEASING.md covers signing and docs/PLAN.md the plan. Release builds are reproducible.

Credits

Both engines are built from source inside the APK; nothing executable is downloaded later.

Licence

GPL-3.0-or-later.

About

Android DPI bypass app with some extra things.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages