Compare commits
1 Commits
v3.1.0
...
revert-29-main
| Author | SHA1 | Date | |
|---|---|---|---|
| d0bfd6469b |
@@ -45,8 +45,6 @@ android {
|
||||
|
||||
externalNativeBuild {
|
||||
cmake {
|
||||
// 设置cmake版本
|
||||
version = "3.31.6"
|
||||
path = file("src/main/cpp/CMakeLists.txt")
|
||||
}
|
||||
}
|
||||
@@ -64,4 +62,4 @@ afterEvaluate {
|
||||
tasks.withType(GolangBuildTask::class.java).forEach {
|
||||
it.inputs.dir(golangSource)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,57 +1,47 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
# 获取git hash
|
||||
|
||||
message(STATUS "CMAKE_CURRENT_SOURCE_DIR= ${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
execute_process(
|
||||
COMMAND git submodule foreach git log -1 --format=%H
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE COMMIT_HASH
|
||||
)
|
||||
string(REPLACE "\n" ";" COMMIT_HASH "${COMMIT_HASH}")
|
||||
list(GET COMMIT_HASH 1 COMMIT_HASH)
|
||||
string (REGEX REPLACE "[\n\t\r]" "" COMMIT_HASH ${COMMIT_HASH})
|
||||
string(SUBSTRING ${COMMIT_HASH} 0 7 COMMIT_HASH)
|
||||
message(STATUS "git hash= ${COMMIT_HASH}")
|
||||
|
||||
# 判断是否获取到了git hash值(规避如因项目目录非git repository等原因产生的获取异常而中断build)
|
||||
string(LENGTH ${COMMIT_HASH} OUTPUT_VARIABLE COMMIT_HASH_LENGTH)
|
||||
string(COMPARE LESS ${COMMIT_HASH_LENGTH} "40" OUTPUT_VARIABLE GIT_HASH_COMPARISON_RESULT)
|
||||
if(NOT ${GIT_HASH_COMPARISON_RESULT})
|
||||
string(REPLACE "\n" ";" COMMIT_HASH "${COMMIT_HASH}")
|
||||
list(GET COMMIT_HASH 1 COMMIT_HASH)
|
||||
string (REGEX REPLACE "[\n\t\r]" "" COMMIT_HASH ${COMMIT_HASH})
|
||||
#string(SUBSTRING ${COMMIT_HASH} 0 7 COMMIT_HASH)
|
||||
message(STATUS "git hash= ${COMMIT_HASH}")
|
||||
# 获取分支名称
|
||||
execute_process(
|
||||
COMMAND git submodule foreach git branch -r --contains ${COMMIT_HASH}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE CURRENT_BRANCH
|
||||
)
|
||||
string(REPLACE "\n" ";" CURRENT_BRANCH "${CURRENT_BRANCH}")
|
||||
list(GET CURRENT_BRANCH 1 CURRENT_BRANCH)
|
||||
string (REGEX REPLACE "origin/" "" CURRENT_BRANCH ${CURRENT_BRANCH} "")
|
||||
string (REGEX REPLACE "[\n\t\r]" "" CURRENT_BRANCH ${CURRENT_BRANCH} "")
|
||||
#string(SUBSTRING ${CURRENT_BRANCH} 0 8 CURRENT_BRANCH)
|
||||
message(STATUS "git current branch = ${CURRENT_BRANCH}")
|
||||
|
||||
# 获取git分支名称
|
||||
execute_process(
|
||||
COMMAND git submodule foreach git branch -r --contains ${COMMIT_HASH}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE CURRENT_BRANCH
|
||||
)
|
||||
# 获取生成时间
|
||||
string(TIMESTAMP COMPILE_TIME "%y%m%d")
|
||||
string (REGEX REPLACE "[\n\t\r]" "" COMPILE_TIME ${COMPILE_TIME})
|
||||
string(REGEX REPLACE "\"" "" COMPILE_TIME ${COMPILE_TIME})
|
||||
|
||||
string(REPLACE "\n" ";" CURRENT_BRANCH "${CURRENT_BRANCH}")
|
||||
list(GET CURRENT_BRANCH 1 CURRENT_BRANCH)
|
||||
string (REGEX REPLACE "origin/" "" CURRENT_BRANCH ${CURRENT_BRANCH} "")
|
||||
string (REGEX REPLACE "[\n\t\r]" "" CURRENT_BRANCH ${CURRENT_BRANCH} "")
|
||||
string(SUBSTRING ${CURRENT_BRANCH} 0 8 CURRENT_BRANCH)
|
||||
message(STATUS "git current branch = ${CURRENT_BRANCH}")
|
||||
# 生成版本信息
|
||||
set(GIT_VERSION "${CURRENT_BRANCH}_${COMMIT_HASH}_${COMPILE_TIME}")
|
||||
message(STATUS "version info = ${GIT_VERSION}")
|
||||
|
||||
# 获取生成时间
|
||||
string(TIMESTAMP COMPILE_TIME "%y%m%d")
|
||||
string (REGEX REPLACE "[\n\t\r]" "" COMPILE_TIME ${COMPILE_TIME})
|
||||
string(REGEX REPLACE "\"" "" COMPILE_TIME ${COMPILE_TIME})
|
||||
|
||||
# 生成版本信息
|
||||
set(GIT_VERSION "${CURRENT_BRANCH}_${COMMIT_HASH}_${COMPILE_TIME}")
|
||||
message(STATUS "version info = ${GIT_VERSION}")
|
||||
|
||||
# 去除空格
|
||||
string(REGEX REPLACE "[ ]+" "" GIT_VERSION "${GIT_VERSION}")
|
||||
else()
|
||||
message(AUTHOR_WARNING "Unable to get git hash, but build will continue.")
|
||||
|
||||
endif()
|
||||
# 去除空格
|
||||
string(REGEX REPLACE "[ ]+" "" GIT_VERSION "${GIT_VERSION}")
|
||||
|
||||
# 保存变量到文件
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_SOURCE_DIR}/version.h @ONLY)
|
||||
|
||||
#设置项目名称与语言类别(必)
|
||||
project(clash-bridge C)
|
||||
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@ dependencies {
|
||||
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
|
||||
|
||||
implementation("com.github.bumptech.glide:glide:4.16.0")
|
||||
kapt("com.github.bumptech.glide:compiler:4.15.1")
|
||||
annotationProcessor("com.github.bumptech.glide:compiler:4.15.1")
|
||||
|
||||
}
|
||||
|
||||
@@ -6,6 +6,3 @@
|
||||
# header note.
|
||||
#Wed Dec 11 11:56:02 CST 2024
|
||||
sdk.dir=/Volumes/TOSHIBA/androidstudio/sdk
|
||||
|
||||
# 设置cmake(使用android studio SDK manager安装)路径至版本
|
||||
cmake.dir=C\:\\Users\\Administrator\\AppData\\Local\\Android\\Sdk\\cmake\\3.31.6
|
||||
|
||||
@@ -51,7 +51,7 @@ dependencyResolutionManagement {
|
||||
library("androidx-activity", "androidx.activity:activity:$activity")
|
||||
library("androidx-fragment", "androidx.fragment:fragment:$fragment")
|
||||
library("androidx-appcompat", "androidx.appcompat:appcompat:$appcompat")
|
||||
library("androidx-appcompat-resources", "androidx.appcompat:appcompat-resources:$appcompatres")
|
||||
library("androidx-appcompat", "androidx.appcompat:appcompat-resources:$appcompatres")
|
||||
library("androidx-coordinator", "androidx.coordinatorlayout:coordinatorlayout:$coordinator")
|
||||
library("androidx-recyclerview", "androidx.recyclerview:recyclerview:$recyclerview")
|
||||
library("androidx-viewpager", "androidx.viewpager2:viewpager2:$viewpager")
|
||||
@@ -64,4 +64,4 @@ dependencyResolutionManagement {
|
||||
library("rikkax-multiprocess", "dev.rikka.rikkax.preference:multiprocess:$multiprocess")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,190 @@
|
||||
## UUVPN - Redesigned for Performance, Stability, and [V2Board](https://github.com/cedar2025/Xboard) Compatibility
|
||||
|
||||
The original UUVPN was built using Flutter, which led to increasing challenges in maintaining the codebase due to performance issues, subpar UI quality, and a lack of stability. To address these concerns, UUVPN has been completely redeveloped for native performance on iOS/macOS and Android, utilizing the powerful SINGBOX and CLASH cores.
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
### The new version features:
|
||||
|
||||
- A sleek, more responsive user interface
|
||||
- Enhanced app stability
|
||||
- Significant performance optimizations
|
||||
- Additionally, UUVPN now supports server backend protocols with full compatibility for V2Board, providing a more seamless and flexible user experience for VPN management.
|
||||
|
||||
### Key Features:
|
||||
- Native Performance: Utilizing SINGBOX for iOS/macOS and CLASH for Android, UUVPN is optimized for stability and speed.
|
||||
- V2Board Compatibility: Fully supports V2Board protocols, offering smooth integration for backend management.
|
||||
- Refined UI: A completely redesigned interface with a modern look and feel, providing a user-friendly experience.
|
||||
|
||||
|
||||
### Download iOS and android
|
||||
- [iOS TestFlight (Beta)](https://t.me/dcgzeus)
|
||||
- [Android Apk](https://github.com/nicolastinkl/UUVPN/releases)
|
||||
|
||||
## iOS Screenshots and Demo Video:
|
||||
|
||||
### SKIN 1:
|
||||
<table>
|
||||
<tr>
|
||||
|
||||
<td><img src="screenshots/IMG_8546.PNG" width="300" /></td>
|
||||
<td><img src="screenshots/IMG_8544.PNG" width="300" /></td>
|
||||
<td><img src="screenshots/IMG_8547.PNG" width="300" /></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
### SKIN 2:
|
||||
|
||||
|
||||
<table>
|
||||
|
||||
<tr>
|
||||
|
||||
<td><img src="screenshots/21-31-06.png" width="300" /></td>
|
||||
<td><img src="screenshots/IMG_8728.PNG" width="300" /></td>
|
||||
<td><img src="screenshots/IMG_8725.PNG" width="300" /></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
### LOGIC VIEWS:
|
||||
|
||||
|
||||
<table>
|
||||
|
||||
<tr>
|
||||
|
||||
<td><img src="screenshots/mmexport1730598307009.png" width="300" /></td>
|
||||
<td><img src="screenshots/mmexport1730598308041.png" width="300" /></td>
|
||||
<td><img src="screenshots/mmexport1730598311150.png" width="300" /></td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td><img src="screenshots/gongdan.png" width="300" /></td>
|
||||
<td><img src="screenshots/gongdanchat.png" width="300" /></td>
|
||||
<td><img src="screenshots/mmexport1730598305428.jpg" width="300" /></td>
|
||||
</tr>
|
||||
|
||||
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
## Vidos:
|
||||
<table>
|
||||
<tr>
|
||||
<td><img src="screenshots/13264cf9-99e7-4ff8-8e32-2564eea05670.gif" width="200" /></td>
|
||||
<td><img src="screenshots/8a51ed33-248b-45eb-b5ba-b92821256632.gif" width="200" /></td>
|
||||
<td><img src="screenshots/8a51ed33-248b-45eb-b5ba-b928212566321.gif" width="200" /></td>
|
||||
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
## [iOS Youtu视频预览地址](https://www.youtube.com/shorts/tnr38-IM-Xo)
|
||||
|
||||
|
||||
# Android App Project
|
||||
|
||||
|
||||
## [Android Youtu视频预览地址](https://youtube.com/shorts/zI1hrpFJbtg?feature=share)
|
||||
|
||||
|
||||

|
||||
## Prerequisites
|
||||
|
||||
Before you begin, ensure you have met the following requirements:
|
||||
|
||||
- **Operating System**: Any system that supports Android development (Windows, macOS, Linux).
|
||||
- **Java Development Kit (JDK)**: JDK 11 or higher.
|
||||
- **Android Studio**: The official IDE for Android development, version 4.1 or higher.
|
||||
- **Android SDK**: The latest version of the Android SDK tools.
|
||||
- **Go**: go version go1.23.2 darwin/amd64
|
||||
|
||||
# Legacy Version (Original Flutter-based UUVPN)
|
||||
The following section contains information about the original Flutter-based UUVPN for historical reference. If you need the source code, you can check out the **flutter** branch
|
||||
|
||||
<details> <summary>Click to view the legacy version details</summary>
|
||||
# Old Description:
|
||||
|
||||

|
||||
|
||||
# UUVPN
|
||||
基于Flutter开发的VPN客户端(ios/android),自主设计,精美UI,优化VPN速度,完全开源。
|
||||
|
||||
A VPN application for [V2Board](https://github.com/v2board/v2board)
|
||||
|
||||
Support iOS and Android now.
|
||||
|
||||
|
||||
|
||||
**IF THIS PROJECT HELPS YOU, PLEASE GIVE ME A LITTLE STAR⭐️.**
|
||||
|
||||
## Screenshots
|
||||

|
||||
|
||||
## App Store
|
||||

|
||||
|
||||
|
||||
## Environment
|
||||
|
||||
- Flutter Flutter 3.10.1 • channel stable • https://github.com/flutter/flutter.git
|
||||
Framework • revision d3d8effc68 (6 weeks ago) • 2023-05-16 17:59:05 -0700
|
||||
Engine • revision b4fb11214d
|
||||
Tools • Dart 3.0.1 • DevTools 2.23.1
|
||||
- Download this version url: https://drive.google.com/file/d/1ksM4_PK9Ibk7ycyrfF7XffM_99_4JYV3/view?usp=sharing
|
||||
- leaf sdk downlaod url: https://github.com/eycorsican/leaf/releases/tag/v0.10.7
|
||||
|
||||
- macOS 13.3.1 +
|
||||
- Xcode 14 +
|
||||
- iOS 15.0 +
|
||||
|
||||
## Installation
|
||||
|
||||
```shell
|
||||
flutter pub get
|
||||
```
|
||||
|
||||
## Develop
|
||||
```shell
|
||||
flutter run
|
||||
```
|
||||
|
||||
## Build
|
||||
build android apk
|
||||
```shell
|
||||
flutter build apk
|
||||
```
|
||||
|
||||
build ios
|
||||
```shell
|
||||
flutter build ios
|
||||
```
|
||||
|
||||
----------------------
|
||||
|
||||
# How to use it?
|
||||

|
||||

|
||||

|
||||
|
||||
- 1: Change Domain File Path : ~UUVPN/flutter/lib/constant/app_urls.dart
|
||||
```
|
||||
static const String baseUrl = "https://xxxx.com";
|
||||
```
|
||||
|
||||
- 2: Xcode Settings:
|
||||

|
||||

|
||||

|
||||
|
||||
- 3: running screenshot:
|
||||

|
||||
|
||||
Reference in New Issue
Block a user