Skip to content

Commit 8705232

Browse files
fix: нативный crash — runTun2socks() вызывался ДО старта V2Ray core
Корень проблемы: hev-socks5-tunnel (нативная JNI библиотека) стартовал в setupVpnService(), ДО того как V2Ray core запущен и SOCKS5 порт слушает. Это вызывало нативный crash (SIGSEGV), убивая процесс VPN сервиса. Поскольку isUsingHevTun() возвращает true по умолчанию, это затрагивало КАЖДЫЙ запуск VPN. START_STICKY перезапускал сервис 3 раза → мигание. Исправление: runTun2socks() перемещён в startService() ПОСЛЕ startCoreLoop(). Правильный порядок: 1) VPN interface 2) V2Ray core 3) tun2socks.
1 parent 765e12b commit 8705232

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

V2rayNG/app/src/main/java/com/kiktor/v2whitelist/service/V2RayVpnService.kt

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,18 @@ class V2RayVpnService : VpnService(), ServiceControl {
140140
stopAllService()
141141
return
142142
}
143-
Log.i(AppConfig.TAG, "startService: core loop started successfully")
143+
Log.i(AppConfig.TAG, "startService: core loop started, now starting tun2socks...")
144+
145+
// tun2socks запускается DOPO старта V2Ray core, чтобы SOCKS5 порт уже слушал
146+
try {
147+
runTun2socks()
148+
Log.i(AppConfig.TAG, "startService: tun2socks started successfully")
149+
} catch (t: Throwable) {
150+
Log.e(AppConfig.TAG, "startService: runTun2socks() crashed", t)
151+
// Не останавливаем сервис: V2Ray core уже работает, tun2socks опционален
152+
}
153+
154+
Log.i(AppConfig.TAG, "startService: fully started")
144155
} catch (t: Throwable) {
145156
Log.e(AppConfig.TAG, "startService: FATAL exception", t)
146157
stopAllService()
@@ -183,7 +194,8 @@ class V2RayVpnService : VpnService(), ServiceControl {
183194
}
184195
Log.i(AppConfig.TAG, "setupVpnService: VPN interface configured, mInterface=${mInterface?.fd}")
185196

186-
runTun2socks()
197+
// ВАЖНО: runTun2socks() теперь вызывается в startService() ПОСЛЕ startCoreLoop,
198+
// чтобы V2Ray core был запущен и SOCKS5 порт слушал к моменту старта tun2socks.
187199
return true
188200
}
189201

0 commit comments

Comments
 (0)