Cross-platform VPN client built with Qt 6 and Xray core.
Official Demo: https://jingoo.biz
- Cross-platform: Android, iOS, macOS, Windows, Linux
- Modern UI: Smooth user interface built with Qt 6 QML
- Multi-protocol: Based on Xray core, supports VMess, VLESS, Trojan, Shadowsocks, etc.
- Multi-language: Supports 8 languages (English, Chinese, Vietnamese, Khmer, Burmese, Russian, Persian, etc.)
- White-labeling: Supports brand customization and multi-tenant deployment
- Features
- Screenshots
- Quick Start
- Platform Support
- Documentation
- Language Support
- Tech Stack
- Build Options
- Development
- Subscription Format
- License Verification
- Contact
- Compliance
- License
- Qt: 6.10.0+ (recommended 6.10.0 or higher)
- CMake: 3.21+
- Compiler:
- macOS/iOS: Xcode 15+
- Android: NDK 27.2+
- Windows: MinGW 13+ (included with Qt)
- Linux: GCC 11+ or Clang 14+
# 1. Fork this repository to your GitHub account
# 2. Clone your fork
git clone https://github.com/YOUR_USERNAME/JinGo.git
cd JinGo
# 3. Create your white-label config
cp -r white-labeling/1 white-labeling/YOUR_BRAND
# 4. Edit white-labeling/YOUR_BRAND/bundle_config.json
{
"panel_url": "https://your-api-server.com",
"app_name": "YourApp",
"support_email": "support@your-domain.com",
...
}
# 5. Replace app icons in white-labeling/YOUR_BRAND/icons/All build scripts are in scripts/build/:
# Android APK
./scripts/build/build-android.sh --release --abi arm64-v8a
# macOS App (Universal Binary: arm64 + x86_64)
./scripts/build/build-macos.sh --release
# iOS App (requires Apple Developer Team ID)
./scripts/build/build-ios.sh --release --team-id YOUR_TEAM_ID
# Linux
./scripts/build/build-linux.sh --release
# Windows (PowerShell)
.\scripts\build\build-windows.ps1./scripts/build/build-macos.sh --release --brand YOUR_BRAND
./scripts/build/build-android.sh --release --brand YOUR_BRAND
./scripts/build/build-ios.sh --release --brand YOUR_BRAND --team-id YOUR_TEAM_ID| Platform | Output | Location |
|---|---|---|
| Android | APK | release/jingo-*-android.apk |
| macOS | DMG | release/jingo-*-macos.dmg |
| iOS | IPA | release/jingo-*-ios.ipa |
| Windows | EXE/MSI | release/jingo-*-windows.exe |
| Linux | tar.gz | release/jingo-*-linux.tar.gz |
| Platform | Architecture | Minimum Version | Status |
|---|---|---|---|
| Android | arm64-v8a, armeabi-v7a, x86_64 | API 28 (Android 9) | ✅ |
| iOS | arm64 | iOS 15.0 | ✅ |
| macOS | arm64, x86_64 | macOS 12.0 | ✅ |
| Windows | x64 | Windows 10 | ✅ |
| Linux | x64 | Ubuntu 20.04+ | ✅ |
- Architecture
- Build Guide
- Development Guide
- White-labeling
- Troubleshooting
- Platform Guide
- Panel Extension
| Language | Code | Status |
|---|---|---|
| English | en_US | ✅ |
| Simplified Chinese | zh_CN | ✅ |
| Traditional Chinese | zh_TW | ✅ |
| Vietnamese | vi_VN | ✅ |
| Khmer | km_KH | ✅ |
| Burmese | my_MM | ✅ |
| Russian | ru_RU | ✅ |
| Persian | fa_IR | ✅ |
- UI Framework: Qt 6.10.0+ (QML/Quick)
- VPN Core: Xray-core (via SuperRay wrapper)
- Network: Qt Network + OpenSSL
- Storage: SQLite (Qt SQL)
- Secure Storage:
- macOS/iOS: Keychain
- Android: EncryptedSharedPreferences
- Windows: DPAPI
- Linux: libsecret
| Option | Default | Description |
|---|---|---|
USE_JINDO_LIB |
ON | Use JinDoCore static library |
JINDO_ROOT |
../JinDo |
JinDo project path |
CMAKE_BUILD_TYPE |
Debug | Build type (Debug/Release) |
# Common options
--clean # Clean build directory
--release # Release mode
--debug # Debug mode
# Android specific
--abi <ABI> # Architecture (arm64-v8a/armeabi-v7a/x86_64/all)
--sign # Sign APK
# macOS specific
--sign # Enable code signing (requires Team ID)
--team-id ID # Apple Development Team ID
# iOS specific (signing required)
--team-id ID # Apple Development Team ID (required)
# Linux specific
--deploy # Deploy Qt dependencies
--package # Create installation package- C++17 standard
- Qt coding conventions
- Use
clang-formatfor formatting
# Enable verbose logging
QT_LOGGING_RULES="*.debug=true" ./JinGo
# Android logcat
adb logcat -s JinGo:V SuperRay-JNI:VThe default subscription format is sing-box (JSON). The application requests flag=sing-box when fetching subscription data from the panel, which returns a standard JSON configuration that is more reliable to parse across all platforms.
Clash (YAML) format is also supported as a fallback when the server returns YAML content.
Official release builds (from CI/CD) have license verification enabled (JINDO_ENABLE_LICENSE_CHECK=ON). These builds validate the application license at runtime with restrictions.
For the open-source version, you should build locally using the build scripts. Local builds have license verification disabled by default.
Note: GitHub Actions CI is not supported. Please use local build scripts or the project's OneDev CI/CD for automated builds.
- Telegram Channel: @OpineWorkPublish
- Telegram Group: @OpineWorkOfficial
This software is designed to protect user privacy and secure network communications. It is strictly prohibited to use this software for:
- Circumventing government network regulations or censorship
- Any activities that violate local laws and regulations
- Unauthorized access to restricted networks or services
Users must comply with all applicable laws and regulations of their country or region. The developers assume no liability for any misuse of this software.
MIT License
Version: 1.0.0 Qt Version: 6.10.0+ Last Updated: 2026-02




