diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java index a2fed291cb389..6a716cbc28161 100644 --- a/services/core/java/com/android/server/connectivity/Vpn.java +++ b/services/core/java/com/android/server/connectivity/Vpn.java @@ -1461,7 +1461,10 @@ public class Vpn { // parameters. If that fails, disconnect. if (oldConfig != null && updateLinkPropertiesInPlaceIfPossible(mNetworkAgent, oldConfig)) { - // Keep mNetworkAgent unchanged + // Update underlying networks if it is changed. + if (!Arrays.equals(oldConfig.underlyingNetworks, config.underlyingNetworks)) { + setUnderlyingNetworks(config.underlyingNetworks); + } } else { // Initialize the state for a new agent, while keeping the old one connected // in case this new connection fails.