mlmvpn/mlmvpn_android
Multi-engine Android VPN & network-scanning app — Xray, AmneziaWG, Aether (MASQUE/WG/WARP-in-WARP), VPN Gate, DNS/game-latency booster, and sanction-domain routing
About mlmvpn/mlmvpn_android
mlmvpn/mlmvpn_android is an open-source project on GitHub, mainly written in Kotlin. Multi-engine Android VPN & network-scanning app — Xray, AmneziaWG, Aether (MASQUE/WG/WARP-in-WARP), VPN Gate, DNS/game-latency booster It currently holds 226 stars and 34 forks with 5 open issues, and was last pushed on 2026-09-28 (repository created 2026-06-12).
Project Overview
Git Homed tracks it on the Today's Trending board, currently at rank #63 with 56 new stars today.
GitHub Repository Details
README
MLM VPN — Android
A multi-engine VPN, network-scanning, and connectivity-boosting Android app.
Developed and maintained by mlmvpn.
---
English
Overview
MLM VPN is an Android application that combines several independent
connectivity engines behind one UI: a VPN node scanner/manager, multiple
tunnel protocols, a DNS/latency "game booster" for reducing in-game ping,
and a set of specialized circumvention engines for restrictive network
environments. It is built with Kotlin and Jetpack Compose, targeting
minSdk 24 / compileSdk 34.
⚠️ 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.
Features
MLM VPN is much broader than a single-protocol VPN client — it bundles a professional-grade multi-protocol tunnel core, a full Cloudflare infrastructure control panel, a self-hosted worker/relay ecosystem, and a three-tier emergency fallback system, all in one app.
- Professional V2Ray / Xray-core client (
NodesTab,ScannerTab,
utils/VpnConfig, VlessXrayInjector) — full VLESS/VMess/Trojan support
with REALITY, TLS, WebSocket and gRPC transports, subscription-link
import/export, batch latency/connectivity scanning of imported nodes, and
manual node editing (AddNodeModal).
- Multiple tunnel engines, selectable per use case:
- Xray-core (VLESS/VMess/Trojan, REALITY/WS/gRPC) via
VlessXrayInjector - AmneziaWG (obfuscated WireGuard) via
AmneziaWgInjector kittoku-based SoftEther/L2TP WireGuard support- GST relay engine (
engines/gst) - EDG engine (
engines/edg) - Aether engine (
core/aether) — MASQUE / WireGuard / WARP-in-WARP
AETHER.md
- VPN Gate public relay browsing (
engines/vpngate, SoftEther/OpenVPN) - Cloud panel (Cloudflare account integration) (
CloudTab,
data/CloudManager) — connect one or more Cloudflare accounts (email +
Global API Key or scoped API token) directly in the app and, without
touching the Cloudflare dashboard:
- one-tap deploy of several self-hosted Worker backends (BPB, EDG,
- auto subdomain creation on
*.workers.devwith account
- fetch nodes generated by your own deployed worker back into the app
- live daily usage tracking against the Workers free-tier quota
- per-worker user management and settings screens
- received node groups browser (nodes your workers have produced,
- Game Booster — races Cloudflare/UAE Dedicated DNS and the Aether
- Sanction-domain routing (
engines/sanction, "DNS ضد تحریم شخصی") —
- Self-hosted backend tooling (
engines/mlm,assets/gst,
*_worker.js) — Google Apps Script and Cloudflare Worker source for
running your own relay/DNS infrastructure, deployed via the Cloud panel.
- Server-less domain fronting (
mitm/MitmCertManager,mitm/MitmProfile,
ui/mitm/MitmSetupCard) — reaches YouTube, Instagram, WhatsApp, Facebook,
Reddit and other Fastly-hosted sites in the browser with no server or
worker in the path at all: TLS is terminated locally against an RSA-2048
root certificate the app generates on-device (raw DER/X.509, no
BouncyCastle dependency), then re-established to the real host under a
different, unblocked SNI. The certificate is per-device and never leaves
it; setup is a guided in-app card that hands the certificate to Android's
own installer (or, on Android 11+, walks the user through Settings, since
the platform no longer accepts a certificate handed in by an app).
- Side (hamburger) menu — quick access to: Settings, data-usage
- Three-tier Emergency fallback system — guided, progressively more
Tech stack
- Kotlin, Jetpack Compose, Coroutines/Flow
- Native libraries (JNI) for Xray-core, AmneziaWG, Aether, tun2proxy
- Cloudflare Workers / Google Apps Script for optional self-hosted backend
app/src/main/assets/gst/, *_worker.js)
Project structure
app/src/main/java/com/mlmvpn/
├── core/ # Low-level engine wrappers (aether, warp)
└── 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), JDK matching the Android Gradle
Plugin used in build.gradle, Android SDK with compileSdk 34 installed.
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/.
Some native binaries (.sofiles underapp/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
nicer-looking changelog page.
Contributing
Contributions are welcome — see CONTRIBUTING.md for
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.
This is because the project vendors GPL-3.0 source from kittoku/mvc and
shadowsocks-android, which requires the whole combined work to be 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 یک اپلیکیشن اندرویدی است که چند موتور اتصال مستقل را زیر یک
رابط کاربری واحد گرد هم میآورد: اسکنر و مدیریتکننده نودهای VPN، چند
پروتکل تونل، سیستم «بوستر بازی» برای کاهش پینگ داخل بازی از طریق DNS و
تست تأخیر، و مجموعهای از موتورهای تخصصی دورزدن محدودیت برای شبکههای
محدودشده. این پروژه با Kotlin و Jetpack Compose نوشته شده و minSdk 24 و
compileSdk 34 را هدف قرار میدهد.
⚠️ این پروژه با فناوری VPN و دورزدن محدودیتهای شبکه سروکار دارد. لطفاً
مطابق قوانین کشور خود از آن استفاده کنید. توسعهدهندگان این پروژه استفاده
غیرقانونی را تشویق یا تأیید نمیکنند.
امکانات
MLM VPN بسیار فراتر از یک کلاینت تکپروتکلی VPN است — یک هسته حرفهای چندپروتکلی تونل، یک پنل کامل کنترل زیرساخت کلودفلر، یک اکوسیستم ورکر/رله خوداستقرار، و یک سیستم پشتیبان اضطراری سهسطحی را در یک اپ گرد هم آورده است.
- کلاینت حرفهای V2Ray / Xray-core (
NodesTab،ScannerTab،
utils/VpnConfig، VlessXrayInjector) — پشتیبانی کامل از
VLESS/VMess/Trojan با ترنسپورتهای REALITY، TLS، WebSocket و gRPC،
وارد/صادر کردن لینک اشتراک، اسکن گروهی تأخیر/اتصال نودهای واردشده، و
ویرایش دستی نود (AddNodeModal).
- موتورهای تونل متعدد، قابل انتخاب بر اساس نیاز:
- Xray-core (VLESS/VMess/Trojan، REALITY/WS/gRPC) از طریق
VlessXrayInjector - AmneziaWG (وایرگارد مبهمسازیشده) از طریق
AmneziaWgInjector - پشتیبانی وایرگارد/SoftEther/L2TP مبتنی بر
kittoku - موتور رله GST (
engines/gst) - موتور EDG (
engines/edg) - موتور Aether (
core/aether) — دورزدن محدودیت با MASQUE / WireGuard /
AETHER.md مراجعه کنید
- مرور رلههای عمومی VPN Gate (
engines/vpngate، SoftEther/OpenVPN) - پنل ابری (اتصال حساب کلودفلر) (
CloudTab،data/CloudManager) —
- استقرار یکلمسی چند بکاند ورکر خوداستقرار (BPB، EDG، Nahan) از
- ساخت خودکار سابدامین روی
*.workers.devهمراه با بررسی
- دریافت نودهای تولیدشده توسط ورکر خودتان مستقیماً داخل اپ
- پایش زنده مصرف روزانه در برابر سقف رایگان ورکرها (۱۰۰,۰۰۰
- مدیریت کاربران و صفحه تنظیمات برای هر ورکر
- مرورگر گروههای نود دریافتی (نودهایی که ورکرهای شما تولید کردهاند،
- بوستر بازی — DNS اختصاصی کلودفلر/امارات و موتور Aether را با پینگ
- مسیریابی دامنههای تحریمشده (
engines/sanction، «DNS ضد تحریم
- ابزارهای بکاند خوداستقرار (
engines/mlm,assets/gst,
*_worker.js) — سورس Google Apps Script و Cloudflare Worker برای اجرای
زیرساخت رله/DNS اختصاصی خودتان، که از طریق پنل ابری مستقر میشود.
- دامینفرانتینگ بدون سرور (
mitm/MitmCertManager،mitm/MitmProfile،
ui/mitm/MitmSetupCard) — یوتیوب، اینستاگرام، واتساپ، فیسبوک، ردیت و
سایر سایتهای روی Fastly را داخل مرورگر باز میکند، بدون هیچ سرور یا
ورکری در مسیر: TLS بهصورت محلی با یک گواهی ریشه RSA-2048 که خود اپ روی
گوشی میسازد (DER/X.509 خام، بدون وابستگی به BouncyCastle) باز میشود و
دوباره با یک SNI متفاوت و بلاکنشده به مقصد واقعی وصل میشود. گواهی
مخصوص هر گوشی است و هیچجا ارسال نمیشود؛ راهاندازی یک کارت هدایتشده
داخل اپ است که گواهی را به نصبکنندهی خود اندروید میسپارد (یا در
اندروید ۱۱ به بالا، چون پلتفرم دیگر گواهی دادهشده توسط اپ را قبول
نمیکند، کاربر را قدمبهقدم در تنظیمات راهنمایی میکند).
- منوی کناری (همبرگری) — دسترسی سریع به: تنظیمات، آمار مصرف داده،
- سیستم پشتیبان اضطراری سهسطحی — مسیرهای بازیابی هدایتشده و بهمرور
ساختار پروژه
app/src/main/java/com/mlmvpn/
├── core/ # لایههای پایه موتورها (aether، warp)
└── scanner/
├── data/ # مدیریت داده نود/اشتراک/کلاود
├── engines/ # موتورهای اتصال قابلافزودن (هر کدام یک پوشه)
├── mitm/ # گواهی روی گوشی + پروفایل دامینفرانتینگ بدون سرور
├── ui/ # صفحات Compose
└── utils/ # تولیدکنندههای کانفیگ، تسترها، واچداگها
app/src/main/assets/ # اسکریپتهای ورکر، داده جغرافیایی، لیست تحریم
app/src/main/jniLibs/ # کتابخانههای native از پیشکامپایلشده
راهاندازی و ساخت پروژه
پیشنیازها: Android Studio (نسخه اخیر)، JDK متناظر با Android Gradle
Plugin استفادهشده در build.gradle، Android SDK با compileSdk 34 نصبشده.
git clone https://github.com/mlmvpn/mlmvpn_android.git
cd mlmvpn_android
./gradlew assembleDebug
فایل APK دیباگ در مسیر app/build/outputs/apk/debug/ تولید میشود.
برخی فایلهای باینری native (فایلهای.soدرapp/src/main/jniLibs/) و
فایلهای داده (geoip.dat،geosite.dat) حجیم هستند و با Git LFS
ردیابی میشوند. پس از clone کردن، Git LFS را نصب
کرده و دستور git lfs pull را اجرا کنید.
لیست تغییرات
برای مشاهده تاریخچه کامل نسخهها (دوزبانه) به CHANGELOG.md، یا نسخه
شیک و تصویری آن مراجعه کنید.
مشارکت در پروژه
از مشارکت شما استقبال میشود — فایل CONTRIBUTING.md
را برای آشنایی با ساختار پروژه، استانداردهای کدنویسی، و نحوه افزودن موتور
جدید مطالعه کنید.
مجوز و ذکر منبع
این پروژه تحت GNU GPLv3، بههمراه یک شرط اضافه (مجاز طبق ماده §۷ خود
GPLv3) که ذکر منبع را الزامی میکند، منتشر شده است — به فایل
LICENSE مراجعه کنید. دلیلش این است که پروژه از سورس GPL-3.0
پروژههای kittoku/mvc و shadowsocks-android استفاده میکند، که طبق
GPL کل اثر ترکیبی باید GPL باشد. بهطور خلاصه:
هرگونه استفاده، فورک یا اثر مشتقشده از این پروژه — چه بهصورت سورس و چه
کامپایلشده — باید هرجا که نرمافزار به کاربر نهایی نمایش داده میشود
(صفحه درباره ما، README، صفحه فروشگاه و غیره) بهطور واضح توسعهدهنده
اصلی، mlmvpn (https://github.com/mlmvpn)، را ذکر کند.