Compare commits
24 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f85c382dbd | |||
| 0b76ff0409 | |||
| e3bbd47c81 | |||
| 0672820718 | |||
| e0e58dff45 | |||
| cfae051109 | |||
| 60ddf5ba6b | |||
| 861b1746e3 | |||
| 4dec554b42 | |||
| d7ad91fe8b | |||
| fb51683981 | |||
| e5d14bada9 | |||
| 80fb265960 | |||
| f5493b08ae | |||
| 4f7d6db361 | |||
| 636b20290a | |||
| 7ead97079c | |||
| e42cc3a60a | |||
| d231490917 | |||
| 521d61acb3 | |||
| ed9c26b012 | |||
| e782da7c71 | |||
| 6fd0f7f0db | |||
| 7c14a0c200 |
@@ -43,19 +43,19 @@ jobs:
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ github.workspace }}/libs
|
||||
key: libtun2socks-${{ runner.os }}-${{ env.NDK_HOME }}-${{ hashFiles('.git/modules/hev-socks5-tunnel/HEAD') }}-${{ hashFiles('.git/modules/badvpn/HEAD') }}-${{ hashFiles('.git/modules/libancillary/HEAD') }}
|
||||
key: libtun2socks-${{ runner.os }}-${{ env.NDK_HOME }}-${{ hashFiles('.git/modules/hev-socks5-tunnel/HEAD') }}-${{ hashFiles('.git/modules/badvpn/HEAD') }}-${{ hashFiles('.git/modules/libancillary/HEAD') }}-${{ hashFiles('compile-tun2socks.sh') }}--${{ hashFiles('compile-hevtun.sh') }}
|
||||
|
||||
- name: Build libtun2socks
|
||||
if: steps.cache-libtun2socks-restore.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
bash compile-tun2socks.sh
|
||||
bash compile-tun2socks.sh && bash compile-hevtun.sh
|
||||
|
||||
- name: Save libtun2socks
|
||||
if: steps.cache-libtun2socks-restore.outputs.cache-hit != 'true'
|
||||
uses: actions/cache/save@v4
|
||||
with:
|
||||
path: ${{ github.workspace }}/libs
|
||||
key: libtun2socks-${{ runner.os }}-${{ env.NDK_HOME }}-${{ hashFiles('.git/modules/hev-socks5-tunnel/HEAD') }}-${{ hashFiles('.git/modules/badvpn/HEAD') }}-${{ hashFiles('.git/modules/libancillary/HEAD') }}
|
||||
key: libtun2socks-${{ runner.os }}-${{ env.NDK_HOME }}-${{ hashFiles('.git/modules/hev-socks5-tunnel/HEAD') }}-${{ hashFiles('.git/modules/badvpn/HEAD') }}-${{ hashFiles('.git/modules/libancillary/HEAD') }}-${{ hashFiles('compile-tun2socks.sh') }}--${{ hashFiles('compile-hevtun.sh') }}
|
||||
|
||||
- name: Copy libtun2socks
|
||||
run: |
|
||||
|
||||
@@ -13,4 +13,3 @@
|
||||
[submodule "hev-socks5-tunnel"]
|
||||
path = hev-socks5-tunnel
|
||||
url = https://github.com/heiher/hev-socks5-tunnel
|
||||
branch = master
|
||||
|
||||
+1
-1
Submodule AndroidLibXrayLite updated: f89b8c4585...1655d531cb
@@ -3,7 +3,7 @@
|
||||
A V2Ray client for Android, support [Xray core](https://github.com/XTLS/Xray-core) and [v2fly core](https://github.com/v2fly/v2ray-core)
|
||||
|
||||
[](https://developer.android.com/about/versions/lollipop)
|
||||
[](https://kotlinlang.org)
|
||||
[](https://kotlinlang.org)
|
||||
[](https://github.com/2dust/v2rayNG/commits/master)
|
||||
[](https://www.codefactor.io/repository/github/2dust/v2rayng)
|
||||
[](https://github.com/2dust/v2rayNG/releases)
|
||||
|
||||
@@ -12,8 +12,8 @@ android {
|
||||
applicationId = "com.v2ray.ang"
|
||||
minSdk = 21
|
||||
targetSdk = 35
|
||||
versionCode = 679
|
||||
versionName = "1.10.28"
|
||||
versionCode = 684
|
||||
versionName = "1.10.32"
|
||||
multiDexEnabled = true
|
||||
|
||||
val abiFilterList = (properties["ABI_FILTERS"] as? String)?.split(';')
|
||||
@@ -67,14 +67,16 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
compileOptions {
|
||||
isCoreLibraryDesugaringEnabled = true
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_17.toString()
|
||||
|
||||
kotlin {
|
||||
compilerOptions {
|
||||
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
|
||||
}
|
||||
}
|
||||
|
||||
applicationVariants.all {
|
||||
|
||||
@@ -65,7 +65,7 @@ object AppConfig {
|
||||
const val PREF_GEO_FILES_SOURCES = "pref_geo_files_sources"
|
||||
const val PREF_USE_HEV_TUNNEL = "pref_use_hev_tunnel"
|
||||
const val PREF_HEV_TUNNEL_LOGLEVEL = "pref_hev_tunnel_loglevel"
|
||||
const val PREF_HEV_TUNNEL_RW_TIMEOUT = "pref_hev_tunnel_rw_timeout"
|
||||
const val PREF_HEV_TUNNEL_RW_TIMEOUT = "pref_hev_tunnel_rw_timeout_v2"
|
||||
|
||||
/** Cache keys. */
|
||||
const val CACHE_SUBSCRIPTION_ID = "cache_subscription_id"
|
||||
@@ -112,7 +112,8 @@ object AppConfig {
|
||||
const val TG_CHANNEL_URL = "https://t.me/github_2dust"
|
||||
const val DELAY_TEST_URL = "https://www.gstatic.com/generate_204"
|
||||
const val DELAY_TEST_URL2 = "https://www.google.com/generate_204"
|
||||
const val IP_API_URL = "https://speed.cloudflare.com/meta"
|
||||
// const val IP_API_URL = "https://speed.cloudflare.com/meta"
|
||||
const val IP_API_URL = "https://api.ip.sb/geoip"
|
||||
|
||||
/** DNS server addresses. */
|
||||
const val DNS_PROXY = "1.1.1.1"
|
||||
@@ -172,7 +173,7 @@ object AppConfig {
|
||||
const val VPN_MTU = 1500
|
||||
|
||||
/** hev-sock5-tunnel read-write-timeout value */
|
||||
const val HEVTUN_RW_TIMEOUT = "300000"
|
||||
const val HEVTUN_RW_TIMEOUT = "300,60"
|
||||
|
||||
// Google API rule constants
|
||||
const val GOOGLEAPIS_CN_DOMAIN = "domain:googleapis.cn"
|
||||
|
||||
@@ -13,5 +13,6 @@ data class SubscriptionItem(
|
||||
var filter: String? = null,
|
||||
var intelligentSelectionFilter: String? = null,
|
||||
var allowInsecureUrl: Boolean = false,
|
||||
var userAgent: String? = null,
|
||||
)
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ open class FmtBase {
|
||||
config.security = null
|
||||
}
|
||||
// Support multiple possible query keys for allowInsecure like the C# implementation
|
||||
val allowInsecureKeys = arrayOf("insecure", "allowInsecure", "allow_insecure", "verify")
|
||||
val allowInsecureKeys = arrayOf("insecure", "allowInsecure", "allow_insecure")
|
||||
config.insecure = when {
|
||||
allowInsecureKeys.any { queryParam[it] == "1" } -> true
|
||||
allowInsecureKeys.any { queryParam[it] == "0" } -> false
|
||||
|
||||
@@ -425,17 +425,18 @@ object AngConfigManager {
|
||||
}
|
||||
}
|
||||
Log.i(AppConfig.TAG, url)
|
||||
val userAgent = it.second.userAgent
|
||||
|
||||
var configText = try {
|
||||
val httpPort = SettingsManager.getHttpPort()
|
||||
HttpUtil.getUrlContentWithUserAgent(url, 15000, httpPort)
|
||||
HttpUtil.getUrlContentWithUserAgent(url, userAgent, 15000, httpPort)
|
||||
} catch (e: Exception) {
|
||||
Log.e(AppConfig.ANG_PACKAGE, "Update subscription: proxy not ready or other error", e)
|
||||
""
|
||||
}
|
||||
if (configText.isEmpty()) {
|
||||
configText = try {
|
||||
HttpUtil.getUrlContentWithUserAgent(url)
|
||||
HttpUtil.getUrlContentWithUserAgent(url, userAgent)
|
||||
} catch (e: Exception) {
|
||||
Log.e(AppConfig.TAG, "Update subscription: Failed to get URL content with user agent", e)
|
||||
""
|
||||
|
||||
@@ -71,12 +71,18 @@ class TProxyService(
|
||||
appendLine(" address: ${AppConfig.LOOPBACK}")
|
||||
appendLine(" udp: 'udp'")
|
||||
|
||||
// Read-write timeout settings
|
||||
val timeoutSetting = MmkvManager.decodeSettingsString(AppConfig.PREF_HEV_TUNNEL_RW_TIMEOUT) ?: AppConfig.HEVTUN_RW_TIMEOUT
|
||||
val parts = timeoutSetting.split(",")
|
||||
.map { it.trim() }
|
||||
.filter { it.isNotEmpty() }
|
||||
val tcpTimeout = parts.getOrNull(0)?.toIntOrNull() ?: 300
|
||||
val udpTimeout = parts.getOrNull(1)?.toIntOrNull() ?: 60
|
||||
|
||||
appendLine("misc:")
|
||||
appendLine(" read-write-timeout: ${MmkvManager.decodeSettingsString(AppConfig.PREF_HEV_TUNNEL_RW_TIMEOUT) ?: AppConfig.HEVTUN_RW_TIMEOUT}")
|
||||
val hevTunLogLevel = MmkvManager.decodeSettingsString(AppConfig.PREF_HEV_TUNNEL_LOGLEVEL) ?: "none"
|
||||
if (hevTunLogLevel != "none") {
|
||||
appendLine(" log-level: $hevTunLogLevel")
|
||||
}
|
||||
appendLine(" tcp-read-write-timeout: ${tcpTimeout * 1000}")
|
||||
appendLine(" udp-read-write-timeout: ${udpTimeout * 1000}")
|
||||
appendLine(" log-level: ${MmkvManager.decodeSettingsString(AppConfig.PREF_HEV_TUNNEL_LOGLEVEL) ?: "warn"}")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -211,11 +211,13 @@ class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedList
|
||||
if (isRunning) {
|
||||
binding.fab.setImageResource(R.drawable.ic_stop_24dp)
|
||||
binding.fab.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.color_fab_active))
|
||||
binding.fab.contentDescription = getString(R.string.action_stop_service)
|
||||
setTestState(getString(R.string.connection_connected))
|
||||
binding.layoutTest.isFocusable = true
|
||||
} else {
|
||||
binding.fab.setImageResource(R.drawable.ic_play_24dp)
|
||||
binding.fab.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(this, R.color.color_fab_inactive))
|
||||
binding.fab.contentDescription = getString(R.string.tasker_start_service)
|
||||
setTestState(getString(R.string.connection_not_connected))
|
||||
binding.layoutTest.isFocusable = false
|
||||
}
|
||||
|
||||
@@ -201,6 +201,11 @@ class MainRecyclerAdapter(val activity: MainActivity) : RecyclerView.Adapter<Mai
|
||||
private fun showQRCode(guid: String) {
|
||||
val ivBinding = ItemQrcodeBinding.inflate(LayoutInflater.from(mActivity))
|
||||
ivBinding.ivQcode.setImageBitmap(AngConfigManager.share2QRCode(guid))
|
||||
if (share_method.isNotEmpty()) {
|
||||
ivBinding.ivQcode.contentDescription = share_method[0]
|
||||
} else {
|
||||
ivBinding.ivQcode.contentDescription = "QR Code"
|
||||
}
|
||||
AlertDialog.Builder(mActivity).setView(ivBinding.root).show()
|
||||
}
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@ class SubEditActivity : BaseActivity() {
|
||||
private fun bindingServer(subItem: SubscriptionItem): Boolean {
|
||||
binding.etRemarks.text = Utils.getEditable(subItem.remarks)
|
||||
binding.etUrl.text = Utils.getEditable(subItem.url)
|
||||
binding.etUserAgent.text = Utils.getEditable(subItem.userAgent)
|
||||
binding.etFilter.text = Utils.getEditable(subItem.filter)
|
||||
binding.etIntelligentSelectionFilter.text = Utils.getEditable(subItem.intelligentSelectionFilter)
|
||||
binding.chkEnable.isChecked = subItem.enabled
|
||||
@@ -76,6 +77,7 @@ class SubEditActivity : BaseActivity() {
|
||||
|
||||
subItem.remarks = binding.etRemarks.text.toString()
|
||||
subItem.url = binding.etUrl.text.toString()
|
||||
subItem.userAgent = binding.etUserAgent.text.toString()
|
||||
subItem.filter = binding.etFilter.text.toString()
|
||||
subItem.intelligentSelectionFilter = binding.etIntelligentSelectionFilter.text.toString()
|
||||
subItem.enabled = binding.chkEnable.isChecked
|
||||
|
||||
@@ -128,7 +128,7 @@ object HttpUtil {
|
||||
* @throws IOException If an I/O error occurs.
|
||||
*/
|
||||
@Throws(IOException::class)
|
||||
fun getUrlContentWithUserAgent(url: String?, timeout: Int = 15000, httpPort: Int = 0): String {
|
||||
fun getUrlContentWithUserAgent(url: String?, userAgent: String?, timeout: Int = 15000, httpPort: Int = 0): String {
|
||||
var currentUrl = url
|
||||
var redirects = 0
|
||||
val maxRedirects = 3
|
||||
@@ -136,7 +136,12 @@ object HttpUtil {
|
||||
while (redirects++ < maxRedirects) {
|
||||
if (currentUrl == null) continue
|
||||
val conn = createProxyConnection(currentUrl, httpPort, timeout, timeout) ?: continue
|
||||
conn.setRequestProperty("User-agent", "v2rayNG/${BuildConfig.VERSION_NAME}")
|
||||
val finalUserAgent = if (userAgent.isNullOrBlank()) {
|
||||
"v2rayNG/${BuildConfig.VERSION_NAME}"
|
||||
} else {
|
||||
userAgent
|
||||
}
|
||||
conn.setRequestProperty("User-agent", finalUserAgent)
|
||||
conn.connect()
|
||||
|
||||
val responseCode = conn.responseCode
|
||||
|
||||
@@ -103,6 +103,7 @@
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_marginBottom="@dimen/view_height_dp36"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/tasker_start_service"
|
||||
android:focusable="true"
|
||||
android:nextFocusLeft="@+id/layout_test"
|
||||
android:src="@drawable/ic_play_24dp"
|
||||
@@ -125,4 +126,3 @@
|
||||
</com.google.android.material.navigation.NavigationView>
|
||||
|
||||
</androidx.drawerlayout.widget.DrawerLayout>
|
||||
|
||||
|
||||
@@ -74,6 +74,25 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/padding_spacing_dp16"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/sub_setting_user_agent" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/et_user_agent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="text" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -111,6 +111,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/title_configuration_share"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:nextFocusLeft="@+id/info_container"
|
||||
@@ -130,6 +131,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/menu_item_edit_config"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
@@ -148,6 +150,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/menu_item_del_config"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
@@ -166,6 +169,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/notification_action_more"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
<string name="title_server">ملف التكوين</string>
|
||||
<string name="menu_item_add_config">إضافة تكوين</string>
|
||||
<string name="menu_item_save_config">حفظ التكوين</string>
|
||||
<string name="menu_item_edit_config">Edit configuration</string>
|
||||
<string name="menu_item_del_config">حذف التكوين</string>
|
||||
<string name="menu_item_import_config_qrcode">استيراد التكوين من رمز الاستجابة السريعة (QRcode)</string>
|
||||
<string name="menu_item_import_config_clipboard">استيراد التكوين من الحافظة</string>
|
||||
@@ -252,7 +253,7 @@
|
||||
<string name="title_pref_use_hev_tunnel">Enable New TUN Feature</string>
|
||||
<string name="summary_pref_use_hev_tunnel">When enabled, TUN will use hev-socks5-tunnel; otherwise, it will use badvpn-tun2socks.</string>
|
||||
<string name="title_pref_hev_tunnel_loglevel">Hev Tun Log Level</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">Hev Tun Read/Write Timeout (ms, default 300000)</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">Hev Tun read/write timeout (seconds) (tcp,udp default 300,60)</string>
|
||||
|
||||
<string name="title_logcat">Logcat</string>
|
||||
<string name="logcat_copy">نسخ</string>
|
||||
@@ -265,6 +266,7 @@
|
||||
<string name="title_sub_setting">إعداد مجموعة الاشتراك</string>
|
||||
<string name="sub_setting_remarks">ملاحظات</string>
|
||||
<string name="sub_setting_url">عنوان URL اختياري</string>
|
||||
<string name="sub_setting_user_agent">User Agent</string>
|
||||
<string name="sub_setting_filter">Remarks regular filter</string>
|
||||
<string name="sub_setting_enable">تفعيل التحديث</string>
|
||||
<string name="sub_auto_update">تفعيل التحديث التلقائي</string>
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
<string name="title_server">কনফিগারেশন ফাইল</string>
|
||||
<string name="menu_item_add_config">কনফিগারেশন যোগ করুন</string>
|
||||
<string name="menu_item_save_config">কনফিগারেশন সংরক্ষণ করুন</string>
|
||||
<string name="menu_item_edit_config">Edit configuration</string>
|
||||
<string name="menu_item_del_config">কনফিগারেশন মুছুন</string>
|
||||
<string name="menu_item_import_config_qrcode">QR কোড থেকে কনফিগারেশন আমদানি করুন</string>
|
||||
<string name="menu_item_import_config_clipboard">ক্লিপবোর্ড থেকে কনফিগারেশন আমদানি করুন</string>
|
||||
@@ -252,7 +253,7 @@
|
||||
<string name="title_pref_use_hev_tunnel">Enable New TUN Feature</string>
|
||||
<string name="summary_pref_use_hev_tunnel">When enabled, TUN will use hev-socks5-tunnel; otherwise, it will use badvpn-tun2socks.</string>
|
||||
<string name="title_pref_hev_tunnel_loglevel">Hev Tun Log Level</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">Hev Tun Read/Write Timeout (ms, default 300000)</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">Hev Tun read/write timeout (seconds) (tcp,udp default 300,60)</string>
|
||||
|
||||
<string name="title_logcat">লগক্যাট</string>
|
||||
<string name="logcat_copy">কপি করুন</string>
|
||||
@@ -265,6 +266,7 @@
|
||||
<string name="title_sub_setting">সাবস্ক্রিপশন গ্রুপ সেটিং</string>
|
||||
<string name="sub_setting_remarks">মন্তব্য</string>
|
||||
<string name="sub_setting_url">ঐচ্ছিক URL</string>
|
||||
<string name="sub_setting_user_agent">User Agent</string>
|
||||
<string name="sub_setting_filter">Remarks regular filter</string>
|
||||
<string name="sub_setting_enable">আপডেট সক্রিয় করুন</string>
|
||||
<string name="sub_auto_update">স্বয়ংক্রিয় আপডেট সক্রিয় করুন</string>
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
<string name="title_server">فایل کانفیگ</string>
|
||||
<string name="menu_item_add_config">ٱووردن کانفیگ</string>
|
||||
<string name="menu_item_save_config">زفت کردن کانفیگ</string>
|
||||
<string name="menu_item_edit_config">Edit configuration</string>
|
||||
<string name="menu_item_del_config">پاک کردن کانفیگ</string>
|
||||
<string name="menu_item_import_config_qrcode">و من ٱووردن کانفیگ ز QRcode</string>
|
||||
<string name="menu_item_import_config_clipboard">و من ٱووردن کانفیگ ز کلیپ بورد</string>
|
||||
@@ -252,7 +253,7 @@
|
||||
<string name="title_pref_use_hev_tunnel">فعال کردن ویژیی نۊ TUN</string>
|
||||
<string name="summary_pref_use_hev_tunnel">ٱر ک فعال بۊ، TUN ایا hev-socks5-tunnel ن و کار اگره؛ ٱندی ز badvpn-tun2socks.</string>
|
||||
<string name="title_pref_hev_tunnel_loglevel">Hev Tun سئت گوزارشا</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">Hev Tun زمووݩ مندیر بیڌن خوندن وو هؽل کردن (میلی سانیه، پؽش فرز 300000)</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">Hev Tun read/write timeout (seconds) (tcp,udp default 300,60)</string>
|
||||
|
||||
<string name="title_logcat">گوزارشا</string>
|
||||
<string name="logcat_copy">لف گیری</string>
|
||||
@@ -265,6 +266,7 @@
|
||||
<string name="title_sub_setting">سامووا بونکۊ اشتراک</string>
|
||||
<string name="sub_setting_remarks">نیشتنا</string>
|
||||
<string name="sub_setting_url">نشۊوی اینترنتی اختیاری</string>
|
||||
<string name="sub_setting_user_agent">User Agent</string>
|
||||
<string name="sub_setting_filter">نوم موستعار فیلتر</string>
|
||||
<string name="sub_setting_enable">فعال بیڌن ورۊ کردن</string>
|
||||
<string name="sub_auto_update">فعال بیڌن ورۊ کردن خوتکار</string>
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
<string name="title_server">فایل کانفیگ</string>
|
||||
<string name="menu_item_add_config">افزودن کانفیگ</string>
|
||||
<string name="menu_item_save_config">ذخیره کانفیگ</string>
|
||||
<string name="menu_item_edit_config">Edit configuration</string>
|
||||
<string name="menu_item_del_config">حذف کانفیگ</string>
|
||||
<string name="menu_item_import_config_qrcode">کانفیگ را از QRcode وارد کنید</string>
|
||||
<string name="menu_item_import_config_clipboard">کانفیگ را از کلیپ بورد وارد کنید</string>
|
||||
@@ -249,7 +250,7 @@
|
||||
<string name="title_pref_use_hev_tunnel">فعالسازی قابلیت TUN جدید</string>
|
||||
<string name="summary_pref_use_hev_tunnel">در صورت فعال بودن، TUN از hev-socks5-tunnel استفاده میکند؛ در غیر این صورت از badvpn-tun2socks.</string>
|
||||
<string name="title_pref_hev_tunnel_loglevel">سطح گزارشات Hev Tun</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">زمان انتظار خواندن/نوشتن (میلیثانیه، پیشفرض ۳۰۰۰۰۰) Hev Tun</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">زمان انتظار خواندن/نوشتن Hev Tun (ثانیه) (پیشفرض tcp,udp 300،60)</string>
|
||||
|
||||
<string name="title_logcat">گزارشات</string>
|
||||
<string name="logcat_copy">کپی</string>
|
||||
@@ -262,6 +263,7 @@
|
||||
<string name="title_sub_setting">تنظیمات گروه اشتراک</string>
|
||||
<string name="sub_setting_remarks">ملاحظات</string>
|
||||
<string name="sub_setting_url">نشانی اینترنتی اختیاری</string>
|
||||
<string name="sub_setting_user_agent">User Agent</string>
|
||||
<string name="sub_setting_filter">نام مستعار فیلتر</string>
|
||||
<string name="sub_setting_enable">فعال کردن بهروزرسانی</string>
|
||||
<string name="sub_auto_update">فعال سازی بهروزرسانی خودکار</string>
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
<string name="title_server">Профиль</string>
|
||||
<string name="menu_item_add_config">Добавить профиль</string>
|
||||
<string name="menu_item_save_config">Сохранить профиль</string>
|
||||
<string name="menu_item_edit_config">Edit configuration</string>
|
||||
<string name="menu_item_del_config">Удалить профиль</string>
|
||||
<string name="menu_item_import_config_qrcode">Импорт из QR-кода</string>
|
||||
<string name="menu_item_import_config_clipboard">Импорт из буфера обмена</string>
|
||||
@@ -251,7 +252,7 @@
|
||||
<string name="title_pref_use_hev_tunnel">Использовать новую версию TUN</string>
|
||||
<string name="summary_pref_use_hev_tunnel">Если включено, TUN будет использовать hev-socks5-tunnel, иначе будет использоваться badvpn-tun2socks</string>
|
||||
<string name="title_pref_hev_tunnel_loglevel">Подробность журнала HevTun</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">Время ожидания чтения/записи HevTun (мс, по умолчанию 300000)</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">Hev Tun read/write timeout (seconds) (tcp,udp default 300,60)</string>
|
||||
|
||||
<string name="title_logcat">Журнал</string>
|
||||
<string name="logcat_copy">Копировать</string>
|
||||
@@ -264,6 +265,7 @@
|
||||
<string name="title_sub_setting">Группы</string>
|
||||
<string name="sub_setting_remarks">Название</string>
|
||||
<string name="sub_setting_url">URL (необязательно)</string>
|
||||
<string name="sub_setting_user_agent">User Agent</string>
|
||||
<string name="sub_setting_filter">Название фильтра</string>
|
||||
<string name="sub_setting_enable">Использовать обновление</string>
|
||||
<string name="sub_auto_update">Использовать автообновление</string>
|
||||
@@ -272,8 +274,8 @@
|
||||
<string name="sub_setting_next_profile">Следующая конфигурация прокси</string>
|
||||
<string name="sub_setting_pre_profile_tip">Конфигурация должна быть уникальной</string>
|
||||
<string name="title_sub_update">Обновить подписку группы</string>
|
||||
<string name="title_ping_all_server">Проверить профили группы</string>
|
||||
<string name="title_real_ping_all_server">Проверить задержку профилей группы</string>
|
||||
<string name="title_ping_all_server">Пинг-тест профилей группы</string>
|
||||
<string name="title_real_ping_all_server">URL-тест профилей группы</string>
|
||||
<string name="title_create_intelligent_selection_all_server">Создать конфигурацию умного выбора</string>
|
||||
<string name="title_user_asset_setting">Файлы ресурсов</string>
|
||||
<string name="title_sort_by_test_results">Сортировать по результатам теста</string>
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
<string name="title_server">v2rayNG</string>
|
||||
<string name="menu_item_add_config">Thêm cấu hình</string>
|
||||
<string name="menu_item_save_config">Lưu cấu hình</string>
|
||||
<string name="menu_item_edit_config">Edit configuration</string>
|
||||
<string name="menu_item_del_config">Xoá cấu hình</string>
|
||||
<string name="menu_item_import_config_qrcode">Nhập cấu hình từ mã QR</string>
|
||||
<string name="menu_item_import_config_clipboard">Nhập cấu hình từ Clipboard</string>
|
||||
@@ -252,7 +253,7 @@
|
||||
<string name="title_pref_use_hev_tunnel">Enable New TUN Feature</string>
|
||||
<string name="summary_pref_use_hev_tunnel">When enabled, TUN will use hev-socks5-tunnel; otherwise, it will use badvpn-tun2socks.</string>
|
||||
<string name="title_pref_hev_tunnel_loglevel">Hev Tun Log Level</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">Hev Tun Read/Write Timeout (ms, default 300000)</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">Hev Tun read/write timeout (seconds) (tcp,udp default 300,60)</string>
|
||||
|
||||
<string name="title_logcat">Logcat</string>
|
||||
<string name="logcat_copy">Sao chép</string>
|
||||
@@ -265,6 +266,7 @@
|
||||
<string name="title_sub_setting">Các gói đăng ký</string>
|
||||
<string name="sub_setting_remarks">Tên gói đăng ký</string>
|
||||
<string name="sub_setting_url">URL gói đăng ký</string>
|
||||
<string name="sub_setting_user_agent">User Agent</string>
|
||||
<string name="sub_setting_filter">Remarks regular filter</string>
|
||||
<string name="sub_setting_enable">Sử dụng gói đăng ký này</string>
|
||||
<string name="sub_auto_update">Bật tự động cập nhật</string>
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
<string name="app_widget_name">开关</string>
|
||||
<string name="app_tile_name">开关</string>
|
||||
<string name="app_tile_first_use">初次使用此功能请先用 APP 添加配置</string>
|
||||
<string name="navigation_drawer_open">Open navigation drawer</string>
|
||||
<string name="navigation_drawer_close">Close navigation drawer</string>
|
||||
<string name="navigation_drawer_open">打开导航栏</string>
|
||||
<string name="navigation_drawer_close">关闭导航栏</string>
|
||||
<string name="migration_success">数据迁移成功!</string>
|
||||
<string name="action_stop_service">停止服务</string>
|
||||
<string name="migration_fail">数据迁移失败啦!</string>
|
||||
<string name="pull_down_to_refresh">请下拉刷新!</string>
|
||||
|
||||
@@ -23,6 +24,7 @@
|
||||
<string name="title_server">配置项</string>
|
||||
<string name="menu_item_add_config">添加配置</string>
|
||||
<string name="menu_item_save_config">保存配置</string>
|
||||
<string name="menu_item_edit_config">编辑配置</string>
|
||||
<string name="menu_item_del_config">删除配置</string>
|
||||
<string name="menu_item_import_config_qrcode">扫描二维码</string>
|
||||
<string name="menu_item_import_config_clipboard">从剪贴板导入</string>
|
||||
@@ -249,7 +251,7 @@
|
||||
<string name="title_pref_use_hev_tunnel">启用新的 TUN 功能</string>
|
||||
<string name="summary_pref_use_hev_tunnel">选择启用后 TUN 将使用 hev-socks5-tunnel 否则使用 badvpn-tun2socks</string>
|
||||
<string name="title_pref_hev_tunnel_loglevel">HevTun 日志级别</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">HevTun 读写超时 (ms, 默认 300000)</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">HevTun 读写超时(秒) (tcp,udp 默认 300,60)</string>
|
||||
|
||||
<string name="title_logcat">Logcat</string>
|
||||
<string name="logcat_copy">复制</string>
|
||||
@@ -262,6 +264,7 @@
|
||||
<string name="title_sub_setting">订阅分组设置</string>
|
||||
<string name="sub_setting_remarks">备注</string>
|
||||
<string name="sub_setting_url">可选地址 (url)</string>
|
||||
<string name="sub_setting_user_agent">User Agent</string>
|
||||
<string name="sub_setting_filter">别名正则过滤</string>
|
||||
<string name="sub_setting_enable">启用更新</string>
|
||||
<string name="sub_auto_update">启用自动更新</string>
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
<string name="title_server">設定檔</string>
|
||||
<string name="menu_item_add_config">新增設定</string>
|
||||
<string name="menu_item_save_config">儲存設定</string>
|
||||
<string name="menu_item_edit_config">Edit configuration</string>
|
||||
<string name="menu_item_del_config">刪除設定</string>
|
||||
<string name="menu_item_import_config_qrcode">從 QR Code 匯入設定</string>
|
||||
<string name="menu_item_import_config_clipboard">從剪貼簿匯入設定</string>
|
||||
@@ -114,7 +115,7 @@
|
||||
<!-- UserAssetActivity -->
|
||||
<string name="toast_asset_copy_failed">失敗,請使用檔案總管</string>
|
||||
<string name="menu_item_add_file">新增檔案</string>
|
||||
<string name="menu_item_scan_qrcode">掃描 QRcode</string>
|
||||
<string name="menu_item_scan_qrcode">掃描二維碼</string>
|
||||
<string name="title_url">URL</string>
|
||||
<string name="menu_item_download_file">下載檔案</string>
|
||||
<string name="title_user_asset_add_url">新增資產網址</string>
|
||||
@@ -128,12 +129,12 @@
|
||||
<string name="menu_item_select_all">全選</string>
|
||||
<string name="msg_enter_keywords">輸入關鍵字</string>
|
||||
<string name="switch_bypass_apps_mode">略過模式</string>
|
||||
<string name="menu_item_select_proxy_app">自動選中需 Proxy 應用</string>
|
||||
<string name="menu_item_select_proxy_app">自動選中需代理的應用</string>
|
||||
<string name="msg_downloading_content">正在下載內容</string>
|
||||
<string name="menu_item_export_proxy_app">匯出至剪貼簿</string>
|
||||
<string name="menu_item_import_proxy_app">從剪貼簿匯入</string>
|
||||
<string name="per_app_proxy_settings">Per-app settings</string>
|
||||
<string name="per_app_proxy_settings_enable">Enable per-app</string>
|
||||
<string name="per_app_proxy_settings">分應用設置</string>
|
||||
<string name="per_app_proxy_settings_enable">根據應用分流</string>
|
||||
|
||||
|
||||
<!-- Preferences -->
|
||||
@@ -200,8 +201,8 @@
|
||||
<string name="title_pref_allow_insecure">跳過憑證驗證 (allowInsecure)</string>
|
||||
<string name="summary_pref_allow_insecure">傳輸層安全選 tls 時,預設跳過憑證驗證 (allowInsecure)</string>
|
||||
|
||||
<string name="title_pref_socks_port">本地 Proxy 埠</string>
|
||||
<string name="summary_pref_socks_port">本地 Proxy 埠</string>
|
||||
<string name="title_pref_socks_port">本地代理埠</string>
|
||||
<string name="summary_pref_socks_port">本地代理埠</string>
|
||||
|
||||
<string name="title_pref_local_dns_port">本機 DNS 埠</string>
|
||||
<string name="summary_pref_local_dns_port">本機 DNS 埠</string>
|
||||
@@ -241,7 +242,7 @@
|
||||
<string name="title_pref_auto_update_interval">自動更新間隔(分鐘,最小值 15)</string>
|
||||
|
||||
<string name="title_core_loglevel">記錄層級</string>
|
||||
<string name="title_outbound_domain_resolve_method">Outbound 網域預解析方式</string>
|
||||
<string name="title_outbound_domain_resolve_method">出口網域預解析方式</string>
|
||||
<string name="title_mode">模式</string>
|
||||
<string name="title_mode_help">輕觸以檢視說明</string>
|
||||
<string name="title_language">語言</string>
|
||||
@@ -250,7 +251,7 @@
|
||||
<string name="title_pref_use_hev_tunnel">啟用新 TUN 功能</string>
|
||||
<string name="summary_pref_use_hev_tunnel">選擇啟用後,TUN 將使用 hev-socks5-tunnel,否則使用 badvpn-tun2socks。</string>
|
||||
<string name="title_pref_hev_tunnel_loglevel">HevTun 日誌級別</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">HevTun 讀寫逾時 (ms, 預設 300000)</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">HevTun 讀寫逾時(秒) (tcp,udp 預設 300,60)</string>
|
||||
|
||||
<string name="title_logcat">Logcat</string>
|
||||
<string name="logcat_copy">複製</string>
|
||||
@@ -263,6 +264,7 @@
|
||||
<string name="title_sub_setting">訂閱分組設定</string>
|
||||
<string name="sub_setting_remarks">備註</string>
|
||||
<string name="sub_setting_url">可選位址(url)</string>
|
||||
<string name="sub_setting_user_agent">User Agent</string>
|
||||
<string name="sub_setting_filter">別名正規過濾</string>
|
||||
<string name="sub_setting_enable">啟用更新</string>
|
||||
<string name="sub_auto_update">啟用自動更新</string>
|
||||
@@ -273,7 +275,7 @@
|
||||
<string name="title_sub_update">更新目前群組訂閱</string>
|
||||
<string name="title_ping_all_server">偵測目前群組設定 Tcping</string>
|
||||
<string name="title_real_ping_all_server">偵測目前群組設定真延遲</string>
|
||||
<string name="title_create_intelligent_selection_all_server">Creating Intelligent Selection Current Group Configuration</string>
|
||||
<string name="title_create_intelligent_selection_all_server">創建目前群組智慧選擇</string>
|
||||
<string name="title_user_asset_setting">資源檔案</string>
|
||||
<string name="title_sort_by_test_results">依偵測結果排序</string>
|
||||
<string name="title_filter_config">過濾設定</string>
|
||||
@@ -297,7 +299,7 @@
|
||||
<string name="routing_settings_import_predefined_rulesets">匯入預先定義的規則集</string>
|
||||
<string name="routing_settings_import_rulesets_tip">將刪除現有的規則集,是否確定繼續? </string>
|
||||
<string name="routing_settings_import_rulesets_from_clipboard">從剪貼簿匯入規則集</string>
|
||||
<string name="routing_settings_import_rulesets_from_qrcode">從 QRcode 匯入規則集</string>
|
||||
<string name="routing_settings_import_rulesets_from_qrcode">從二維碼匯入規則集</string>
|
||||
<string name="routing_settings_export_rulesets_to_clipboard">匯出規則集至剪貼簿</string>
|
||||
<string name="routing_settings_locked">鎖定中,匯入預設時不刪除此規則</string>
|
||||
|
||||
@@ -329,7 +331,7 @@
|
||||
<string name="update_checking_for_update">正在檢查更新中…</string>
|
||||
|
||||
<string-array name="share_method">
|
||||
<item>QR Code</item>
|
||||
<item>二維碼</item>
|
||||
<item>匯出至剪貼簿</item>
|
||||
<item>匯出完整設定至剪貼簿</item>
|
||||
</string-array>
|
||||
@@ -343,7 +345,7 @@
|
||||
</string-array>
|
||||
|
||||
<string-array name="share_sub_method">
|
||||
<item>QR Code</item>
|
||||
<item>二維碼</item>
|
||||
<item>匯出至剪貼簿</item>
|
||||
</string-array>
|
||||
|
||||
@@ -376,13 +378,13 @@
|
||||
<item>解析後加入 DNS Hosts</item>
|
||||
<item>解析後替換原網域名稱</item>
|
||||
</string-array>
|
||||
<string name="intelligent_selection">Intelligent Selection</string>
|
||||
<string name="sub_setting_intelligent_selection_filter">Remarks Intelligent Selection regular filter</string>
|
||||
<string name="title_intelligent_selection_method">Intelligent Selection Method</string>
|
||||
<string name="intelligent_selection">智慧選擇</string>
|
||||
<string name="sub_setting_intelligent_selection_filter">別名智慧選擇正則過濾</string>
|
||||
<string name="title_intelligent_selection_method">智慧選擇方案</string>
|
||||
<string-array name="intelligent_selection_method">
|
||||
<item>Least Ping</item>
|
||||
<item>Least Load</item>
|
||||
<item>最低延遲</item>
|
||||
<item>最少卡頓</item>
|
||||
</string-array>
|
||||
<string name="pre_resolving_domain">Pre-resolving domain…</string>
|
||||
<string name="pre_resolving_domain">預解析域名…</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -119,9 +119,9 @@
|
||||
</string-array>
|
||||
|
||||
<string-array name="hev_tunnel_loglevel" translatable="false">
|
||||
<item>none</item>
|
||||
<item>error</item>
|
||||
<item>warn</item>
|
||||
<item>info</item>
|
||||
<item>debug</item>
|
||||
</string-array>
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
<string name="navigation_drawer_open">Open navigation drawer</string>
|
||||
<string name="navigation_drawer_close">Close navigation drawer</string>
|
||||
<string name="migration_success">Data migration success!</string>
|
||||
<string name="action_stop_service">Stop service</string>
|
||||
<string name="migration_fail">Data migration failed!</string>
|
||||
<string name="pull_down_to_refresh">Please pull down to refresh!</string>
|
||||
|
||||
@@ -24,6 +25,7 @@
|
||||
<string name="title_server">Configuration</string>
|
||||
<string name="menu_item_add_config">Add configuration</string>
|
||||
<string name="menu_item_save_config">Save configuration</string>
|
||||
<string name="menu_item_edit_config">Edit configuration</string>
|
||||
<string name="menu_item_del_config">Delete configuration</string>
|
||||
<string name="menu_item_import_config_qrcode">Import configuration from QRcode</string>
|
||||
<string name="menu_item_import_config_clipboard">Import configuration from Clipboard</string>
|
||||
@@ -255,7 +257,7 @@
|
||||
<string name="title_pref_use_hev_tunnel">Enable New TUN Feature</string>
|
||||
<string name="summary_pref_use_hev_tunnel">When enabled, TUN will use hev-socks5-tunnel; otherwise, it will use badvpn-tun2socks.</string>
|
||||
<string name="title_pref_hev_tunnel_loglevel">Hev Tun Log Level</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">Hev Tun Read/Write Timeout (ms, default 300000)</string>
|
||||
<string name="title_pref_hev_tunnel_rw_timeout">Hev Tun read/write timeout (seconds) (tcp,udp default 300,60)</string>
|
||||
|
||||
<string name="title_logcat">Logcat</string>
|
||||
<string name="logcat_copy">Copy</string>
|
||||
@@ -268,6 +270,7 @@
|
||||
<string name="title_sub_setting">Subscription group setting</string>
|
||||
<string name="sub_setting_remarks">remarks</string>
|
||||
<string name="sub_setting_url">Optional URL</string>
|
||||
<string name="sub_setting_user_agent">User Agent</string>
|
||||
<string name="sub_setting_filter">Remarks regular filter</string>
|
||||
<string name="sub_setting_enable">Enable update</string>
|
||||
<string name="sub_auto_update">Enable automatic update</string>
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
android:title="@string/title_pref_use_hev_tunnel" />
|
||||
|
||||
<ListPreference
|
||||
android:defaultValue="none"
|
||||
android:defaultValue="warn"
|
||||
android:entries="@array/hev_tunnel_loglevel"
|
||||
android:entryValues="@array/hev_tunnel_loglevel"
|
||||
android:key="pref_hev_tunnel_loglevel"
|
||||
@@ -93,9 +93,8 @@
|
||||
android:title="@string/title_pref_hev_tunnel_loglevel" />
|
||||
|
||||
<EditTextPreference
|
||||
android:inputType="number"
|
||||
android:key="pref_hev_tunnel_rw_timeout"
|
||||
android:summary="300000"
|
||||
android:key="pref_hev_tunnel_rw_timeout_v2"
|
||||
android:summary="300,60"
|
||||
android:title="@string/title_pref_hev_tunnel_rw_timeout" />
|
||||
</PreferenceCategory>
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[versions]
|
||||
agp = "8.12.3"
|
||||
agp = "8.13.2"
|
||||
desugarJdkLibs = "2.1.5"
|
||||
gradleLicensePlugin = "0.9.8"
|
||||
kotlin = "2.2.20"
|
||||
kotlin = "2.3.0"
|
||||
coreKtx = "1.16.0"
|
||||
junit = "4.13.2"
|
||||
junitVersion = "1.3.0"
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
#Thu Nov 14 12:42:51 BDT 2024
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
set -o errexit
|
||||
set -o pipefail
|
||||
set -o nounset
|
||||
# Set magic variables for current file & dir
|
||||
__dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
__file="${__dir}/$(basename "${BASH_SOURCE[0]}")"
|
||||
__base="$(basename ${__file} .sh)"
|
||||
if [[ ! -d $NDK_HOME ]]; then
|
||||
echo "Android NDK: NDK_HOME not found. please set env \$NDK_HOME"
|
||||
exit 1
|
||||
fi
|
||||
TMPDIR=$(mktemp -d)
|
||||
clear_tmp () {
|
||||
rm -rf $TMPDIR
|
||||
}
|
||||
trap 'echo -e "Aborted, error $? in command: $BASH_COMMAND"; trap ERR; clear_tmp; exit 1' ERR INT
|
||||
|
||||
#build hev-socks5-tunnel
|
||||
mkdir -p "$TMPDIR/jni"
|
||||
pushd "$TMPDIR"
|
||||
|
||||
echo 'include $(call all-subdir-makefiles)' > jni/Android.mk
|
||||
|
||||
ln -s "$__dir/hev-socks5-tunnel" jni/hev-socks5-tunnel
|
||||
|
||||
"$NDK_HOME/ndk-build" \
|
||||
NDK_PROJECT_PATH=. \
|
||||
APP_BUILD_SCRIPT=jni/Android.mk \
|
||||
"APP_ABI=armeabi-v7a arm64-v8a x86 x86_64" \
|
||||
APP_PLATFORM=android-21 \
|
||||
NDK_LIBS_OUT="$TMPDIR/libs" \
|
||||
NDK_OUT="$TMPDIR/obj" \
|
||||
"APP_CFLAGS=-O3 -DPKGNAME=com/v2ray/ang/service" \
|
||||
"APP_LDFLAGS=-Wl,--build-id=none -Wl,--hash-style=gnu" \
|
||||
|
||||
cp -r "$TMPDIR/libs/"* "$__dir/libs/"
|
||||
|
||||
popd
|
||||
rm -rf $TMPDIR
|
||||
@@ -30,29 +30,3 @@ $NDK_HOME/ndk-build \
|
||||
cp -r $TMPDIR/libs $__dir/
|
||||
popd
|
||||
rm -rf $TMPDIR
|
||||
|
||||
#build hev-socks5-tunnel
|
||||
HEVTUN_TMP=$(mktemp -d)
|
||||
trap 'rm -rf "$HEVTUN_TMP"' EXIT
|
||||
|
||||
mkdir -p "$HEVTUN_TMP/jni"
|
||||
pushd "$HEVTUN_TMP"
|
||||
|
||||
echo 'include $(call all-subdir-makefiles)' > jni/Android.mk
|
||||
|
||||
ln -s "$__dir/hev-socks5-tunnel" jni/hev-socks5-tunnel
|
||||
|
||||
"$NDK_HOME/ndk-build" \
|
||||
NDK_PROJECT_PATH=. \
|
||||
APP_BUILD_SCRIPT=jni/Android.mk \
|
||||
"APP_ABI=armeabi-v7a arm64-v8a x86 x86_64" \
|
||||
APP_PLATFORM=android-21 \
|
||||
NDK_LIBS_OUT="$HEVTUN_TMP/libs" \
|
||||
NDK_OUT="$HEVTUN_TMP/obj" \
|
||||
"APP_CFLAGS=-O3 -DPKGNAME=com/v2ray/ang/service" \
|
||||
"APP_LDFLAGS=-WI,--build-id=none -WI,--hash-style=gnu" \
|
||||
|
||||
cp -r "$HEVTUN_TMP/libs/"* "$__dir/libs/"
|
||||
popd
|
||||
|
||||
rm -rf "$HEVTUN_TMP"
|
||||
|
||||
+1
-1
Submodule hev-socks5-tunnel updated: 0239bd443f...4682d7983c
+1
-1
Submodule hysteria updated: 5f3c47e6c3...55e70a5f44
Reference in New Issue
Block a user