From 13b96bc6511eba962a9553fe4385f7faafeca18f Mon Sep 17 00:00:00 2001 From: Jordan Demeulenaere Date: Tue, 8 Feb 2022 10:42:11 +0000 Subject: [PATCH] Revert "Update the UIDs only after the native network is created" This reverts commit a7d4766d0d02de38c9a44f9a3549cd5c64dd7689. Reason for revert: DroidMonitor: Potential culprit for Bug 218308105 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted. Change-Id: Ia9953d023c1eb84846834f92d4f38a72fa14bd30 --- .../android/server/ConnectivityService.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java index d833bc2f0c..198190a545 100644 --- a/service/src/com/android/server/ConnectivityService.java +++ b/service/src/com/android/server/ConnectivityService.java @@ -7043,7 +7043,7 @@ public class ConnectivityService extends IConnectivityManager.Stub nai.notifyRegistered(); NetworkInfo networkInfo = nai.networkInfo; updateNetworkInfo(nai, networkInfo); - updateVpnUids(nai, null, nai.networkCapabilities); + updateUids(nai, null, nai.networkCapabilities); } private class NetworkOfferInfo implements IBinder.DeathRecipient { @@ -7679,8 +7679,7 @@ public class ConnectivityService extends IConnectivityManager.Stub updateNetworkPermissions(nai, newNc); final NetworkCapabilities prevNc = nai.getAndSetNetworkCapabilities(newNc); - updateVpnUids(nai, prevNc, newNc); - updateAccessUids(nai, prevNc, newNc); + updateUids(nai, prevNc, newNc); nai.updateScoreForNetworkAgentUpdate(); if (nai.getCurrentScore() == oldScore && newNc.equalRequestableCapabilities(prevNc)) { @@ -7850,6 +7849,12 @@ public class ConnectivityService extends IConnectivityManager.Stub } } + private void updateUids(@NonNull NetworkAgentInfo nai, @Nullable NetworkCapabilities prevNc, + @Nullable NetworkCapabilities newNc) { + updateVpnUids(nai, prevNc, newNc); + updateAccessUids(nai, prevNc, newNc); + } + private void updateVpnUids(@NonNull NetworkAgentInfo nai, @Nullable NetworkCapabilities prevNc, @Nullable NetworkCapabilities newNc) { Set prevRanges = null == prevNc ? null : prevNc.getUidRanges(); @@ -7906,7 +7911,7 @@ public class ConnectivityService extends IConnectivityManager.Stub } } catch (Exception e) { // Never crash! - loge("Exception in updateVpnUids: ", e); + loge("Exception in updateUids: ", e); } } @@ -7945,9 +7950,6 @@ public class ConnectivityService extends IConnectivityManager.Stub intsToUidRangeStableParcels(toRemove), PREFERENCE_ORDER_IRRELEVANT_BECAUSE_NOT_DEFAULT)); } - } catch (ServiceSpecificException e) { - // Has the interface disappeared since the network was builtĀ ? - Log.i(TAG, "Can't set access UIDs for network " + nai.network, e); } catch (RemoteException e) { // Netd died. This usually causes a runtime restart anyway. } @@ -8862,7 +8864,6 @@ public class ConnectivityService extends IConnectivityManager.Stub } networkAgent.created = true; networkAgent.onNetworkCreated(); - updateAccessUids(networkAgent, null, networkAgent.networkCapabilities); } if (!networkAgent.everConnected && state == NetworkInfo.State.CONNECTED) { @@ -8916,7 +8917,7 @@ public class ConnectivityService extends IConnectivityManager.Stub } else if (state == NetworkInfo.State.DISCONNECTED) { networkAgent.disconnect(); if (networkAgent.isVPN()) { - updateVpnUids(networkAgent, networkAgent.networkCapabilities, null); + updateUids(networkAgent, networkAgent.networkCapabilities, null); } disconnectAndDestroyNetwork(networkAgent); if (networkAgent.isVPN()) {