Skip to content

CluvexStudio/ZedSecure

Repository files navigation

πŸ” Zed-Secure VPN

Version Flutter Android License

A professional, modern VPN application for Android with support for V2Ray/Xray protocols

Features β€’ Installation β€’ Build β€’ Screenshots β€’ Contributing


Telegram Channel = https://t.me/CluvexStudio

✨ Features

πŸš€ Core Features

  • πŸ”’ Multiple Protocols: VMess, VLESS, Trojan, Shadowsocks
  • 🌐 Advanced Transports: TCP, WebSocket, HTTP/2, gRPC, QUIC, XHTTP, HTTPUpgrade
  • πŸ“Š Real-time Statistics: Live upload/download speed, connection duration, data usage
  • ⚑ Concurrent Ping Testing: Fast latency testing for all servers simultaneously
  • πŸ”„ Subscription Management: Auto-update servers from subscription URLs
  • 🎯 Per-App Proxy: Route specific apps through VPN (Split Tunneling)

🎨 UI/UX Features

  • πŸ“± Modern Fluent Design: Beautiful UI with Glassmorphism effects
  • πŸŒ“ Light/Dark Mode: Seamless theme switching with persistence
  • πŸŽ›οΈ Smart Config Cards: Click-to-select, individual ping, context menu
  • πŸ“‹ QR Code Support: Scan and generate QR codes for easy sharing
  • πŸ—‘οΈ Smart Cleanup: Auto-delete failed/dead configurations

πŸ’Ύ Data Management

  • πŸ’Ύ Backup & Restore: Export/import configs as JSON to Downloads folder
  • πŸ“€ Easy Import: Clipboard, QR scanner, manual entry
  • πŸ” Search & Sort: Find and organize your servers efficiently

πŸ”§ Advanced Features

  • πŸ” Individual Ping: Test specific server latency on demand
  • πŸ“Š Connection Monitoring: Track network status and VPN health
  • 🎯 Auto-Connect: Remember last selected server
  • πŸ” Secure Storage: Encrypted local storage for sensitive data

πŸ“± Screenshots

Home Screen Servers Settings
Coming Soon Coming Soon Coming Soon

πŸ”§ Tech Stack

  • Frontend: Flutter 3.35.5 (Dart 3.9.2)
  • UI Framework: Fluent UI 4.11.5
  • Backend: Kotlin 2.2.20
  • VPN Core: Xray-core 1.25.3
  • Build System: Gradle 8.7.3
  • Target SDK: Android 16 (API 36)
  • Min SDK: Android 7.0 (API 24)
  • Architecture: Hybrid (Flutter UI + Kotlin Native Layer)

πŸ“₯ Installation

Download APK

Download the latest APK from GitHub Releases

Recommended: app-arm64-v8a-release.apk (for most modern devices)

System Requirements

  • Android: 7.0 (Nougat) or higher
  • Architecture: ARM64-v8a, ARMv7, x86_64
  • Storage: ~50 MB
  • RAM: Minimum 2 GB recommended

πŸ› οΈ Build from Source

Prerequisites

  • Flutter SDK: 3.35.5+ (Install Flutter)
  • Android SDK: 34
  • Java JDK: 11 or higher
  • Git

Step 1: Clone Repository

git clone https://github.com/CluvexStudio/ZedSecure.git
cd ZedSecure

Step 2: Install Dependencies

flutter pub get

Step 3: Setup Signing (Optional for Debug)

For development builds, skip this step. For release builds:

  1. Create your keystore:
keytool -genkey -v -keystore android/app/your-release-key.keystore \
  -alias your-alias -keyalg RSA -keysize 4096 -validity 10000
  1. Create key.properties in project root:
storeFile=android/app/your-release-key.keystore
storePassword=YOUR_PASSWORD
keyAlias=your-alias
keyPassword=YOUR_PASSWORD
  1. Add to .gitignore (already configured):
key.properties
android/app/*.keystore

Step 4: Build APK

Option 1: Build for specific architecture (Recommended)

# ARM64 (most devices, smallest size)
flutter build apk --release --target-platform android-arm64

# ARMv7 (older devices)
flutter build apk --release --target-platform android-arm

# x86_64 (emulators)
flutter build apk --release --target-platform android-x64

Option 2: Build all architectures

flutter build apk --release --split-per-abi

Option 3: Universal APK (larger size)

flutter build apk --release

Debug Build:

flutter build apk --debug

Output Location

APK files will be located at:

build/app/outputs/flutter-apk/

πŸ“– Usage Guide

Adding Servers

Method 1: Subscription URL

  1. Open Subscriptions tab
  2. Tap Add Subscription button
  3. Enter URL and name
  4. Tap Update to fetch servers

Method 2: Clipboard

  1. Copy a config link (vmess://, vless://, trojan://, ss://)
  2. Open Servers tab
  3. Tap Paste button (clipboard icon)

Method 3: QR Code

  1. Open Servers tab
  2. Tap QR Scanner button
  3. Scan QR code

Connecting to VPN

  1. Select a server: Tap on any server card to select it
  2. Test latency (optional): Tap ping icon or use Sort by Ping
  3. Connect: Tap the plug icon on your selected server
  4. Grant VPN permission when prompted
  5. Monitor connection stats on Home screen

Managing Configs

  • Ping Single Server: Tap speed icon on server card
  • Ping All Servers: Tap sort icon in toolbar (concurrent, fast!)
  • Copy Config: Open three-dot menu β†’ Copy Config
  • Show QR Code: Open three-dot menu β†’ Show QR Code
  • Delete Config: Open three-dot menu β†’ Delete
  • Delete Dead Configs: After pinging, tap delete icon to remove failed servers

Backup & Restore

Backup:

  1. Settings β†’ Data β†’ Backup Configs
  2. File saved to: Downloads/zedsecure_backup_YYYYMMDD_HHMMSS.json

Restore:

  1. Settings β†’ Data β†’ Restore Configs
  2. Select backup file from Downloads

🌐 Supported Protocols

VMess

vmess://base64-encoded-json-config

VLESS

vless://uuid@host:port?encryption=none&security=tls&type=ws&path=/path#remark

Trojan

trojan://password@host:port?security=tls&type=tcp#remark

Shadowsocks

ss://base64(method:password)@host:port#remark

Supported Transports

  • TCP
  • WebSocket (ws)
  • HTTP/2 (h2)
  • gRPC
  • QUIC
  • XHTTP (New!)
  • HTTPUpgrade (New!)

πŸ—οΈ Project Structure

zedsecure/
β”œβ”€β”€ android/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ src/main/
β”‚   β”‚   β”‚   β”œβ”€β”€ kotlin/com/zedsecure/vpn/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ MainActivity.kt
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ PingService.kt         # Native ping
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ PingMethodChannel.kt
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ AppListMethodChannel.kt
β”‚   β”‚   β”‚   β”‚   └── SettingsMethodChannel.kt
β”‚   β”‚   β”‚   β”œβ”€β”€ AndroidManifest.xml
β”‚   β”‚   β”‚   └── res/                        # App resources
β”‚   β”‚   └── build.gradle.kts                # App-level Gradle
β”‚   └── settings.gradle.kts                  # Project Gradle
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ main.dart                            # App entry point
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ v2ray_config.dart               # Config model
β”‚   β”‚   └── subscription.dart               # Subscription model
β”‚   β”œβ”€β”€ screens/
β”‚   β”‚   β”œβ”€β”€ home_screen.dart                # Connection screen
β”‚   β”‚   β”œβ”€β”€ servers_screen.dart             # Server list
β”‚   β”‚   β”œβ”€β”€ subscriptions_screen.dart       # Subscription management
β”‚   β”‚   └── settings_screen.dart            # Settings
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ v2ray_service.dart              # VPN logic
β”‚   β”‚   └── theme_service.dart              # Theme management
β”‚   └── theme/
β”‚       └── app_theme.dart                   # UI theme
β”œβ”€β”€ local_packages/
β”‚   └── flutter_v2ray_client/               # Xray integration (local)
β”œβ”€β”€ pubspec.yaml                             # Flutter dependencies
β”œβ”€β”€ key.properties.example                   # Signing template
└── README.md

πŸ” Security & Privacy

Data Protection

  • βœ… All configs encrypted with SharedPreferences
  • βœ… Keystore with 4096-bit RSA key
  • βœ… No user data collection
  • βœ… No telemetry or analytics
  • βœ… Local storage only

Permissions

Permission Usage
INTERNET VPN connection
FOREGROUND_SERVICE VPN service
POST_NOTIFICATIONS Connection status
WRITE_EXTERNAL_STORAGE Backup files
CAMERA QR code scanner

Open Source

  • Full source code available
  • Audit the code yourself
  • No hidden backdoors
  • Community-driven

πŸ†• What's New in v1.2.0

Major Features

  • ✨ Light/Dark Mode: Toggle between themes in Settings
  • ⚑ Concurrent Ping: Test all servers simultaneously (much faster!)
  • πŸ’Ύ Backup & Restore: Export/import your configs as JSON
  • πŸ“· QR Code Scanner: Scan configs with camera
  • 🎨 Improved UI: Better config cards, click-to-select, 2-line names

Enhancements

  • 🎯 Individual Ping Button: Test specific servers on demand
  • πŸ—‘οΈ Delete Dead Configs: Remove failed servers with one tap
  • πŸ“‹ Three-Dot Menu: Copy config, show QR, delete per config
  • πŸ”§ Better About Section: Developer info with GitHub link
  • πŸ“¦ Updated Dependencies: Flutter 3.35.5, Dart 3.9.2, Kotlin 2.2.20

Bug Fixes

  • πŸ› Fixed config name display (now shows 2 lines)
  • πŸ› Fixed UI overflow in header icons
  • πŸ› Fixed card size after ping
  • πŸ› Removed select button, click card to select
  • πŸ› Fixed notification persistence issue

Protocol Support

  • πŸš€ XHTTP Transport (new in Xray 1.25.3)
  • πŸš€ HTTPUpgrade Transport (new in Xray 1.25.3)

πŸ“¦ Dependencies

Production Dependencies

flutter: sdk
fluent_ui: ^4.11.5          # Modern UI framework
glassmorphism: ^3.0.0       # Glass effects
provider: ^6.1.5            # State management
shared_preferences: ^2.2.2  # Local storage
connectivity_plus: ^5.0.2   # Network monitoring
http: ^1.4.0                # HTTP requests
path_provider: ^2.1.1       # File paths
mobile_scanner: ^7.1.2      # QR scanner
qr_flutter: ^4.1.0          # QR generator
permission_handler: ^11.4.0 # Permissions

Dev Dependencies

flutter_lints: ^5.0.0
flutter_launcher_icons: ^0.14.3

🀝 Contributing

We welcome contributions! Here's how you can help:

How to Contribute

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/AmazingFeature
  3. Commit your changes: git commit -m 'Add some AmazingFeature'
  4. Push to the branch: git push origin feature/AmazingFeature
  5. Open a Pull Request

Contribution Guidelines

  • Follow Dart/Flutter style guide
  • Write clear commit messages
  • Add comments for complex logic
  • Test your changes on real devices
  • Update README if adding features

Areas for Contribution

  • πŸ› Bug fixes
  • ✨ New features
  • πŸ“ Documentation improvements
  • 🌍 Translations
  • 🎨 UI/UX enhancements
  • ⚑ Performance optimizations

πŸ“œ License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0) with additional terms.

βœ… You Can:

  • βœ”οΈ Use for personal/educational purposes
  • βœ”οΈ Modify and distribute
  • βœ”οΈ Fork and create derivatives
  • βœ”οΈ Study the code

⚠️ You Must:

  • βœ… Credit CluvexStudio in your app and repository
  • βœ… Keep it open source (GPL-3.0)
  • βœ… Link to this repository: https://github.com/CluvexStudio/ZedSecure
  • βœ… Share modifications under GPL-3.0
  • βœ… Preserve license notices

❌ You Cannot:

  • ❌ Remove credits or claim as your own
  • ❌ Use commercially without permission
  • ❌ Close source or make proprietary
  • ❌ Violate user privacy
  • ❌ Use for illegal activities

πŸ’Ό Commercial Use

Requires explicit written permission from CluvexStudio. Contact via GitHub Issues.

Attribution Template

When forking/modifying:

Based on Zed-Secure VPN by CluvexStudio
https://github.com/CluvexStudio/ZedSecure
Licensed under GPL-3.0

See the LICENSE file for full legal terms.


πŸ™ Acknowledgments


⚠️ Disclaimer

This application is intended for educational and research purposes only. Users are solely responsible for:

  • Complying with local laws and regulations
  • Respecting Terms of Service of networks
  • Ethical and legal use of the software

The developers are not responsible for misuse, illegal activities, or damages arising from the use of this application.


πŸ’‘ Support & Community

Get Help

Show Support

  • ⭐ Star this repository if you find it helpful!
  • 🍴 Fork and contribute
  • πŸ“’ Share with others who need privacy tools
  • πŸ’¬ Spread the word about open-source privacy

πŸ‘¨β€πŸ’» Developed by

CluvexStudio

GitHub Project

Building open-source tools for digital freedom and privacy


πŸ“Š Stats

GitHub stars GitHub forks GitHub watchers


Made with ❀️ for digital freedom

If you find this project useful, please consider giving it a ⭐!

Report Bug β€’ Request Feature β€’ Contribute

About

πŸ”’ Professional Android VPN app with Flutter & Kotlin | Modern Fluent UI Design

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published