SkillAgentSearch skills...

JinGo

GUI-based proxy/VPN client with full cross-platform support

Install / Use

/learn @opinework/JinGo
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

JinGo VPN

中文

Cross-platform VPN client built with Qt 6 and Xray core.

Notice

The GitHub repository provides a basic feature version, with the open-source edition updated once every six months and the commercial edition receiving weekly bug fixes. We do not offer free customization or update services. This project is intended as a technical reference for developers who have the ability to build, modify, and use it themselves — it is a form of technical exchange.

Open-source does not mean free. We do offer official customization services — you provide detailed requirements, and we quote accordingly. Pricing starts at $500 USD and will not be low, so please consider your budget.

For details, visit our online build service (commercial edition, with better protocol support and UI customization).

Features

  • 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

Protocol Support

| Protocol | Open Source | Commercial | |:---|:---:|:---:| | VMess | ✅ | ✅ | | VLESS | ✅ | ✅ | | VLESS+Reality | ⚠️ | ✅ | | Trojan | ✅ | ✅ | | Shadowsocks | ✅ | ✅ | | WireGuard | ❌ | ✅ | | SOCKS | ❌ | ✅ | | HTTP | ❌ | ✅ | | Hysteria | ❌ | ✅ | | Hysteria2 | ❌ | ✅ | | TUIC | ❌ Not supported by core | ❌ Not supported by core | | IPv6 | ❌ | ✅ |

Screenshots

<p align="center"> <img src="images/macos.png" width="280" alt="macOS" /> </p> <p align="center"> <img src="images/ios.jpg" width="280" alt="iOS" /> <img src="images/android.jpg" width="280" alt="Android" /> </p> <p align="center"> <img src="images/servers.png" width="280" alt="Server List" /> <img src="images/subscription.png" width="280" alt="Subscription" /> </p> <p align="center"> <img src="images/setting.png" width="280" alt="Settings" /> <img src="images/profile.png" width="280" alt="Profile" /> </p>

Table of Contents

Quick Start

Prerequisites

  • 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+

Build Steps

1. Fork and Configure White-label

# 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/

2. Build Application

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.sh

3. Build with White-label Brand

./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

Output Locations

| 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 Support

| 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+ | ✅ |

Platform Distribution

Distribution Formats

| Platform | Format | Signing | Installer | |----------|--------|---------|-----------| | Android | .apk | Keystore (apksigner) | Direct install / Google Play | | iOS | .ipa | Apple Developer Certificate | TestFlight / App Store / Sideload | | macOS | .dmg | Developer ID (optional) | Drag-to-Applications | | Windows | .exe | No code signing (UAC manifest) | NSIS installer | | Linux | .tar.gz / .deb / .rpm | None | CPack |

VPN Mode Support

| Feature | Android | iOS | macOS | Windows | Linux | |---------|---------|-----|-------|---------|-------| | TUN Mode | VpnService | Network Extension | Root (direct TUN) | WinTUN | TUN device | | Local Proxy (SOCKS/HTTP) | Yes | No (sandbox) | Yes | Yes | Yes | | System-wide VPN | Yes | Yes | Yes | Yes | Yes | | Split Tunneling | Yes | Limited | Yes | Yes | Yes |

iOS Signing & Distribution

iOS requires code signing for all distribution methods. The app uses Network Extension (PacketTunnelProvider) which requires special entitlements.

Required Apple Developer Resources:

| Resource | Description | |----------|-------------| | Developer Certificate | Apple Development (debug) or Apple Distribution (release) | | App ID | Main app + PacketTunnelProvider extension (2 App IDs) | | Provisioning Profile | One for main app, one for extension | | Entitlements | Network Extension, VPN API, App Groups, Keychain |

Distribution Methods:

| Method | Certificate | Profile Type | Notes | |--------|-------------|--------------|-------| | Development (USB) | Apple Development | Development | get-task-allow = true, max 100 devices | | Ad Hoc | Apple Distribution | Ad Hoc | Max 100 registered devices | | TestFlight | Apple Distribution | App Store | Up to 10,000 testers, Apple review required | | App Store | Apple Distribution | App Store | Has third-party payment, not supported out-of-box, requires custom development | | Enterprise | Enterprise cert | In-House | $299/year program, no device limit |

Bundle ID Configuration:

Main App:       <your.bundle.id>
Extension:      <your.bundle.id>.PacketTunnelProvider
App Group:      group.<your.bundle.id>

When using --bundle-id, the build script automatically derives the extension Bundle ID and App Group. Entitlements files in platform/ios/ may need manual update if the Team ID changes.

Build & Sign:

# Development build (auto-sign + install to device)
./scripts/build/build-ios.sh --debug --bundle-id com.example.vpn --team-id YOUR_TEAM_ID --install

# Release build (unsigned .app, sign separately)
./scripts/build/build-ios.sh --release --bundle-id com.example.vpn --skip-sign

# Sign and create IPA
./scripts/signing/post_build_ios.sh

Note: The Network Extension entitlement (com.apple.developer.networking.networkextension) requires explicit approval from Apple. You must enable this capability in your App ID configuration on the Apple Developer Portal.

macOS Distribution

macOS does not use Network Extension. Instead, it runs the JinGoCore helper with setuid root to directly create and manage the TUN device.

# Build DMG
./scripts/build/build-macos.sh --release --dmg

# Signed (Developer ID, optional)
./scripts/build/build-macos.sh --release --dmg --sign --team-id YOUR_TEAM_ID

Note: The macOS JinGoCore helper requires setuid root to operate the TUN device, which is configured automatically during installation. Code signing is optional but recommended for distribution (avoids Gatekeeper warnings).

Android Distribution

Android uses standard VpnService API. No special signing requirements beyond a release keystore.

# Debug APK (auto-signed)
./scripts/build/build-android.sh --debug

# Release APK (signed with keystore)
./scripts/build/build-android.sh --release --sign

# Multi-ABI build
./scripts/build/build-android.sh --release --abi all

Windows Distribution

Windows uses WinTUN driver for TUN mode. The installer requires Administrator privileges.

# Build + package
./scripts/build/build-windows.sh

# Output: release/jingo-*-windows-setup.exe (NSIS installer)

Key Notes

  1. iOS sandbox restriction: iOS does not support local SOCKS/HTTP proxy mode. All traffic goes through the TUN device via Network Extension.
  2. iOS entitlements: Changing the Bundle ID requires updating platform/ios/JinGo.entitlements and platform/ios/PacketTunnelProvider.entitlements with the correct application-identifier and com.apple.security.application-groups.
  3. macOS notarization: For distribution outside the App Store, macOS apps should be notarized with xcrun notarytool to avoid Gatekeeper warnings.
  4. Android multi-ABI: Use --abi all to build for arm64-v8a, armeabi-v7a, and x86_64 in a single APK.
  5. White-label Bundle ID: Each white-label brand can specify it

Related Skills

View on GitHub
GitHub Stars20
CategoryCustomer
Updated3d ago
Forks17

Languages

QML

Security Score

95/100

Audited on Mar 30, 2026

No findings