mlmvpn_android README

The project's README from github.com/mlmvpn/mlmvpn_android. As one markdown file: README.md.

MLM VPN — Android

A multi-engine VPN, network-scanning, and connectivity-boosting Android app.
Developed and maintained by mlmvpn.

English · فارسی


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.

Tech stack

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 (.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 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 است — یک هسته حرفه‌ای چندپروتکلی تونل، یک پنل کامل کنترل زیرساخت کلودفلر، یک اکوسیستم ورکر/رله خوداستقرار، و یک سیستم پشتیبان اضطراری سه‌سطحی را در یک اپ گرد هم آورده است.

ساختار پروژه

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)، را ذکر کند.

mlmvpn_android (mlmvpn/mlmvpn_android)

censorship
Searching Database…

What is this?MLM VPN is an Android app that bundles many independent connectivity engines — Xray-core (VLESS/VMess/Trojan), AmneziaWG, WARP, Psiphon, Tor, Geph, OpenVPN and a custom MASQUE-based engine — behind one UI, plus an adaptive per-app router, a Cloudflare Worker control panel, and a game-latency booster, aimed at bypassing network restrictions.
Is this one VPN app, or a bundle of separate apps for each protocol?It's a single Android app where every engine (Xray, AmneziaWG, WARP, Psiphon, Tor, Geph, OpenVPN, Aether) gets its own home-screen tile, plus an experimental MLM Adaptive Engine (MAE) that can route different apps through different engines automatically on one tunnel.
How do I build and run this app?Open the project in Android Studio with the Android SDK (compileSdk 34) and a matching JDK for the Android Gradle Plugin; building produces a debug APK at app/build/outputs/apk/debug/.
Do I need anything beyond Android Studio to build this?Yes — Git LFS. Native .so libraries under jniLibs/ and the geoip.dat/geosite.dat files are tracked with Git LFS, so you must install it and run git lfs pull after cloning or those files will just be small pointer stubs.
What's experimental or fiddly about this app?The MLM Adaptive Engine (MAE) is explicitly marked experimental. Also, the server-less domain-fronting feature needs a locally generated TLS certificate installed, and on Android 11+ the OS no longer lets an app install its own certificate silently, so the user has to walk through Settings manually.
Where does the domain-fronting certificate go?It's generated on-device (RSA-2048, raw DER/X.509, no third-party crypto library) and stays on that device only, used to terminate TLS locally before re-connecting to the real host under a different SNI.
What is the MLM Adaptive Engine (MAE)?MAE is an experimental per-app router: you pick which apps/sites you use, and it learns per network which path each one actually needs — direct, serverless, WARP, or a proven foreign exit — routing everything over one Xray tunnel, with a 5-step repair ladder when something 'didn't open'.
What does the Game Booster do?It races Cloudflare/UAE Dedicated DNS against the built-in Aether engine by real ping, and uses a lightweight DNS-only local VPN instead of a full tunnel when possible, to cut in-game latency.
What can I do from the Cloudflare Cloud panel?Connect your own Cloudflare account and, without touching the Cloudflare dashboard, one-tap deploy self-hosted Worker backends (BPB, EDG, Nahan), auto-create subdomains, fetch nodes your own worker generates, and track usage against the 100,000-requests/day free quota.
How does server-less domain fronting bypass blocks without a server?The app generates an on-device root certificate, terminates TLS locally against it, and re-establishes the connection to the real host (e.g. YouTube, WhatsApp, Instagram) under a different, unblocked SNI — no proxy server or Cloudflare Worker is involved at all.
Creator
mlmvpn
Size
228.2 MB
Stars
411
Age
4mo
Commits · 90 Days