diff --git a/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/StandardV2RayBean.java b/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/StandardV2RayBean.java index 55ff51a..d236b20 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/StandardV2RayBean.java +++ b/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/StandardV2RayBean.java @@ -186,7 +186,8 @@ public abstract class StandardV2RayBean extends AbstractBean { public boolean isVLESS() { if (this instanceof VMessBean) { - return ((VMessBean) this).alterId == -1; + Integer aid = ((VMessBean) this).alterId; + return aid != null && aid == -1; } return false; } 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 ba68f6a..20e6320 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 @@ -207,6 +207,13 @@ fun StandardV2RayBean.parseDuckSoft(url: HttpUrl) { } } + // maybe from matsuri vmess exoprt + if (this is VMessBean && !isVLESS) { + url.queryParameter("encryption")?.let { + encryption = it + } + } + url.queryParameter("packetEncoding")?.let { when (it) { "packet" -> packetEncoding = 1