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, built with Kotlin + Jetpack Compose. | اپلیکیشن اندروید VPN و اسکنر شبکه چندموتوره

Kotlin

157

52 commits

updated Sep 25, 2026

See the code

README

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.

  • 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 censorship circumvention; see 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, Nahan) straight from the phone
    • auto subdomain creation on *.workers.dev with account verification/quota checks
    • fetch nodes generated by your own deployed worker back into the app
    • live daily usage tracking against the Workers free-tier quota (100,000 requests/day)
    • per-worker user management and settings screens
    • received node groups browser (nodes your workers have produced, grouped by engine/date)
  • Game Booster — races Cloudflare/UAE Dedicated DNS and the Aether engine by real ping to minimize in-game latency, using a local pass-through DNS-only VPN when a full tunnel isn't needed.
  • Sanction-domain routing (engines/sanction, "DNS ضد تحریم شخصی") — a dedicated personal DNS engine that smart-routes sanctioned/geo-restricted services, reachable from the app's side menu.
  • 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 statistics, Fixed-IP management, deployed-Workers list, personal anti-sanction DNS, a subscription-link generator, an in-app tutorial, and About.
  • Three-tier Emergency fallback system — guided, progressively more aggressive recovery paths (Emergency 1/2/3 in the side menu) for when primary connectivity is fully blocked, up to and including a Vercel-based relay bootstrap.

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

  • کلاینت حرفه‌ای 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 / WARP-in-WARP؛ به AETHER.md مراجعه کنید
    • مرور رله‌های عمومی VPN Gate (engines/vpngate، SoftEther/OpenVPN)
  • پنل ابری (اتصال حساب کلودفلر) (CloudTab، data/CloudManager) — اتصال یک یا چند حساب کلودفلر (ایمیل + Global API Key یا توکن محدودشده) مستقیماً داخل اپ، بدون نیاز به داشبورد کلودفلر:
    • استقرار یک‌لمسی چند بک‌اند ورکر خوداستقرار (BPB، EDG، Nahan) از داخل گوشی
    • ساخت خودکار ساب‌دامین روی *.workers.dev همراه با بررسی تأیید حساب/سقف مصرف
    • دریافت نودهای تولیدشده توسط ورکر خودتان مستقیماً داخل اپ
    • پایش زنده مصرف روزانه در برابر سقف رایگان ورکرها (۱۰۰,۰۰۰ درخواست در روز)
    • مدیریت کاربران و صفحه تنظیمات برای هر ورکر
    • مرورگر گروه‌های نود دریافتی (نودهایی که ورکرهای شما تولید کرده‌اند، گروه‌بندی‌شده بر اساس موتور/تاریخ)
  • بوستر بازی — DNS اختصاصی کلودفلر/امارات و موتور Aether را با پینگ واقعی مسابقه می‌دهد تا در صورت امکان با یک VPN محلی فقط-DNS (بدون تونل کامل)، تأخیر داخل بازی را کمینه کند.
  • مسیریابی دامنه‌های تحریم‌شده (engines/sanction، «DNS ضد تحریم شخصی») — یک موتور 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 متفاوت و بلاک‌نشده به مقصد واقعی وصل می‌شود. گواهی مخصوص هر گوشی است و هیچ‌جا ارسال نمی‌شود؛ راه‌اندازی یک کارت هدایت‌شده داخل اپ است که گواهی را به نصب‌کننده‌ی خود اندروید می‌سپارد (یا در اندروید ۱۱ به بالا، چون پلتفرم دیگر گواهی داده‌شده توسط اپ را قبول نمی‌کند، کاربر را قدم‌به‌قدم در تنظیمات راهنمایی می‌کند).
  • منوی کناری (همبرگری) — دسترسی سریع به: تنظیمات، آمار مصرف داده، مدیریت IP ثابت، لیست ورکرهای مستقرشده، DNS ضد تحریم شخصی، تولیدکننده لینک اشتراک، آموزش داخل‌اپ، و درباره ما.
  • سیستم پشتیبان اضطراری سه‌سطحی — مسیرهای بازیابی هدایت‌شده و به‌مرور تهاجمی‌تر (اضطراری ۱/۲/۳ در منوی کناری) برای زمانی که مسیرهای اصلی اتصال کاملاً مسدود شده باشند، تا سطح بوت‌استرپ رله مبتنی بر Vercel.

ساختار پروژه

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

amneziawg
android
censorship-circumvention
gplv3
jetpack-compose
kotlin
network-scanner
vpn
wireguard
xray

Contributors

mlmvpn

52 commits

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, built with Kotlin + Jetpack Compose. | اپلیکیشن اندروید VPN و اسکنر شبکه چندموتوره

Kotlin

157

52 commits

updated Sep 25, 2026

See the code

README

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.

  • 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 censorship circumvention; see 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, Nahan) straight from the phone
    • auto subdomain creation on *.workers.dev with account verification/quota checks
    • fetch nodes generated by your own deployed worker back into the app
    • live daily usage tracking against the Workers free-tier quota (100,000 requests/day)
    • per-worker user management and settings screens
    • received node groups browser (nodes your workers have produced, grouped by engine/date)
  • Game Booster — races Cloudflare/UAE Dedicated DNS and the Aether engine by real ping to minimize in-game latency, using a local pass-through DNS-only VPN when a full tunnel isn't needed.
  • Sanction-domain routing (engines/sanction, "DNS ضد تحریم شخصی") — a dedicated personal DNS engine that smart-routes sanctioned/geo-restricted services, reachable from the app's side menu.
  • 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 statistics, Fixed-IP management, deployed-Workers list, personal anti-sanction DNS, a subscription-link generator, an in-app tutorial, and About.
  • Three-tier Emergency fallback system — guided, progressively more aggressive recovery paths (Emergency 1/2/3 in the side menu) for when primary connectivity is fully blocked, up to and including a Vercel-based relay bootstrap.

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

  • کلاینت حرفه‌ای 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 / WARP-in-WARP؛ به AETHER.md مراجعه کنید
    • مرور رله‌های عمومی VPN Gate (engines/vpngate، SoftEther/OpenVPN)
  • پنل ابری (اتصال حساب کلودفلر) (CloudTab، data/CloudManager) — اتصال یک یا چند حساب کلودفلر (ایمیل + Global API Key یا توکن محدودشده) مستقیماً داخل اپ، بدون نیاز به داشبورد کلودفلر:
    • استقرار یک‌لمسی چند بک‌اند ورکر خوداستقرار (BPB، EDG، Nahan) از داخل گوشی
    • ساخت خودکار ساب‌دامین روی *.workers.dev همراه با بررسی تأیید حساب/سقف مصرف
    • دریافت نودهای تولیدشده توسط ورکر خودتان مستقیماً داخل اپ
    • پایش زنده مصرف روزانه در برابر سقف رایگان ورکرها (۱۰۰,۰۰۰ درخواست در روز)
    • مدیریت کاربران و صفحه تنظیمات برای هر ورکر
    • مرورگر گروه‌های نود دریافتی (نودهایی که ورکرهای شما تولید کرده‌اند، گروه‌بندی‌شده بر اساس موتور/تاریخ)
  • بوستر بازی — DNS اختصاصی کلودفلر/امارات و موتور Aether را با پینگ واقعی مسابقه می‌دهد تا در صورت امکان با یک VPN محلی فقط-DNS (بدون تونل کامل)، تأخیر داخل بازی را کمینه کند.
  • مسیریابی دامنه‌های تحریم‌شده (engines/sanction، «DNS ضد تحریم شخصی») — یک موتور 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 متفاوت و بلاک‌نشده به مقصد واقعی وصل می‌شود. گواهی مخصوص هر گوشی است و هیچ‌جا ارسال نمی‌شود؛ راه‌اندازی یک کارت هدایت‌شده داخل اپ است که گواهی را به نصب‌کننده‌ی خود اندروید می‌سپارد (یا در اندروید ۱۱ به بالا، چون پلتفرم دیگر گواهی داده‌شده توسط اپ را قبول نمی‌کند، کاربر را قدم‌به‌قدم در تنظیمات راهنمایی می‌کند).
  • منوی کناری (همبرگری) — دسترسی سریع به: تنظیمات، آمار مصرف داده، مدیریت IP ثابت، لیست ورکرهای مستقرشده، DNS ضد تحریم شخصی، تولیدکننده لینک اشتراک، آموزش داخل‌اپ، و درباره ما.
  • سیستم پشتیبان اضطراری سه‌سطحی — مسیرهای بازیابی هدایت‌شده و به‌مرور تهاجمی‌تر (اضطراری ۱/۲/۳ در منوی کناری) برای زمانی که مسیرهای اصلی اتصال کاملاً مسدود شده باشند، تا سطح بوت‌استرپ رله مبتنی بر Vercel.

ساختار پروژه

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

amneziawg
android
censorship-circumvention
gplv3
jetpack-compose
kotlin
network-scanner
vpn
wireguard
xray

Contributors

mlmvpn

52 commits

Languages

Kotlin

71.2%

JavaScript

26.4%

Java

2.3%