From 030b9a3900da6dfce2913fc7983a01e75ad4e30b Mon Sep 17 00:00:00 2001 From: Rurirei <72071920+rurirei@users.noreply.github.com> Date: Thu, 8 Oct 2020 15:50:51 +0800 Subject: [PATCH] native fixes * call sendFd() before tun2socks start --- AndroidLibV2rayLite/Process/Escort/escort.go | 9 +------ AndroidLibV2rayLite/interact.go | 27 +++++++++---------- V2rayNG/app/src/main/AndroidManifest.xml | 1 + .../com/v2ray/ang/service/ServiceControl.kt | 1 - .../ang/service/V2RayProxyOnlyService.kt | 4 --- .../v2ray/ang/service/V2RayServiceManager.kt | 10 ------- .../com/v2ray/ang/service/V2RayVpnService.kt | 7 +++-- 7 files changed, 18 insertions(+), 41 deletions(-) diff --git a/AndroidLibV2rayLite/Process/Escort/escort.go b/AndroidLibV2rayLite/Process/Escort/escort.go index 69c9430a..35670bbd 100644 --- a/AndroidLibV2rayLite/Process/Escort/escort.go +++ b/AndroidLibV2rayLite/Process/Escort/escort.go @@ -10,7 +10,7 @@ import ( "github.com/2dust/AndroidLibV2rayLite/CoreI" ) -func (v *Escorting) EscortRun(proc string, pt []string, additionalEnv string, sendFd func() int) { +func (v *Escorting) EscortRun(proc string, pt []string, additionalEnv string) { log.Println(proc, pt) count := 0 for count <= 42 { @@ -37,13 +37,6 @@ func (v *Escorting) EscortRun(proc string, pt []string, additionalEnv string, se *v.escortProcess = append(*v.escortProcess, cmd.Process) log.Println("EscortRun Waiting....") - if count > 0 { - go func() { - time.Sleep(time.Second) - sendFd() - }() - } - if err := cmd.Wait(); err != nil { log.Println("EscortRun cmd.Wait err:", err) } diff --git a/AndroidLibV2rayLite/interact.go b/AndroidLibV2rayLite/interact.go index 57b45289..b07cd2f0 100644 --- a/AndroidLibV2rayLite/interact.go +++ b/AndroidLibV2rayLite/interact.go @@ -57,7 +57,6 @@ type V2RayVPNServiceSupportsSet interface { Shutdown() int Protect(int) int OnEmitStatus(int, string) int - SendFd() int } /*RunLoop Run V2Ray main loop @@ -81,7 +80,6 @@ func (v *V2RayPoint) RunLoop() (err error) { if !v.dialer.IsVServerReady() { log.Println("vServer cannot resolved, shutdown") v.StopLoop() - v.SupportSet.Shutdown() } // stop waiting if manually closed @@ -130,19 +128,10 @@ func (v *V2RayPoint) shutdownInit() { v.status.Vpoint = nil v.statsManager = nil v.escorter.EscortingDown() + v.SupportSet.Shutdown() } func (v *V2RayPoint) pointloop() error { - if err := v.runTun2socks(); err != nil { - log.Println(err) - return err - } - - log.Printf("EnableLocalDNS: %v\nForwardIpv6: %v\nDomainName: %s", - v.EnableLocalDNS, - v.ForwardIpv6, - v.DomainName) - log.Println("loading v2ray config") config, err := v2serial.LoadJSONConfig(strings.NewReader(v.ConfigureFileContent)) if err != nil { @@ -170,6 +159,17 @@ func (v *V2RayPoint) pointloop() error { v.SupportSet.Prepare() v.SupportSet.Setup(v.status.GetVPNSetupArg(v.EnableLocalDNS, v.ForwardIpv6)) v.SupportSet.OnEmitStatus(0, "Running") + + if err := v.runTun2socks(); err != nil { + log.Println(err) + return err + } + + log.Printf("EnableLocalDNS: %v\nForwardIpv6: %v\nDomainName: %s", + v.EnableLocalDNS, + v.ForwardIpv6, + v.DomainName) + return nil } @@ -229,8 +229,7 @@ func (v V2RayPoint) runTun2socks() error { v.escorter.EscortingUp() go v.escorter.EscortRun( v.status.GetApp("libtun2socks.so"), - v.status.GetTun2socksArgs(v.EnableLocalDNS, v.ForwardIpv6), "", - v.SupportSet.SendFd) + v.status.GetTun2socksArgs(v.EnableLocalDNS, v.ForwardIpv6), "") return nil } diff --git a/V2rayNG/app/src/main/AndroidManifest.xml b/V2rayNG/app/src/main/AndroidManifest.xml index 3e883469..28d37785 100644 --- a/V2rayNG/app/src/main/AndroidManifest.xml +++ b/V2rayNG/app/src/main/AndroidManifest.xml @@ -27,6 +27,7 @@ android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" + android:extractNativeLibs="true" android:theme="@style/AppTheme"> localSocket.connect(LocalSocketAddress(path, LocalSocketAddress.Namespace.FILESYSTEM)) @@ -251,7 +253,4 @@ class V2RayVpnService : VpnService(), ServiceControl { return protect(socket) } - override fun vpnSendFd() { - sendFd() - } }