From 2407bd9fdd3454d7a50712fd70013de89137ad12 Mon Sep 17 00:00:00 2001 From: ervinmartirosyan Date: Tue, 17 Feb 2026 16:14:01 +0100 Subject: [PATCH 1/2] Vpn service inheritance possibility Signed-off-by: ervinmartirosyan --- .../java/com/wireguard/android/backend/GoBackend.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tunnel/src/main/java/com/wireguard/android/backend/GoBackend.java b/tunnel/src/main/java/com/wireguard/android/backend/GoBackend.java index 196836d2..3e284113 100644 --- a/tunnel/src/main/java/com/wireguard/android/backend/GoBackend.java +++ b/tunnel/src/main/java/com/wireguard/android/backend/GoBackend.java @@ -39,7 +39,7 @@ * WireGuard tunnels. */ @NonNullForAll -public final class GoBackend implements Backend { +public class GoBackend implements Backend { private static final int DNS_RESOLUTION_RETRIES = 10; private static final String TAG = "WireGuard/GoBackend"; @Nullable private static AlwaysOnCallback alwaysOnCallback; @@ -240,6 +240,10 @@ public State setState(final Tunnel tunnel, State state, @Nullable final Config c return getState(tunnel); } + protected Class getVpnServiceClass() { + return VpnService.class; + } + private void setStateInternal(final Tunnel tunnel, @Nullable final Config config, final State state) throws Exception { Log.i(TAG, "Bringing tunnel " + tunnel.getName() + ' ' + state); @@ -254,7 +258,7 @@ private void setStateInternal(final Tunnel tunnel, @Nullable final Config config final VpnService service; if (!vpnService.isDone()) { Log.d(TAG, "Requesting to start VpnService"); - context.startService(new Intent(context, VpnService.class)); + context.startService(new Intent(context, getVpnServiceClass())); } try { From c3ec183d77170091f8a6378d6cc750093e39c9c0 Mon Sep 17 00:00:00 2001 From: ervinmartirosyan Date: Wed, 18 Feb 2026 07:19:42 +0100 Subject: [PATCH 2/2] Vpn service inheritance possibility Signed-off-by: ervinmartirosyan --- .../main/java/com/wireguard/android/backend/GoBackend.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tunnel/src/main/java/com/wireguard/android/backend/GoBackend.java b/tunnel/src/main/java/com/wireguard/android/backend/GoBackend.java index 3e284113..5ed3fcb9 100644 --- a/tunnel/src/main/java/com/wireguard/android/backend/GoBackend.java +++ b/tunnel/src/main/java/com/wireguard/android/backend/GoBackend.java @@ -240,8 +240,8 @@ public State setState(final Tunnel tunnel, State state, @Nullable final Config c return getState(tunnel); } - protected Class getVpnServiceClass() { - return VpnService.class; + protected void performStartService(Context context) { + context.startService(new Intent(context, VpnService.class)); } private void setStateInternal(final Tunnel tunnel, @Nullable final Config config, final State state) @@ -258,7 +258,7 @@ private void setStateInternal(final Tunnel tunnel, @Nullable final Config config final VpnService service; if (!vpnService.isDone()) { Log.d(TAG, "Requesting to start VpnService"); - context.startService(new Intent(context, getVpnServiceClass())); + performStartService(context); } try {