From 1fe085d7becbb178471c7c52ba6f4b6fac7eae20 Mon Sep 17 00:00:00 2001 From: Alexander Anisimov Date: Sun, 3 May 2026 11:06:09 +0300 Subject: [PATCH] fix mobile android build --- go.mod | 1 + go.sum | 2 ++ mobile/mobile.go | 39 ++++++++++++++++++++++++++++----------- 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index a243ed6..c63aba3 100644 --- a/go.mod +++ b/go.mod @@ -15,6 +15,7 @@ require ( github.com/zarazaex69/gr v0.0.0-20260430043628-45b595f4fef0 golang.org/x/crypto v0.50.0 golang.org/x/mobile v0.0.0-20260410095206-2cfb76559b7b + google.golang.org/genproto v0.0.0-20260209200024-4cfbd4190f57 ) require ( diff --git a/go.sum b/go.sum index 4ac3421..2e168ec 100644 --- a/go.sum +++ b/go.sum @@ -345,6 +345,8 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20260209200024-4cfbd4190f57 h1:uZSB/r2MjH9IsqpG2vRNSV1Juteix90oHe8oTcLW9tk= +google.golang.org/genproto v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:nGuPfp0lnDJcJD0J47StV0Skgnw3qMSQhjsLKiejq5Y= google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= diff --git a/mobile/mobile.go b/mobile/mobile.go index 99359d3..ad395d1 100644 --- a/mobile/mobile.go +++ b/mobile/mobile.go @@ -15,7 +15,8 @@ import ( "github.com/openlibrecommunity/olcrtc/internal/logger" "github.com/openlibrecommunity/olcrtc/internal/protect" - _ "golang.org/x/mobile/bind" // ensure gomobile bind is available + _ "golang.org/x/mobile/bind" // ensure gomobile bind is available + _ "google.golang.org/genproto/protobuf/field_mask" // keep gomobile on post-split genproto modules ) // SocketProtector protects sockets from VPN routing on Android. @@ -39,6 +40,13 @@ var ( errStartTimedOut = errors.New("olcRTC start timed out") ) +const ( + defaultLink = "direct" + defaultTransport = "vp8channel" + dataTransport = "datachannel" + defaultDNSServer = "1.1.1.1:53" +) + //nolint:gochecknoglobals // Mobile bindings expose a singleton runtime controlled by the embedding app. var ( mu sync.Mutex @@ -144,7 +152,11 @@ func Start(carrierName, roomID, keyHex string, socksPort int, socksUser, socksPa } // StartWithTransport launches the client with an explicit transport for this start. -func StartWithTransport(carrierName, transportName, roomID, keyHex string, socksPort int, socksUser, socksPass string) error { +func StartWithTransport( + carrierName, transportName, roomID, keyHex string, + socksPort int, + socksUser, socksPass string, +) error { mu.Lock() ensureDefaultConfigLocked() cfg := defaults @@ -154,7 +166,12 @@ func StartWithTransport(carrierName, transportName, roomID, keyHex string, socks return startWithConfig(carrierName, transportName, roomID, keyHex, socksPort, socksUser, socksPass, cfg) } -func startWithConfig(carrierName, transportName, roomID, keyHex string, socksPort int, socksUser, socksPass string, cfg mobileConfig) error { +func startWithConfig( + carrierName, transportName, roomID, keyHex string, + socksPort int, + socksUser, socksPass string, + cfg mobileConfig, +) error { mu.Lock() defer mu.Unlock() @@ -313,9 +330,9 @@ func registerDefaults() { func ensureDefaultConfigLocked() { defaultsSet.Do(func() { defaults = mobileConfig{ - link: "direct", - transport: "vp8channel", - dnsServer: "1.1.1.1:53", + link: defaultLink, + transport: defaultTransport, + dnsServer: defaultDNSServer, vp8FPS: 60, vp8BatchSize: 8, } @@ -324,12 +341,12 @@ func ensureDefaultConfigLocked() { func normalizeTransport(value string) string { switch value { - case "datachannel", "data", "dc": - return "datachannel" - case "vp8channel", "vp8": - return "vp8channel" + case dataTransport, "data", "dc": + return dataTransport + case defaultTransport, "vp8": + return defaultTransport default: - return "vp8channel" + return defaultTransport } }