Открытый Android VPN-клиент на Kotlin и Jetpack Compose.
Подписки, выбор сервера, Xray-core и прозрачная диагностика VPN-сессии.
Скачать APK · ShieldCN · Собрать из исходников · Статус проекта · Лицензия и бренд
MaxSpeedVPN — Android VPN-клиент с тёмным интерфейсом, управлением подписками и нативным сетевым конвейером на базе Xray-core или sing-box и HEV tun2socks.
Проект создаётся как понятная, расширяемая альтернатива перегруженным универсальным клиентам: обычные действия доступны из основного интерфейса, а технические события и ошибки не скрываются от пользователя.
Warning
Текущий статус — alpha. APK предназначен для разработки и тестирования. Проект ещё не прошёл полный аудит безопасности и приёмочные испытания на широком наборе устройств. Текущий release использует debug-подпись.
- тёмный интерфейс на Jetpack Compose + Material 3;
- единая главная с подключением, серверами, подписками и сворачиваемым журналом; нижняя навигация из двух разделов;
- добавление, обновление и безопасный deep-link/clipboard импорт подписок;
- versioned export/import резервной копии через системный Android document picker с подтверждением и валидацией;
- Base64 и plain-text списки серверов;
- импорт ссылок VLESS, VMess, Trojan, Shadowsocks, Hysteria2/Hy2, TUIC, NaiveProxy и Mieru;
- безопасный
mieru://deep-link импорт с проверкой версии и подтверждением перед сохранением; - группы, поиск, избранное, TCP endpoint latency и сортировка серверов;
- трафик, лимит и срок действия из
subscription-userinfo; - Android
VpnService, foreground-уведомление и HEV tun2socks; - реальное переключение Xray-core / sing-box 1.13.14 extended с XHTTP и Naive outbound;
- state machine, crash recovery и fail-closed проверка sing-box-конфигурации;
- простые режимы маршрутизации для обоих ядер: всё через VPN, обход LAN и собственные исключения доменов/IP;
- расширенные MTU, DNS, IPv6, выбор ядра и backup скрыты от основного экрана;
- персистентный журнал с фильтрами, очисткой и экспортом;
- unit-тесты, Android smoke и сборка в GitHub Actions;
- universal APK и уменьшенные APK для четырёх ABI с SHA-256.
- импорт QR-кодов;
- исключение отдельных приложений из VPN;
- дополнительные форматы подписок и sing-box transports;
- quick settings tile и проверка обновлений;
- production signing и широкая device matrix.
| Формат | Импорт | Xray | sing-box | Статус |
|---|---|---|---|---|
| VLESS | ✅ | ✅ | ✅ | TCP, WS, gRPC; XHTTP — sing-box extended |
| VMess | ✅ | ✅ | ✅ | Alpha |
| Trojan | ✅ | ✅ | ✅ | Alpha |
| Shadowsocks | ✅ | ✅ | ✅ | Alpha |
| Hysteria2 / Hy2 | ✅ | — | ✅ | Нативный sing-box outbound |
| TUIC | ✅ | — | ✅ | Нативный sing-box outbound |
| NaiveProxy | ✅ | — | ✅ | naive+https://, Cronet-enabled core |
| Subscription URL | ✅ | — | — | Base64 или plain text |
| sing-box runtime | — | — | ✅ | 1.13.14 extended, pinned source и SHA-256 |
Поддержка формата ссылки не означает совместимость со всеми комбинациями transport/security. Перед использованием проверяйте конкретный профиль и журнал подключения.
┌───────────────────────────── MAXSPEEDVPN ──────────────────────────────┐
│ │
│ Jetpack Compose UI │
│ │ │
│ ├── SubscriptionRepository → Parser → Xray JSON │
│ │ │
│ └── MaxSpeedVpnService │
│ │ │
│ ▼ │
│ VpnSessionCoordinator ───────────────→ Persistent AppLog │
│ │ ▲ │
│ ├── XrayEngine ────────────────────┤ │
│ │ ▲ │ │
│ └── Android TUN → HEV tun2socks ──┘ │
│ │ │
│ └──→ SOCKS 127.0.0.1:10808 │
│ │ │
│ └──→ Xray → сеть │
└─────────────────────────────────────────────────────────────────┘
Профиль подписки
│
▼
SubscriptionParser → Xray JSON с локальным SOCKS inbound
│
▼
MaxSpeedVpnService → VpnSessionCoordinator
│
├── Android VpnService создаёт TUN
├── HEV tun2socks получает TUN FD
└── XrayEngine запускает локальный SOCKS и outbound
Android traffic → TUN → HEV → SOCKS 127.0.0.1:10808 → Xray → сеть
Готовые сборки и описание изменений публикуются на странице GitHub Releases. Полная история — в CHANGELOG.md.
ShieldCN — официальный ресурс проекта.
Выбирайте файл по архитектуре устройства:
| APK | Для кого | Размер debug-сборки |
|---|---|---|
arm64-v8a |
большинство современных телефонов | ~49 MiB |
armeabi-v7a |
старые 32-битные ARM-устройства | ~50 MiB |
x86_64 |
эмуляторы и редкие x86_64-устройства | ~51 MiB |
x86 |
старые x86-устройства/эмуляторы | ~52 MiB |
universal |
если архитектура неизвестна | ~151 MiB |
ABI-specific APK примерно на 65–68% меньше universal. Для каждого релиза публикуется SHA256SUMS.txt; проверяйте checksum перед установкой. Android может предупреждать об установке приложения вне магазина — это нормально для GitHub-сборки.
| Компонент | Версия/требование |
|---|---|
| JDK | 17 |
| Android SDK | 34 |
| Gradle wrapper | 8.5 |
| Android Gradle Plugin | 8.2.2 |
| Kotlin | 1.9.22 |
| CLI | curl, unzip, readelf, strings |
git clone https://github.com/envywook/MaxSpeedVPN.git MaxSpeedVPN
cd MaxSpeedVPN
./scripts/prepare-native-deps.sh
./gradlew testDebugUnitTest assembleDebugAPK появятся здесь:
app/build/outputs/apk/debug/app-arm64-v8a-debug.apk
app/build/outputs/apk/debug/app-armeabi-v7a-debug.apk
app/build/outputs/apk/debug/app-x86_64-debug.apk
app/build/outputs/apk/debug/app-x86-debug.apk
app/build/outputs/apk/debug/app-universal-debug.apk
Нативные бинарники не хранятся в Git. prepare-native-deps.sh загружает закреплённые версии и проверяет SHA-256:
AndroidLibXrayLite v26.7.19;- HEV-библиотеки из официальных APK v2rayNG
2.2.6.
Workflow Android CI and Release:
| Событие | Результат |
|---|---|
Push в main |
unit-тесты, сборка APK, CI artifact |
| Pull request | unit-тесты и сборка |
Тег v* |
тесты, сборка и GitHub pre-release с APK и SHA-256 |
| Ручной запуск | тесты и CI artifact |
| Подсистема | Состояние |
|---|---|
| UI shell | 🟡 Базовые пять разделов готовы |
| Подписки и выбор сервера | 🟡 Реализовано, расширяется совместимость |
| Xray runtime | 🟡 Интегрирован, продолжается device acceptance |
| HEV tun2socks | 🟡 JNI подключён, startup pipeline стабилизируется |
| Персистентная диагностика | 🟢 Работает |
| sing-box runtime | ⚪ Запланирован |
| Production signing | ⚪ Не настроен |
| Security review | ⚪ Не завершён |
- Не публикуйте subscription URL, UUID, ключи REALITY и другие секреты в issues или логах.
- Не устанавливайте APK из непроверенных зеркал.
- Уязвимости отправляйте по инструкции в SECURITY.md, а не через публичный issue.
- Правила использования сторонних компонентов перечислены в THIRD_PARTY_NOTICES.md.
Issues и pull requests приветствуются. Для отчёта об ошибке приложите:
- модель устройства и версию Android;
- версию MaxSpeedVPN;
- тип профиля без секретных параметров;
- точную последовательность действий;
- обезличенный фрагмент журнала.
Перед pull request выполните:
./gradlew testDebugUnitTest assembleDebugИсходный код MaxSpeedVPN распространяется по лицензии GNU GPL-3.0, если конкретный файл не указывает иное. Сторонние компоненты сохраняют собственные лицензии — см. THIRD_PARTY_NOTICES.md.
Название MaxSpeedVPN, логотипы, иконка приложения, фирменный визуал, официальные artwork, домены, подпись официальных APK и официальная инфраструктура не предоставляются по GPL. Они регулируются TRADEMARKS.md и assets/LICENSE.md.
Форк кода допустим в рамках GPL, но модифицированная или распространяемая версия должна сменить название, package ID, иконку и брендинговые материалы, удалить ссылки на официальную инфраструктуру и явно обозначить себя как независимый неофициальный форк. Публичный исходный код не даёт доступ к подпискам, API, update-сервису, приватным ключам или официальной поддержке.
MaxSpeedVPN · Android · Kotlin · Xray-core · sing-box · HEV tun2socks
