MLM VPN — Android
A multi-engine VPN, network scanner and serverless messenger for Android.
Developed and maintained by mlmvpn.
English · فارسی · Русский · 中文
 Home |
 Settings |
 WireGuard |
 Gereh |
 Cloud |
English
Overview
MLM VPN brings many independent connection engines together behind one
iPhone-style home screen: a V2Ray/Xray client and clean-IP scanner, adaptive
engines that find a working route by themselves, more than twenty connection
methods for restrictive networks, a full Cloudflare control panel, and
Gereh, a messenger that works with no server at all. It is written in
Kotlin and Jetpack Compose (minSdk 24, targetSdk 34, compileSdk 36).
⚠️ This project involves network circumvention and VPN technology. Use it
in compliance with the laws of your jurisdiction. The maintainers do not
encourage or condone illegal use.
Languages
English, فارسی, Русский and 中文 (Russian and Chinese are new in 1.2.43:
menus, buttons and messages are translated; part of the text inside some pages
is still in English). Choose one in Settings › App Language; Gereh follows it.
Gereh — a phone-to-phone messenger (new in 1.2.43)
- No server, no phone number, no email. Your identity is a key made on the
phone, with a name like
ehsan·4821; messages go straight from phone to phone.
- End-to-end encrypted. Every message, photo and file is sealed on the
sender's phone and opened only on the receiver's.
- Many ways to deliver: a shared Wi-Fi even with no internet, Bluetooth when
you are close, the internet through volunteers (users' own phones and
computers), and the Google relay — a small mailbox (Apps Script) in the
user's own Google account for phones that cannot reach each other, such as one
on Irancell and one on MCI. Owners can open their relay to everyone as a
public relay; Google and the owner see only sealed bytes.
- Files in pieces: photos, videos, files and voice messages are cut into
equal parts so they get through any route, including the relay.
- Groups and channels with an owner and admins, settings and member
rights, invite links (with or without approval), and the official channel and
group «MLMVPN Official» with a member count estimated phone to phone.
- Add contacts by QR or card link, or «add nearby» with a 4-symbol check.
Notifications, chat folders and a home-screen widget; Gereh runs in its own
process so its errors never touch the VPN.
Connection engines
- FLUX — an adaptive engine of its own: races many routes, lets you choose
the country and IP version, and proves the real exit after connecting.
- MAE (MLM Adaptive Engine) — you pick your apps and sites; it learns, per
network, which route each one needs and builds foreign exits (a US exit for
Gemini and Google Flow) on your own Cloudflare account.
- V2Ray / Xray client — VLESS, VMess, Trojan, Shadowsocks with REALITY, TLS,
WebSocket, gRPC and XHTTP; subscriptions, batch tests and a two-stage clean-IP
scanner.
- WARP, MASQUE, WireGuard and WARP-in-WARP (Aether core) with an exit
country of your choice over NAT64, and a standalone WARP engine.
- Amnezia — free AmneziaWG, WireGuard and Hysteria2 servers, also carried
through Cloudflare where the line blocks them.
- FENIX — Firefox's free VPN on your own Firefox accounts (33 countries,
50 GB a month per account).
- Proton VPN and Windscribe free servers on your own accounts (every
protocol, through WARP where the provider is blocked), Outline keys,
OpenVPN (TunnelBear and free
.ovpn files) and NPV configs.
- Psiphon, Tor (with a bridge manager that tests bridges from your
line), Geph, Lantern and URnetwork.
- GitHub Tunnel — your own cloud server on your GitHub account's free
allowance; Telegram Proxy on your own Cloudflare; Quick Connect,
Iran configs, the SNI anti-filter (with ECH) and server-less domain fronting.
Cloud and tools
- Cloud panel — connect Cloudflare accounts, deploy self-hosted Worker
panels in one tap, fetch their configs and watch daily usage.
- Cloudflare Doctor — finds where your connection to Cloudflare breaks,
trying dozens of ways on your own line, and remembers what works per network.
- Config Studio — a panel for users, volume, time and device limits on your
own Worker, with multi-location exits, plans, templates and endpoints.
- MLM Scout — tests every method on your line for real and ranks them.
- Game Booster — measures the route to the game's region and picks the
best of your own line, WARP, Amnezia, WireGuard and FENIX; anti-sanction DNS
for sign-in and a floating ping over the game.
- Smart Iran routing, per-app split tunnelling and local network sharing
(proxy, hotspot and PAC link for other devices) on every engine.
- iPhone-style home screen with folders and search, home-screen widgets and
Widget Studio, a Quick Settings tile, an engine store with signed
updates, backup and restore, and in-app software updates.
Project structure
app/src/main/java/com/mlmvpn/
├── core/ # Low-level engine wrappers (aether, warp, tunnel)
└── scanner/
├── data/ # Node/subscription/cloud data managers
├── engines/ # Pluggable connectivity engines (one dir each)
├── mitm/ # On-device CA + server-less domain-fronting profile
├── ui/ # Compose screens
└── utils/ # Config generators, testers, watchdogs
app/src/main/assets/ # Bundled worker scripts, geo data, sanction lists
app/src/main/jniLibs/ # Prebuilt native libraries (arm64-v8a, armeabi-v7a)
Building
Requirements: Android Studio (recent), a JDK matching the Android Gradle
Plugin in build.gradle, and the Android SDK with compileSdk 36.
git clone https://github.com/mlmvpn/mlmvpn_android.git
cd mlmvpn_android
./gradlew assembleDebug
The debug APK is written to app/build/outputs/apk/debug/.
Native libraries (.so files under app/src/main/jniLibs/) and data files
(geoip.dat, geosite.dat) are large and tracked with Git LFS. Install
Git LFS and run git lfs pull after cloning if those
files show up as small pointer files.
Changelog
See CHANGELOG.md for the full version history (bilingual), or
the changelog page.
Contributing
Contributions are welcome — see CONTRIBUTING.md for the
project structure, coding conventions, and how to add a new engine.
License & Attribution
This project is licensed under GNU GPLv3, plus an additional term
(permitted under GPLv3 §7) requiring attribution — see LICENSE.
The project includes GPL source (kittoku/mvc, shadowsocks-android, and
Telegram for Android for Gereh's interface), so the whole combined work is GPL.
In short:
Any use, fork, or derivative of this project — source or compiled — must
clearly credit the original developer, mlmvpn
(https://github.com/mlmvpn), wherever the software is presented to end
users (About screen, README, store listing, etc.), in addition to the
standard GPLv3 obligations (source availability, same license on
derivatives, etc.).
فارسی
معرفی
MLM VPN چندین موتور اتصال مستقل را زیر یک صفحهٔ اصلی به سبک آیفون گرد
هم میآورد: کلاینت V2Ray/Xray و اسکنر آیپی تمیز، موتورهای هوشمندی که خودشان
راه کارا را پیدا میکنند، بیش از بیست روش اتصال برای شبکههای محدود، یک پنل
کامل کلادفلر، و گره، پیامرسانی که هیچ سروری ندارد. با Kotlin و Jetpack
Compose نوشته شده است (minSdk 24، targetSdk 34، compileSdk 36).
⚠️ این پروژه با فناوری VPN و دورزدن محدودیتهای شبکه سروکار دارد. لطفاً
مطابق قوانین کشور خود از آن استفاده کنید. توسعهدهندگان این پروژه استفادهٔ
غیرقانونی را تشویق یا تأیید نمیکنند.
زبانها
English، فارسی، Русский و 中文 (روسی و چینی در نسخهٔ ۱.۲.۴۳ اضافه شدند:
منوها، دکمهها و پیامها ترجمه شدهاند و بخشی از متنهای داخل بعضی صفحهها هنوز
انگلیسی است). از تنظیمات › زبان اپلیکیشن انتخاب کنید؛ گره هم همان را دنبال میکند.
گره — پیامرسان گوشیبهگوشی (تازهٔ نسخهٔ ۱.۲.۴۳)
- بی سرور، بی شمارهٔ تلفن، بی ایمیل. هویت شما کلیدی است که روی خود گوشی
ساخته میشود، با نامی مثل
ehsan·4821؛ پیام مستقیم از گوشی به گوشی میرود.
- رمزگذاری سرتاسری. هر پیام، عکس و فایل روی گوشی فرستنده مهر میشود و فقط
روی گوشی گیرنده باز میشود.
- راههای زیاد برای رساندن پیام: وایفای مشترک حتی بی اینترنت، بلوتوث وقتی
کنار هم هستید، اینترنت از راه داوطلبان (گوشیها و رایانههای خود کاربران)، و
رلهٔ گوگل — صندوقی کوچک (Apps Script) در حساب گوگل خود کاربر برای وقتی
که دو گوشی به هم نمیرسند، مثلاً یکی ایرانسل و دیگری همراه اول. صاحب رله
میتواند آن را بهصورت رلهٔ عمومی برای همه باز کند؛ گوگل و صاحب رله فقط
بایتهای مهرشده میبینند.
- تکهتکه کردن فایلها: عکس، ویدیو، فایل و پیام صوتی در تکههای هماندازه
فرستاده میشوند تا از هر راهی، از جمله رله، رد شوند.
- گروه و کانال با صاحب و مدیران، تنظیمات و اختیارات اعضا، لینک دعوت (با
تأیید مدیر یا بی آن)، و کانال و گروه رسمی «MLMVPN رسمی» با شمار اعضایی که
گوشیبهگوشی تخمین زده میشود.
- افزودن مخاطب با QR یا لینک کارت، یا «افزودن از نزدیک» با کد تأیید ۴ نمادی.
اعلان، پوشههای گفتوگو و ویجت صفحهٔ اصلی؛ گره در پروسهٔ جدای خودش اجرا
میشود تا خطایش به VPN آسیب نزند.
موتورهای اتصال
- FLUX — موتور هوشمند مستقل: راههای زیادی را همزمان میآزماید، کشور و
نسخهٔ IP را به انتخاب شما میگذارد و پس از اتصال، خروجی واقعی را ثابت میکند.
- **MAE (موتور