Compare commits
247 changed files with 722 additions and 365 deletions
33
.github/ISSUE_TEMPLATE/bug_vi.md
vendored
33
.github/ISSUE_TEMPLATE/bug_vi.md
vendored
|
|
@ -1,33 +0,0 @@
|
|||
---
|
||||
name: Sự cố trên v2rayNG
|
||||
about: Tạo báo cáo để giúp chúng tôi cải thiện.
|
||||
---
|
||||
|
||||
Vui lòng tự khắc phục sự cố phía máy chủ trước khi đặt câu hỏi và cũng thực hiện tìm kiếm để xem có ai khác đã đặt câu hỏi tương tự hay không.
|
||||
|
||||
|
||||
### Hành vi mong đợi
|
||||
mô tả những gì bạn nghĩ sẽ xảy ra
|
||||
|
||||
### Hành vi thực tế
|
||||
mô tả những gì thực sự đã xảy ra
|
||||
|
||||
### Phương pháp sao chép
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
|
||||
### Thông tin nhật ký
|
||||
<chi tiết>
|
||||
|
||||
Nhận nhật ký qua `adb logcat -s com.v2ray.ang GoLog V2rayConfigUtilGoLog Main`. Vui lòng xóa thông tin nhạy cảm có thể xuất hiện trong nhật ký của chính bạn.
|
||||
|
||||
Nếu sự cố có thể được tái tạo, bạn nên thực thi `adb logcat -c` để xóa nhật ký hệ thống trước khi thực hiện lệnh trên, sau đó thao tác để tái tạo sự cố.
|
||||
`` '
|
||||
dán nhật ký vào đây
|
||||
`` '
|
||||
</details>
|
||||
|
||||
### Thông tin Môi trường
|
||||
|
||||
### Thông tin bổ sung (tùy chọn)
|
||||
5
.github/ISSUE_TEMPLATE/config.yml
vendored
5
.github/ISSUE_TEMPLATE/config.yml
vendored
|
|
@ -1,5 +0,0 @@
|
|||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Sự cố trên V2Ray
|
||||
url: https://github.com/v2fly/v2ray-core/
|
||||
about: Nếu bạn gặp vấn đề với V2Ray thay vì v2rayNG, vui lòng truy cập liên kết này để thảo luận.
|
||||
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -1,5 +0,0 @@
|
|||
*.dat
|
||||
*.jks
|
||||
V2rayNG/app/release/output.json
|
||||
.idea/
|
||||
.gradle/
|
||||
27
CR.md
27
CR.md
|
|
@ -1,27 +0,0 @@
|
|||
Chính sách quyền riêng tư của v2rayNG
|
||||
|
||||
Cập nhật lần cuối 2017-11-22
|
||||
|
||||
v2rayNG tôn trọng và bảo vệ quyền riêng tư cá nhân của tất cả người dùng, vì vậy chúng tôi công khai chính sách bảo mật này với mọi người. **Việc bạn sử dụng v2rayNG có nghĩa là bạn đã đọc và đồng ý với các điều khoản, nếu không đồng ý với các điều khoản, vui lòng ngừng sử dụng và gỡ cài đặt v2rayNG ngay lập tức.**
|
||||
|
||||
1. Thu thập thông tin
|
||||
|
||||
Bản thân phần mềm v2rayNG không gửi bất kỳ thông tin nào cho nhà phát triển, nhưng thị trường ứng dụng nơi bạn tải xuống phần mềm (chẳng hạn như Google Play) có thể thu thập thông tin liên quan về trạng thái đang chạy của ứng dụng và cung cấp cho nhà phát triển v2rayNG. Để biết thông tin này, vui lòng đọc chính sách bảo mật được cung cấp bởi thị trường bạn sử dụng.
|
||||
|
||||
|
||||
2. Chia sẻ thông tin
|
||||
|
||||
Chúng tôi không bán dữ liệu người dùng đã thu thập cho bất kỳ bên thứ ba nào. Chúng tôi có thể cung cấp thông tin cho các nhà phát triển bên ngoài để hỗ trợ phát triển phần mềm, nhưng chúng tôi sẽ thông báo các nghĩa vụ bảo mật liên quan và xác định rằng chúng có thể được tuân thủ trước khi cung cấp thông tin.
|
||||
|
||||
3. Lưu trữ thông tin
|
||||
|
||||
Trừ khi luật pháp yêu cầu, chúng tôi sẽ xóa dữ liệu người dùng không còn cần thiết trong vòng 30 ngày hoặc tổng hợp số liệu thống kê thành các báo cáo tổng hợp không xác định người dùng cá nhân.
|
||||
|
||||
|
||||
4. Lộ thông tin
|
||||
|
||||
Chúng tôi sẽ cố gắng hết sức để bảo vệ dữ liệu của người dùng bằng các phương tiện kỹ thuật và bảo mật hợp lý, nhưng chúng tôi không thể đảm bảo tính bảo mật tuyệt đối của dữ liệu. Nếu chúng tôi xác nhận rằng dữ liệu đã bị xâm phạm, chúng tôi sẽ thông báo cho người dùng thông qua các kênh khả dụng trong vòng 7 ngày. **Bạn đồng ý không chịu trách nhiệm cho chúng tôi về bất kỳ tổn thất nào do nguyên nhân bất khả kháng.**
|
||||
|
||||
5. Sửa đổi điều khoản
|
||||
|
||||
Chúng tôi có quyền sửa đổi Chính sách Bảo mật này, nhưng sẽ đảm bảo rằng người dùng được thông báo qua các kênh có sẵn và cảnh báo trong ứng dụng của chúng tôi ít nhất 30 ngày trước khi cập nhật các điều khoản. **Bằng cách tiếp tục sử dụng phần mềm sau khi các điều khoản mới có hiệu lực, bạn đồng ý với các điều khoản bảo mật đã sửa đổi.**
|
||||
41
README.md
41
README.md
|
|
@ -1,40 +1,24 @@
|
|||
## [Switch to English](https://github.com/cuynu/v2rayvn/wiki/English)
|
||||
# [Switch to English](https://github.com/cuynu/v2rayvn/wiki/English)
|
||||
|
||||
# v2rayNG Tiếng Việt / Vietnamese Language
|
||||
|
||||
v2rayNG với ngôn ngữ Tiếng Việt! ,hỗ trợ [Xray core](https://github.com/XTLS/Xray-core) và [v2fly core](https://github.com/v2fly/v2ray-core)
|
||||
|
||||
Chất lượng mã nguồn (Source Code)
|
||||
Tính năng bổ sung so với phiên bản gốc : Mux (Tăng tốc kết nối, giảm ping nhưng gây áp lực lên máy chủ) và tự động cập nhật gói đăng ký (subscription)
|
||||
|
||||
[](https://www.codefactor.io/repository/github/cuynu/v2rayvn)
|
||||
Phiên bản mới nhất : 1.8.25-cuynu
|
||||
|
||||
Tính năng bổ sung so với phiên bản gốc : Mux (Tăng tốc kết nối, giảm ping nhưng gây áp lực lên máy chủ)
|
||||
|
||||
Thống kê số lần v2rayNG/v2flyNG Tiếng Việt được tải xuống
|
||||
|
||||
<a href="https://github.com/cuynu/v2rayvn"><img src="https://img.shields.io/github/downloads/cuynu/v2rayvn/total?color=%233DDC84&logo=android&logoColor=%23fff&style=for-the-badge"></a>
|
||||
</p>
|
||||
|
||||
Phiên bản APK đóng gói mới nhất : 1.8.5-cuynu
|
||||
|
||||
Phiên bản thử nghiệm : 1.8.12-cuynu
|
||||
|
||||
Ngày cập nhật : (00:48 27/03/2023)
|
||||
Ngày dựng/cập nhật : (10/03/2024)
|
||||
|
||||
Dịch Tiếng Việt bởi : Cuynu, [user09283](https://github.com/user09283)
|
||||
|
||||
Bạn đang muốn tìm v2flyNG Tiếng Việt? [Tải xuống v2flyNG Tiếng Việt](https://github.com/cuynu/v2rayvn#v2flyng-ti%E1%BA%BFng-vi%E1%BB%87t)
|
||||
____________________________________________________
|
||||
|
||||
## Tải xuống v2rayNG Tiếng Việt phiên bản mới nhất tại:
|
||||
|
||||
<a href="https://github.com/cuynu/v2rayvn/releases/download/1.8.5-cuynu/v2rayNG_1.8.5-cuynu.apk">
|
||||
<img alt="Tải xuống v2rayNG" src="https://github.com/cuynu/v2rayvn/releases/download/1.7.3/1648277008370.png" width="300" height="90" />
|
||||
<a href="https://gitlab.com/cuynu/v2rayvn/uploads/111cbef6617ef3a6eec32619c415d934/v2rayNG_1.8.25-cuynu_universal.apk">
|
||||
<img alt="Tải xuống v2rayNG" src="https://gitlab.com/cuynu/v2rayvn/-/raw/master/pic/1648277008370.png" width="300" height="90" />
|
||||
</a>
|
||||
|
||||
### Phiên bản thử nghiệm có thể có lỗi !
|
||||
[Tải xuống phiên bản thử nghiệm](https://github.com/cuynu/v2rayvn/releases/download/1.8.12-cuynu/v2rayNG_1.8.12-cuynu.apk)
|
||||
|
||||
**Từ phiên bản 1.7.4, Bản dịch Tiếng Việt của v2rayNG bởi Cuynu và [user09283](https://github.com/user09283)
|
||||
đã có sẵn trên [Google Play](https://play.app.goo.gl/?link=https://play.google.com/store/apps/details?id=com.v2ray.ang&ddl=1&pcampaignid=web_ddl_1) dưới dạng phiên bản chính thức, tuy nhiên bạn vẫn có thể tải xuống APK bên trên nếu bạn không muốn tải xuống từ Google Play.**
|
||||
|
||||
|
|
@ -46,19 +30,8 @@ v2rayNG hiện chỉ có sẵn cho Android và là ứng dụng mã nguồn mở
|
|||
|
||||
____________________________________________________
|
||||
|
||||
## v2flyNG Tiếng Việt
|
||||
|
||||
v2flyNG là v2rayNG được đổi tên nhằm mục đích mua để ủng hộ nhà phát triển trên Google Play.
|
||||
|
||||
Phiên bản hiện tại của v2flyNG : v1.7.17
|
||||
|
||||
### Tải xuống v2flyNG tại đây :
|
||||
|
||||
[Tải xuống v2flyNG Tiếng Việt v1.7.17](https://github.com/cuynu/v2rayvn/releases/download/1.7.17/v2flyNG_1.7.17_sign.apk)
|
||||
|
||||
____________________________________________________
|
||||
|
||||
## Mã nguồn / Source code
|
||||
|
||||
v2rayNG là ứng dụng "mã nguồn mở", bạn có thể tự tải xuống mã nguồn trên repository và chỉnh sửa bằng Gradle hay Android Studio theo ý của bạn theo giấy phép GPL-3.0.
|
||||
|
||||
|
||||
|
|
|
|||
10
V2rayNG/.gitignore
vendored
10
V2rayNG/.gitignore
vendored
|
|
@ -1,10 +0,0 @@
|
|||
*.iml
|
||||
.gradle
|
||||
/local.properties
|
||||
/.idea
|
||||
.DS_Store
|
||||
/build
|
||||
/captures
|
||||
*.apk
|
||||
signing.properties
|
||||
*.aar
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
package com.v2ray.ang.dto
|
||||
|
||||
data class SubscriptionItem(
|
||||
var remarks: String = "C",
|
||||
var url: String = "",
|
||||
var enabled: Boolean = true,
|
||||
val addedTime: Long = System.currentTimeMillis()) {
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB |
|
|
@ -1,25 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/nav_header_height"
|
||||
android:background="@drawable/nav_header_bg"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
android:paddingBottom="@dimen/activity_vertical_margin"
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||
android:paddingTop="@dimen/activity_vertical_margin">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:layout_gravity="center"
|
||||
android:paddingTop="@dimen/nav_header_vertical_spacing"
|
||||
android:text="@string/app_name"
|
||||
android:textColor="@color/white"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Display1" />
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.google.android.material.appbar.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?android:attr/actionBarSize">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_scrollFlags="scroll|enterAlways" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Button xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
style="@style/Widget.AppCompat.Button.Borderless"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:onClick="onModeHelpClicked"
|
||||
android:text="@string/title_mode_help"
|
||||
android:textAlignment="textStart"
|
||||
android:textStyle="italic"
|
||||
tools:ignore="UsingOnClickInXml" />
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="colorAccent">#12976F</color>
|
||||
<color name="colorBg">#252525</color>
|
||||
<color name="colorText">#CCCCCC</color>
|
||||
</resources>
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="colorPing">#009966</color>
|
||||
<color name="colorPingRed">#FF0099</color>
|
||||
<color name="colorSubscription">#247BA0</color>
|
||||
<color name="colorSelected">#009966</color>
|
||||
<color name="colorUnselected">#999999</color>
|
||||
<color name="colorWhite">#CFD8DC</color>
|
||||
<color name="colorBlack">#212121</color>
|
||||
|
||||
<!-- <color name="colorPrimary">#008577</color>-->
|
||||
<!-- <color name="colorPrimaryDark">#00574B</color>-->
|
||||
<color name="colorPrimary">#008577</color>
|
||||
<color name="colorPrimaryDark">#161616</color>
|
||||
<color name="colorAccent">#12976F</color>
|
||||
<color name="colorBg">#252525</color>
|
||||
<color name="colorText">#CCCCCC</color>
|
||||
</resources>
|
||||
2
app/.gitignore
vendored
Normal file
2
app/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
/build
|
||||
/google-services.json
|
||||
126
app/build.gradle
Normal file
126
app/build.gradle
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
plugins {
|
||||
id 'com.android.application'
|
||||
id 'org.jetbrains.kotlin.android'
|
||||
}
|
||||
|
||||
|
||||
android {
|
||||
compileSdkVersion Integer.parseInt("$compileSdkVer")
|
||||
buildToolsVersion "$buildToolsVer"
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = "8"
|
||||
targetCompatibility = "8"
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.v2ray.ang"
|
||||
minSdkVersion 21
|
||||
targetSdk 33
|
||||
multiDexEnabled true
|
||||
versionCode 590
|
||||
versionName "1.8.25-cuynu"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
zipAlignEnabled false
|
||||
shrinkResources false
|
||||
ndk.abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
|
||||
}
|
||||
debug {
|
||||
minifyEnabled false
|
||||
zipAlignEnabled false
|
||||
shrinkResources false
|
||||
ndk.abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
jniLibs.srcDirs = ['libs']
|
||||
java.srcDirs += 'src/main/kotlin'
|
||||
}
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
splits {
|
||||
abi {
|
||||
enable true
|
||||
reset()
|
||||
include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' //select ABIs to build APKs for
|
||||
universalApk true //generate an additional APK that contains all the ABIs
|
||||
}
|
||||
}
|
||||
|
||||
// map for the version code
|
||||
project.ext.versionCodes = ['armeabi-v7a': 1, 'arm64-v8a': 2, 'x86': 3, 'x86_64': 4]
|
||||
|
||||
android.applicationVariants.all { variant ->
|
||||
// assign different version code for each output
|
||||
variant.outputs.each { output ->
|
||||
output.outputFileName = "v2rayNG_" + variant.versionName + "_" + output.getFilter(com.android.build.OutputFile.ABI) + ".apk"
|
||||
|
||||
output.versionCodeOverride =
|
||||
project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI), 0) *
|
||||
1000000 + android.defaultConfig.versionCode
|
||||
}
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
viewBinding true
|
||||
}
|
||||
namespace 'com.v2ray.ang'
|
||||
testNamespace 'com.v2ray.angTest'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
|
||||
// Androidx
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||
implementation 'androidx.appcompat:appcompat:1.6.1'
|
||||
implementation 'com.google.android.material:material:1.11.0'
|
||||
implementation 'androidx.cardview:cardview:1.0.0'
|
||||
implementation 'androidx.preference:preference-ktx:1.2.1'
|
||||
implementation 'androidx.recyclerview:recyclerview:1.3.2'
|
||||
implementation 'androidx.fragment:fragment-ktx:1.6.2'
|
||||
implementation 'androidx.multidex:multidex:2.0.1'
|
||||
implementation 'androidx.viewpager2:viewpager2:1.1.0-beta02'
|
||||
|
||||
// Androidx ktx
|
||||
implementation 'androidx.activity:activity-ktx:1.8.2'
|
||||
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0'
|
||||
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.7.0'
|
||||
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.7.0'
|
||||
|
||||
//kotlin
|
||||
implementation "org.jetbrains.kotlin:kotlin-reflect:1.8.0"
|
||||
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4"
|
||||
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4"
|
||||
|
||||
implementation 'com.tencent:mmkv-static:1.2.15'
|
||||
implementation 'com.google.code.gson:gson:2.10.1'
|
||||
implementation 'io.reactivex:rxjava:1.3.8'
|
||||
implementation 'io.reactivex:rxandroid:1.2.1'
|
||||
implementation 'com.tbruyelle.rxpermissions:rxpermissions:0.9.4@aar'
|
||||
implementation 'com.github.jorgecastilloprz:fabprogresscircle:1.01@aar'
|
||||
implementation 'me.drakeet.support:toastcompat:1.1.0'
|
||||
implementation 'com.blacksquircle.ui:editorkit:2.8.0'
|
||||
implementation 'com.blacksquircle.ui:language-base:2.8.0'
|
||||
implementation 'com.blacksquircle.ui:language-json:2.8.0'
|
||||
implementation 'io.github.g00fy2.quickie:quickie-bundled:1.6.0'
|
||||
implementation 'com.google.zxing:core:3.5.1'
|
||||
|
||||
def work_version = "2.8.1"
|
||||
|
||||
implementation "androidx.work:work-runtime-ktx:$work_version"
|
||||
implementation "androidx.work:work-multiprocess:$work_version"
|
||||
}
|
||||
|
||||
BIN
app/libs/arm64-v8a/libtun2socks.so
Normal file
BIN
app/libs/arm64-v8a/libtun2socks.so
Normal file
Binary file not shown.
BIN
app/libs/armeabi-v7a/libtun2socks.so
Normal file
BIN
app/libs/armeabi-v7a/libtun2socks.so
Normal file
Binary file not shown.
BIN
app/libs/libv2ray.aar
Normal file
BIN
app/libs/libv2ray.aar
Normal file
Binary file not shown.
BIN
app/libs/x86/libtun2socks.so
Normal file
BIN
app/libs/x86/libtun2socks.so
Normal file
Binary file not shown.
BIN
app/libs/x86_64/libtun2socks.so
Normal file
BIN
app/libs/x86_64/libtun2socks.so
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue