Stash 正式版支持 VLESS REALITY(xtls-rprx-vision)

This commit is contained in:
xream 2025-05-27 19:45:45 +08:00
parent 37fc7ac88e
commit 532be2ff8c
No known key found for this signature in database
GPG Key ID: 1D2C5225471789F9
3 changed files with 40 additions and 42 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "sub-store", "name": "sub-store",
"version": "2.19.54", "version": "2.19.55",
"description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and Shadowrocket.", "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and Shadowrocket.",
"main": "src/main.js", "main": "src/main.js",
"scripts": { "scripts": {

View File

@ -44,11 +44,9 @@ export default function Stash_Producer() {
'2022-blake3-aes-256-gcm', '2022-blake3-aes-256-gcm',
].includes(proxy.cipher)) || ].includes(proxy.cipher)) ||
(proxy.type === 'snell' && String(proxy.version) === '4') || (proxy.type === 'snell' && String(proxy.version) === '4') ||
(opts['include-unsupported-proxy'] (proxy.type === 'vless' &&
? proxy.type === 'vless' && proxy['reality-opts'] &&
proxy['reality-opts'] && !['xtls-rprx-vision'].includes(proxy.flow))
!['xtls-rprx-vision'].includes(proxy.flow)
: proxy.type === 'vless' && proxy['reality-opts'])
) { ) {
return false; return false;
} else if (proxy['underlying-proxy'] || proxy['dialer-proxy']) { } else if (proxy['underlying-proxy'] || proxy['dialer-proxy']) {

View File

@ -61,41 +61,41 @@ export function getPlatformFromHeaders(headers) {
return getPlatformFromUserAgent({ ua, UA, accept }); return getPlatformFromUserAgent({ ua, UA, accept });
} }
export function shouldIncludeUnsupportedProxy(platform, ua) { export function shouldIncludeUnsupportedProxy(platform, ua) {
try { // try {
const target = getPlatformFromUserAgent({ // const target = getPlatformFromUserAgent({
UA: ua, // UA: ua,
ua: ua.toLowerCase(), // ua: ua.toLowerCase(),
}); // });
if (!['Stash', 'Egern', 'Loon'].includes(target)) { // if (!['Stash', 'Egern', 'Loon'].includes(target)) {
return false; // return false;
} // }
const coerceVersion = coerce(ua); // const coerceVersion = coerce(ua);
$.log(JSON.stringify(coerceVersion, null, 2)); // $.log(JSON.stringify(coerceVersion, null, 2));
const { version } = coerceVersion; // const { version } = coerceVersion;
if ( // if (
platform === 'Stash' && // platform === 'Stash' &&
target === 'Stash' && // target === 'Stash' &&
gte(version, '3.1.0') // gte(version, '3.1.0')
) { // ) {
return true; // return true;
} // }
if ( // if (
platform === 'Egern' && // platform === 'Egern' &&
target === 'Egern' && // target === 'Egern' &&
gte(version, '1.29.0') // gte(version, '1.29.0')
) { // ) {
return true; // return true;
} // }
// Loon 的 UA 不规范, version 取出来是 build // // Loon 的 UA 不规范, version 取出来是 build
if ( // if (
platform === 'Loon' && // platform === 'Loon' &&
target === 'Loon' && // target === 'Loon' &&
gte(version, '842.0.0') // gte(version, '842.0.0')
) { // ) {
return true; // return true;
} // }
} catch (e) { // } catch (e) {
$.error(`获取版本号失败: ${e}`); // $.error(`获取版本号失败: ${e}`);
} // }
return false; return false;
} }