From be5962df8b8dd2b8ab8388f865cae8f592cae056 Mon Sep 17 00:00:00 2001 From: arm64v8a <48624112+arm64v8a@users.noreply.github.com> Date: Wed, 22 Mar 2023 22:09:29 +0900 Subject: [PATCH] update v2rayN share link --- .../io/nekohasekai/sagernet/fmt/PluginEntry.kt | 7 +++++-- .../nekohasekai/sagernet/fmt/v2ray/V2RayFmt.kt | 18 +++++++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/io/nekohasekai/sagernet/fmt/PluginEntry.kt b/app/src/main/java/io/nekohasekai/sagernet/fmt/PluginEntry.kt index 749631d..6cd7658 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/fmt/PluginEntry.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/fmt/PluginEntry.kt @@ -31,8 +31,11 @@ enum class PluginEntry( TUIC( "tuic-plugin", SagerNet.application.getString(R.string.action_tuic), - "io.nekohasekai.sagernet.plugin.tuic", - DownloadSource(fdroid = false) + "moe.matsuri.exe.tuic", DownloadSource( + playStore = false, + fdroid = false, + downloadLink = "https://github.com/MatsuriDayo/plugins/releases?q=tuic" + ) ), ; diff --git a/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/V2RayFmt.kt b/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/V2RayFmt.kt index 5c0e0e5..9a26828 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/V2RayFmt.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/V2RayFmt.kt @@ -158,6 +158,12 @@ fun StandardV2RayBean.parseDuckSoft(url: HttpUrl) { url.queryParameter("cert")?.let { certificates = it } + url.queryParameter("pbk")?.let { + realityPubKey = it + } + url.queryParameter("sid")?.let { + realityShortId = it + } } } when (type) { @@ -293,7 +299,7 @@ fun parseV2RayN(link: String): VMessBean { bean.encryption = vmessQRCode.scy bean.uuid = vmessQRCode.id bean.alterId = vmessQRCode.aid.toIntOrNull() - bean.type = vmessQRCode.type + bean.type = vmessQRCode.net bean.host = vmessQRCode.host bean.path = vmessQRCode.path val headerType = vmessQRCode.type @@ -305,10 +311,11 @@ fun parseV2RayN(link: String): VMessBean { } } } + when (vmessQRCode.tls) { + "tls", "reality" -> bean.security = "tls" + } bean.name = vmessQRCode.ps - bean.security = vmessQRCode.tls - if (bean.security == "reality") bean.security = "tls" bean.sni = vmessQRCode.sni bean.alpn = vmessQRCode.alpn.replace(",", "\n") bean.utlsFingerprint = vmessQRCode.fp @@ -454,6 +461,11 @@ fun StandardV2RayBean.toUriVMessVLESSTrojan(isTrojan: Boolean): String { if (utlsFingerprint.isNotBlank()) { builder.addQueryParameter("fp", utlsFingerprint) } + if (realityPubKey.isNotBlank()) { + builder.setQueryParameter("security", "reality") + builder.addQueryParameter("pbk", realityPubKey) + builder.addQueryParameter("sid", realityShortId) + } } } }