Merge "Use Netd new added/removed uid range methods"
This commit is contained in:
@@ -178,6 +178,7 @@ import android.net.VpnManager;
|
|||||||
import android.net.VpnTransportInfo;
|
import android.net.VpnTransportInfo;
|
||||||
import android.net.metrics.IpConnectivityLog;
|
import android.net.metrics.IpConnectivityLog;
|
||||||
import android.net.metrics.NetworkEvent;
|
import android.net.metrics.NetworkEvent;
|
||||||
|
import android.net.netd.aidl.NativeUidRangeConfig;
|
||||||
import android.net.netlink.InetDiagMessage;
|
import android.net.netlink.InetDiagMessage;
|
||||||
import android.net.networkstack.ModuleNetworkStackClient;
|
import android.net.networkstack.ModuleNetworkStackClient;
|
||||||
import android.net.networkstack.NetworkStackClientBase;
|
import android.net.networkstack.NetworkStackClientBase;
|
||||||
@@ -4223,10 +4224,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
final NetworkAgentInfo satisfier = nri.getSatisfier();
|
final NetworkAgentInfo satisfier = nri.getSatisfier();
|
||||||
if (null != satisfier) {
|
if (null != satisfier) {
|
||||||
try {
|
try {
|
||||||
// TODO: Passing default network priority to netd.
|
mNetd.networkRemoveUidRangesParcel(new NativeUidRangeConfig(
|
||||||
mNetd.networkRemoveUidRanges(satisfier.network.getNetId(),
|
satisfier.network.getNetId(),
|
||||||
toUidRangeStableParcels(nri.getUids())
|
toUidRangeStableParcels(nri.getUids()),
|
||||||
/* nri.getDefaultNetworkPriority() */);
|
nri.getDefaultNetworkPriority()));
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
loge("Exception setting network preference default network", e);
|
loge("Exception setting network preference default network", e);
|
||||||
}
|
}
|
||||||
@@ -7496,13 +7497,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
maybeCloseSockets(nai, ranges, exemptUids);
|
maybeCloseSockets(nai, ranges, exemptUids);
|
||||||
try {
|
try {
|
||||||
if (add) {
|
if (add) {
|
||||||
// TODO: Passing default network priority to netd.
|
mNetd.networkAddUidRangesParcel(new NativeUidRangeConfig(
|
||||||
mNetd.networkAddUidRanges(nai.network.netId, ranges
|
nai.network.netId, ranges, DEFAULT_NETWORK_PRIORITY_NONE));
|
||||||
/* DEFAULT_NETWORK_PRIORITY_NONE */);
|
|
||||||
} else {
|
} else {
|
||||||
// TODO: Passing default network priority to netd.
|
mNetd.networkRemoveUidRangesParcel(new NativeUidRangeConfig(
|
||||||
mNetd.networkRemoveUidRanges(nai.network.netId, ranges
|
nai.network.netId, ranges, DEFAULT_NETWORK_PRIORITY_NONE));
|
||||||
/* DEFAULT_NETWORK_PRIORITY_NONE */);
|
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
loge("Exception while " + (add ? "adding" : "removing") + " uid ranges " + uidRanges +
|
loge("Exception while " + (add ? "adding" : "removing") + " uid ranges " + uidRanges +
|
||||||
@@ -7844,18 +7843,16 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
+ " any applications to set as the default." + nri);
|
+ " any applications to set as the default." + nri);
|
||||||
}
|
}
|
||||||
if (null != newDefaultNetwork) {
|
if (null != newDefaultNetwork) {
|
||||||
// TODO: Passing default network priority to netd.
|
mNetd.networkAddUidRangesParcel(new NativeUidRangeConfig(
|
||||||
mNetd.networkAddUidRanges(
|
|
||||||
newDefaultNetwork.network.getNetId(),
|
newDefaultNetwork.network.getNetId(),
|
||||||
toUidRangeStableParcels(nri.getUids())
|
toUidRangeStableParcels(nri.getUids()),
|
||||||
/* nri.getDefaultNetworkPriority() */);
|
nri.getDefaultNetworkPriority()));
|
||||||
}
|
}
|
||||||
if (null != oldDefaultNetwork) {
|
if (null != oldDefaultNetwork) {
|
||||||
// TODO: Passing default network priority to netd.
|
mNetd.networkRemoveUidRangesParcel(new NativeUidRangeConfig(
|
||||||
mNetd.networkRemoveUidRanges(
|
|
||||||
oldDefaultNetwork.network.getNetId(),
|
oldDefaultNetwork.network.getNetId(),
|
||||||
toUidRangeStableParcels(nri.getUids())
|
toUidRangeStableParcels(nri.getUids()),
|
||||||
/* nri.getDefaultNetworkPriority() */);
|
nri.getDefaultNetworkPriority()));
|
||||||
}
|
}
|
||||||
} catch (RemoteException | ServiceSpecificException e) {
|
} catch (RemoteException | ServiceSpecificException e) {
|
||||||
loge("Exception setting app default network", e);
|
loge("Exception setting app default network", e);
|
||||||
|
|||||||
@@ -126,7 +126,9 @@ import static android.os.Process.INVALID_UID;
|
|||||||
import static android.system.OsConstants.IPPROTO_TCP;
|
import static android.system.OsConstants.IPPROTO_TCP;
|
||||||
|
|
||||||
import static com.android.server.ConnectivityService.DEFAULT_NETWORK_PRIORITY_MOBILE_DATA_PREFERRED;
|
import static com.android.server.ConnectivityService.DEFAULT_NETWORK_PRIORITY_MOBILE_DATA_PREFERRED;
|
||||||
|
import static com.android.server.ConnectivityService.DEFAULT_NETWORK_PRIORITY_NONE;
|
||||||
import static com.android.server.ConnectivityService.DEFAULT_NETWORK_PRIORITY_OEM;
|
import static com.android.server.ConnectivityService.DEFAULT_NETWORK_PRIORITY_OEM;
|
||||||
|
import static com.android.server.ConnectivityService.DEFAULT_NETWORK_PRIORITY_PROFILE;
|
||||||
import static com.android.server.ConnectivityServiceTestUtils.transportToLegacyType;
|
import static com.android.server.ConnectivityServiceTestUtils.transportToLegacyType;
|
||||||
import static com.android.testutils.ConcurrentUtils.await;
|
import static com.android.testutils.ConcurrentUtils.await;
|
||||||
import static com.android.testutils.ConcurrentUtils.durationOf;
|
import static com.android.testutils.ConcurrentUtils.durationOf;
|
||||||
@@ -258,6 +260,7 @@ import android.net.Uri;
|
|||||||
import android.net.VpnManager;
|
import android.net.VpnManager;
|
||||||
import android.net.VpnTransportInfo;
|
import android.net.VpnTransportInfo;
|
||||||
import android.net.metrics.IpConnectivityLog;
|
import android.net.metrics.IpConnectivityLog;
|
||||||
|
import android.net.netd.aidl.NativeUidRangeConfig;
|
||||||
import android.net.networkstack.NetworkStackClientBase;
|
import android.net.networkstack.NetworkStackClientBase;
|
||||||
import android.net.resolv.aidl.Nat64PrefixEventParcel;
|
import android.net.resolv.aidl.Nat64PrefixEventParcel;
|
||||||
import android.net.resolv.aidl.PrivateDnsValidationEventParcel;
|
import android.net.resolv.aidl.PrivateDnsValidationEventParcel;
|
||||||
@@ -1296,10 +1299,12 @@ public class ConnectivityServiceTest {
|
|||||||
mNetworkCapabilities);
|
mNetworkCapabilities);
|
||||||
mMockNetworkAgent.waitForIdle(TIMEOUT_MS);
|
mMockNetworkAgent.waitForIdle(TIMEOUT_MS);
|
||||||
|
|
||||||
verify(mMockNetd, times(1)).networkAddUidRanges(eq(mMockVpn.getNetwork().getNetId()),
|
verify(mMockNetd, times(1)).networkAddUidRangesParcel(
|
||||||
eq(toUidRangeStableParcels(uids)));
|
new NativeUidRangeConfig(mMockVpn.getNetwork().getNetId(),
|
||||||
verify(mMockNetd, never())
|
toUidRangeStableParcels(uids), DEFAULT_NETWORK_PRIORITY_NONE));
|
||||||
.networkRemoveUidRanges(eq(mMockVpn.getNetwork().getNetId()), any());
|
verify(mMockNetd, never()).networkRemoveUidRangesParcel(argThat(config ->
|
||||||
|
mMockVpn.getNetwork().getNetId() == config.netId
|
||||||
|
&& DEFAULT_NETWORK_PRIORITY_NONE == config.subPriority));
|
||||||
mAgentRegistered = true;
|
mAgentRegistered = true;
|
||||||
verify(mMockNetd).networkCreate(nativeNetworkConfigVpn(getNetwork().netId,
|
verify(mMockNetd).networkCreate(nativeNetworkConfigVpn(getNetwork().netId,
|
||||||
!mMockNetworkAgent.isBypassableVpn(), mVpnType));
|
!mMockNetworkAgent.isBypassableVpn(), mVpnType));
|
||||||
@@ -10484,13 +10489,13 @@ public class ConnectivityServiceTest {
|
|||||||
assertContainsExactly(exemptUidCaptor.getValue(), Process.VPN_UID, exemptUid);
|
assertContainsExactly(exemptUidCaptor.getValue(), Process.VPN_UID, exemptUid);
|
||||||
|
|
||||||
if (add) {
|
if (add) {
|
||||||
inOrder.verify(mMockNetd, times(1))
|
inOrder.verify(mMockNetd, times(1)).networkAddUidRangesParcel(
|
||||||
.networkAddUidRanges(eq(mMockVpn.getNetwork().getNetId()),
|
new NativeUidRangeConfig(mMockVpn.getNetwork().getNetId(),
|
||||||
eq(toUidRangeStableParcels(vpnRanges)));
|
toUidRangeStableParcels(vpnRanges), DEFAULT_NETWORK_PRIORITY_NONE));
|
||||||
} else {
|
} else {
|
||||||
inOrder.verify(mMockNetd, times(1))
|
inOrder.verify(mMockNetd, times(1)).networkRemoveUidRangesParcel(
|
||||||
.networkRemoveUidRanges(eq(mMockVpn.getNetwork().getNetId()),
|
new NativeUidRangeConfig(mMockVpn.getNetwork().getNetId(),
|
||||||
eq(toUidRangeStableParcels(vpnRanges)));
|
toUidRangeStableParcels(vpnRanges), DEFAULT_NETWORK_PRIORITY_NONE));
|
||||||
}
|
}
|
||||||
|
|
||||||
inOrder.verify(mMockNetd, times(1)).socketDestroy(eq(toUidRangeStableParcels(vpnRanges)),
|
inOrder.verify(mMockNetd, times(1)).socketDestroy(eq(toUidRangeStableParcels(vpnRanges)),
|
||||||
@@ -11722,14 +11727,15 @@ public class ConnectivityServiceTest {
|
|||||||
final boolean useAnyIdForAdd = OEM_PREF_ANY_NET_ID == addUidRangesNetId;
|
final boolean useAnyIdForAdd = OEM_PREF_ANY_NET_ID == addUidRangesNetId;
|
||||||
final boolean useAnyIdForRemove = OEM_PREF_ANY_NET_ID == removeUidRangesNetId;
|
final boolean useAnyIdForRemove = OEM_PREF_ANY_NET_ID == removeUidRangesNetId;
|
||||||
|
|
||||||
// Validate netd.
|
// Validate that add/remove uid range (with oem priority) to/from netd.
|
||||||
verify(mMockNetd, times(addUidRangesTimes))
|
verify(mMockNetd, times(addUidRangesTimes)).networkAddUidRangesParcel(argThat(config ->
|
||||||
.networkAddUidRanges(
|
(useAnyIdForAdd ? true : addUidRangesNetId == config.netId)
|
||||||
(useAnyIdForAdd ? anyInt() : eq(addUidRangesNetId)), eq(addedUidRanges));
|
&& Arrays.equals(addedUidRanges, config.uidRanges)
|
||||||
verify(mMockNetd, times(removeUidRangesTimes))
|
&& DEFAULT_NETWORK_PRIORITY_OEM == config.subPriority));
|
||||||
.networkRemoveUidRanges(
|
verify(mMockNetd, times(removeUidRangesTimes)).networkRemoveUidRangesParcel(
|
||||||
(useAnyIdForRemove ? anyInt() : eq(removeUidRangesNetId)),
|
argThat(config -> (useAnyIdForRemove ? true : removeUidRangesNetId == config.netId)
|
||||||
eq(removedUidRanges));
|
&& Arrays.equals(removedUidRanges, config.uidRanges)
|
||||||
|
&& DEFAULT_NETWORK_PRIORITY_OEM == config.subPriority));
|
||||||
if (shouldDestroyNetwork) {
|
if (shouldDestroyNetwork) {
|
||||||
verify(mMockNetd, times(1))
|
verify(mMockNetd, times(1))
|
||||||
.networkDestroy((useAnyIdForRemove ? anyInt() : eq(removeUidRangesNetId)));
|
.networkDestroy((useAnyIdForRemove ? anyInt() : eq(removeUidRangesNetId)));
|
||||||
@@ -12882,8 +12888,9 @@ public class ConnectivityServiceTest {
|
|||||||
// rules to the correct network – in this case the system default network. The case where
|
// rules to the correct network – in this case the system default network. The case where
|
||||||
// the default network for the profile happens to be the same as the system default
|
// the default network for the profile happens to be the same as the system default
|
||||||
// is not handled specially, the rules are always active as long as a preference is set.
|
// is not handled specially, the rules are always active as long as a preference is set.
|
||||||
inOrder.verify(mMockNetd).networkAddUidRanges(mCellNetworkAgent.getNetwork().netId,
|
inOrder.verify(mMockNetd).networkAddUidRangesParcel(new NativeUidRangeConfig(
|
||||||
uidRangeFor(testHandle));
|
mCellNetworkAgent.getNetwork().netId, uidRangeFor(testHandle),
|
||||||
|
DEFAULT_NETWORK_PRIORITY_PROFILE));
|
||||||
|
|
||||||
// The enterprise network is not ready yet.
|
// The enterprise network is not ready yet.
|
||||||
assertNoCallbacks(mSystemDefaultNetworkCallback, mDefaultNetworkCallback,
|
assertNoCallbacks(mSystemDefaultNetworkCallback, mDefaultNetworkCallback,
|
||||||
@@ -12897,10 +12904,12 @@ public class ConnectivityServiceTest {
|
|||||||
mDefaultNetworkCallback.assertNoCallback();
|
mDefaultNetworkCallback.assertNoCallback();
|
||||||
inOrder.verify(mMockNetd).networkCreate(
|
inOrder.verify(mMockNetd).networkCreate(
|
||||||
nativeNetworkConfigPhysical(workAgent.getNetwork().netId, INetd.PERMISSION_SYSTEM));
|
nativeNetworkConfigPhysical(workAgent.getNetwork().netId, INetd.PERMISSION_SYSTEM));
|
||||||
inOrder.verify(mMockNetd).networkAddUidRanges(workAgent.getNetwork().netId,
|
inOrder.verify(mMockNetd).networkAddUidRangesParcel(new NativeUidRangeConfig(
|
||||||
uidRangeFor(testHandle));
|
workAgent.getNetwork().netId, uidRangeFor(testHandle),
|
||||||
inOrder.verify(mMockNetd).networkRemoveUidRanges(mCellNetworkAgent.getNetwork().netId,
|
DEFAULT_NETWORK_PRIORITY_PROFILE));
|
||||||
uidRangeFor(testHandle));
|
inOrder.verify(mMockNetd).networkRemoveUidRangesParcel(new NativeUidRangeConfig(
|
||||||
|
mCellNetworkAgent.getNetwork().netId, uidRangeFor(testHandle),
|
||||||
|
DEFAULT_NETWORK_PRIORITY_PROFILE));
|
||||||
|
|
||||||
// Make sure changes to the work agent send callbacks to the app in the work profile, but
|
// Make sure changes to the work agent send callbacks to the app in the work profile, but
|
||||||
// not to the other apps.
|
// not to the other apps.
|
||||||
@@ -12948,8 +12957,9 @@ public class ConnectivityServiceTest {
|
|||||||
mProfileDefaultNetworkCallback.expectCallback(CallbackEntry.LOST, workAgent);
|
mProfileDefaultNetworkCallback.expectCallback(CallbackEntry.LOST, workAgent);
|
||||||
mProfileDefaultNetworkCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
mProfileDefaultNetworkCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
||||||
assertNoCallbacks(mSystemDefaultNetworkCallback, mDefaultNetworkCallback);
|
assertNoCallbacks(mSystemDefaultNetworkCallback, mDefaultNetworkCallback);
|
||||||
inOrder.verify(mMockNetd).networkAddUidRanges(mCellNetworkAgent.getNetwork().netId,
|
inOrder.verify(mMockNetd).networkAddUidRangesParcel(new NativeUidRangeConfig(
|
||||||
uidRangeFor(testHandle));
|
mCellNetworkAgent.getNetwork().netId, uidRangeFor(testHandle),
|
||||||
|
DEFAULT_NETWORK_PRIORITY_PROFILE));
|
||||||
inOrder.verify(mMockNetd).networkDestroy(workAgent.getNetwork().netId);
|
inOrder.verify(mMockNetd).networkDestroy(workAgent.getNetwork().netId);
|
||||||
|
|
||||||
mCellNetworkAgent.disconnect();
|
mCellNetworkAgent.disconnect();
|
||||||
@@ -12972,8 +12982,9 @@ public class ConnectivityServiceTest {
|
|||||||
assertNoCallbacks(mSystemDefaultNetworkCallback, mDefaultNetworkCallback);
|
assertNoCallbacks(mSystemDefaultNetworkCallback, mDefaultNetworkCallback);
|
||||||
inOrder.verify(mMockNetd).networkCreate(nativeNetworkConfigPhysical(
|
inOrder.verify(mMockNetd).networkCreate(nativeNetworkConfigPhysical(
|
||||||
workAgent2.getNetwork().netId, INetd.PERMISSION_SYSTEM));
|
workAgent2.getNetwork().netId, INetd.PERMISSION_SYSTEM));
|
||||||
inOrder.verify(mMockNetd).networkAddUidRanges(workAgent2.getNetwork().netId,
|
inOrder.verify(mMockNetd).networkAddUidRangesParcel(new NativeUidRangeConfig(
|
||||||
uidRangeFor(testHandle));
|
workAgent2.getNetwork().netId, uidRangeFor(testHandle),
|
||||||
|
DEFAULT_NETWORK_PRIORITY_PROFILE));
|
||||||
|
|
||||||
workAgent2.setNetworkValid(true /* isStrictMode */);
|
workAgent2.setNetworkValid(true /* isStrictMode */);
|
||||||
workAgent2.mNetworkMonitor.forceReevaluation(Process.myUid());
|
workAgent2.mNetworkMonitor.forceReevaluation(Process.myUid());
|
||||||
@@ -12981,7 +12992,7 @@ public class ConnectivityServiceTest {
|
|||||||
nc -> nc.hasCapability(NET_CAPABILITY_ENTERPRISE)
|
nc -> nc.hasCapability(NET_CAPABILITY_ENTERPRISE)
|
||||||
&& !nc.hasCapability(NET_CAPABILITY_NOT_RESTRICTED));
|
&& !nc.hasCapability(NET_CAPABILITY_NOT_RESTRICTED));
|
||||||
assertNoCallbacks(mSystemDefaultNetworkCallback, mDefaultNetworkCallback);
|
assertNoCallbacks(mSystemDefaultNetworkCallback, mDefaultNetworkCallback);
|
||||||
inOrder.verify(mMockNetd, never()).networkAddUidRanges(anyInt(), any());
|
inOrder.verify(mMockNetd, never()).networkAddUidRangesParcel(any());
|
||||||
|
|
||||||
// When the agent disconnects, test that the app on the work profile falls back to the
|
// When the agent disconnects, test that the app on the work profile falls back to the
|
||||||
// default network.
|
// default network.
|
||||||
@@ -13018,8 +13029,9 @@ public class ConnectivityServiceTest {
|
|||||||
listener.expectOnComplete();
|
listener.expectOnComplete();
|
||||||
inOrder.verify(mMockNetd).networkCreate(nativeNetworkConfigPhysical(
|
inOrder.verify(mMockNetd).networkCreate(nativeNetworkConfigPhysical(
|
||||||
mCellNetworkAgent.getNetwork().netId, INetd.PERMISSION_NONE));
|
mCellNetworkAgent.getNetwork().netId, INetd.PERMISSION_NONE));
|
||||||
inOrder.verify(mMockNetd).networkAddUidRanges(workAgent.getNetwork().netId,
|
inOrder.verify(mMockNetd).networkAddUidRangesParcel(new NativeUidRangeConfig(
|
||||||
uidRangeFor(testHandle));
|
workAgent.getNetwork().netId, uidRangeFor(testHandle),
|
||||||
|
DEFAULT_NETWORK_PRIORITY_PROFILE));
|
||||||
|
|
||||||
registerDefaultNetworkCallbacks();
|
registerDefaultNetworkCallbacks();
|
||||||
|
|
||||||
@@ -13033,8 +13045,9 @@ public class ConnectivityServiceTest {
|
|||||||
|
|
||||||
mProfileDefaultNetworkCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
mProfileDefaultNetworkCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
||||||
assertNoCallbacks(mSystemDefaultNetworkCallback, mDefaultNetworkCallback);
|
assertNoCallbacks(mSystemDefaultNetworkCallback, mDefaultNetworkCallback);
|
||||||
inOrder.verify(mMockNetd).networkRemoveUidRanges(workAgent.getNetwork().netId,
|
inOrder.verify(mMockNetd).networkRemoveUidRangesParcel(new NativeUidRangeConfig(
|
||||||
uidRangeFor(testHandle));
|
workAgent.getNetwork().netId, uidRangeFor(testHandle),
|
||||||
|
DEFAULT_NETWORK_PRIORITY_PROFILE));
|
||||||
|
|
||||||
workAgent.disconnect();
|
workAgent.disconnect();
|
||||||
mCellNetworkAgent.disconnect();
|
mCellNetworkAgent.disconnect();
|
||||||
@@ -13078,8 +13091,9 @@ public class ConnectivityServiceTest {
|
|||||||
mCm.setProfileNetworkPreference(testHandle2, PROFILE_NETWORK_PREFERENCE_ENTERPRISE,
|
mCm.setProfileNetworkPreference(testHandle2, PROFILE_NETWORK_PREFERENCE_ENTERPRISE,
|
||||||
r -> r.run(), listener);
|
r -> r.run(), listener);
|
||||||
listener.expectOnComplete();
|
listener.expectOnComplete();
|
||||||
inOrder.verify(mMockNetd).networkAddUidRanges(workAgent.getNetwork().netId,
|
inOrder.verify(mMockNetd).networkAddUidRangesParcel(new NativeUidRangeConfig(
|
||||||
uidRangeFor(testHandle2));
|
workAgent.getNetwork().netId, uidRangeFor(testHandle2),
|
||||||
|
DEFAULT_NETWORK_PRIORITY_PROFILE));
|
||||||
|
|
||||||
mProfileDefaultNetworkCallback.expectAvailableCallbacksValidated(workAgent);
|
mProfileDefaultNetworkCallback.expectAvailableCallbacksValidated(workAgent);
|
||||||
assertNoCallbacks(mSystemDefaultNetworkCallback, mDefaultNetworkCallback,
|
assertNoCallbacks(mSystemDefaultNetworkCallback, mDefaultNetworkCallback,
|
||||||
@@ -13088,8 +13102,9 @@ public class ConnectivityServiceTest {
|
|||||||
mCm.setProfileNetworkPreference(testHandle4, PROFILE_NETWORK_PREFERENCE_ENTERPRISE,
|
mCm.setProfileNetworkPreference(testHandle4, PROFILE_NETWORK_PREFERENCE_ENTERPRISE,
|
||||||
r -> r.run(), listener);
|
r -> r.run(), listener);
|
||||||
listener.expectOnComplete();
|
listener.expectOnComplete();
|
||||||
inOrder.verify(mMockNetd).networkAddUidRanges(workAgent.getNetwork().netId,
|
inOrder.verify(mMockNetd).networkAddUidRangesParcel(new NativeUidRangeConfig(
|
||||||
uidRangeFor(testHandle4));
|
workAgent.getNetwork().netId, uidRangeFor(testHandle4),
|
||||||
|
DEFAULT_NETWORK_PRIORITY_PROFILE));
|
||||||
|
|
||||||
app4Cb.expectAvailableCallbacksValidated(workAgent);
|
app4Cb.expectAvailableCallbacksValidated(workAgent);
|
||||||
assertNoCallbacks(mSystemDefaultNetworkCallback, mDefaultNetworkCallback,
|
assertNoCallbacks(mSystemDefaultNetworkCallback, mDefaultNetworkCallback,
|
||||||
@@ -13098,8 +13113,9 @@ public class ConnectivityServiceTest {
|
|||||||
mCm.setProfileNetworkPreference(testHandle2, PROFILE_NETWORK_PREFERENCE_DEFAULT,
|
mCm.setProfileNetworkPreference(testHandle2, PROFILE_NETWORK_PREFERENCE_DEFAULT,
|
||||||
r -> r.run(), listener);
|
r -> r.run(), listener);
|
||||||
listener.expectOnComplete();
|
listener.expectOnComplete();
|
||||||
inOrder.verify(mMockNetd).networkRemoveUidRanges(workAgent.getNetwork().netId,
|
inOrder.verify(mMockNetd).networkRemoveUidRangesParcel(new NativeUidRangeConfig(
|
||||||
uidRangeFor(testHandle2));
|
workAgent.getNetwork().netId, uidRangeFor(testHandle2),
|
||||||
|
DEFAULT_NETWORK_PRIORITY_PROFILE));
|
||||||
|
|
||||||
mProfileDefaultNetworkCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
mProfileDefaultNetworkCallback.expectAvailableCallbacksValidated(mCellNetworkAgent);
|
||||||
assertNoCallbacks(mSystemDefaultNetworkCallback, mDefaultNetworkCallback,
|
assertNoCallbacks(mSystemDefaultNetworkCallback, mDefaultNetworkCallback,
|
||||||
@@ -13126,15 +13142,17 @@ public class ConnectivityServiceTest {
|
|||||||
listener.expectOnComplete();
|
listener.expectOnComplete();
|
||||||
inOrder.verify(mMockNetd).networkCreate(nativeNetworkConfigPhysical(
|
inOrder.verify(mMockNetd).networkCreate(nativeNetworkConfigPhysical(
|
||||||
mCellNetworkAgent.getNetwork().netId, INetd.PERMISSION_NONE));
|
mCellNetworkAgent.getNetwork().netId, INetd.PERMISSION_NONE));
|
||||||
inOrder.verify(mMockNetd).networkAddUidRanges(mCellNetworkAgent.getNetwork().netId,
|
inOrder.verify(mMockNetd).networkAddUidRangesParcel(new NativeUidRangeConfig(
|
||||||
uidRangeFor(testHandle));
|
mCellNetworkAgent.getNetwork().netId, uidRangeFor(testHandle),
|
||||||
|
DEFAULT_NETWORK_PRIORITY_PROFILE));
|
||||||
|
|
||||||
final Intent removedIntent = new Intent(ACTION_USER_REMOVED);
|
final Intent removedIntent = new Intent(ACTION_USER_REMOVED);
|
||||||
removedIntent.putExtra(Intent.EXTRA_USER, testHandle);
|
removedIntent.putExtra(Intent.EXTRA_USER, testHandle);
|
||||||
processBroadcast(removedIntent);
|
processBroadcast(removedIntent);
|
||||||
|
|
||||||
inOrder.verify(mMockNetd).networkRemoveUidRanges(mCellNetworkAgent.getNetwork().netId,
|
inOrder.verify(mMockNetd).networkRemoveUidRangesParcel(new NativeUidRangeConfig(
|
||||||
uidRangeFor(testHandle));
|
mCellNetworkAgent.getNetwork().netId, uidRangeFor(testHandle),
|
||||||
|
DEFAULT_NETWORK_PRIORITY_PROFILE));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -13383,15 +13401,17 @@ public class ConnectivityServiceTest {
|
|||||||
|
|
||||||
// Initial mobile data preferred uids status.
|
// Initial mobile data preferred uids status.
|
||||||
setAndUpdateMobileDataPreferredUids(Set.of());
|
setAndUpdateMobileDataPreferredUids(Set.of());
|
||||||
inorder.verify(mMockNetd, never()).networkAddUidRanges(anyInt(), any());
|
inorder.verify(mMockNetd, never()).networkAddUidRangesParcel(any());
|
||||||
inorder.verify(mMockNetd, never()).networkRemoveUidRanges(anyInt(), any());
|
inorder.verify(mMockNetd, never()).networkRemoveUidRangesParcel(any());
|
||||||
|
|
||||||
// Set MOBILE_DATA_PREFERRED_UIDS setting and verify that net id and uid ranges send to netd
|
// Set MOBILE_DATA_PREFERRED_UIDS setting and verify that net id and uid ranges send to netd
|
||||||
final Set<Integer> uids1 = Set.of(PRIMARY_USER_HANDLE.getUid(TEST_PACKAGE_UID));
|
final Set<Integer> uids1 = Set.of(PRIMARY_USER_HANDLE.getUid(TEST_PACKAGE_UID));
|
||||||
final UidRangeParcel[] uidRanges1 = toUidRangeStableParcels(uidRangesForUids(uids1));
|
final UidRangeParcel[] uidRanges1 = toUidRangeStableParcels(uidRangesForUids(uids1));
|
||||||
|
final NativeUidRangeConfig config1 = new NativeUidRangeConfig(cellNetId, uidRanges1,
|
||||||
|
DEFAULT_NETWORK_PRIORITY_MOBILE_DATA_PREFERRED);
|
||||||
setAndUpdateMobileDataPreferredUids(uids1);
|
setAndUpdateMobileDataPreferredUids(uids1);
|
||||||
inorder.verify(mMockNetd, times(1)).networkAddUidRanges(cellNetId, uidRanges1);
|
inorder.verify(mMockNetd, times(1)).networkAddUidRangesParcel(config1);
|
||||||
inorder.verify(mMockNetd, never()).networkRemoveUidRanges(anyInt(), any());
|
inorder.verify(mMockNetd, never()).networkRemoveUidRangesParcel(any());
|
||||||
|
|
||||||
// Set MOBILE_DATA_PREFERRED_UIDS setting again and verify that old rules are removed and
|
// Set MOBILE_DATA_PREFERRED_UIDS setting again and verify that old rules are removed and
|
||||||
// new rules are added.
|
// new rules are added.
|
||||||
@@ -13399,17 +13419,17 @@ public class ConnectivityServiceTest {
|
|||||||
PRIMARY_USER_HANDLE.getUid(TEST_PACKAGE_UID2),
|
PRIMARY_USER_HANDLE.getUid(TEST_PACKAGE_UID2),
|
||||||
SECONDARY_USER_HANDLE.getUid(TEST_PACKAGE_UID));
|
SECONDARY_USER_HANDLE.getUid(TEST_PACKAGE_UID));
|
||||||
final UidRangeParcel[] uidRanges2 = toUidRangeStableParcels(uidRangesForUids(uids2));
|
final UidRangeParcel[] uidRanges2 = toUidRangeStableParcels(uidRangesForUids(uids2));
|
||||||
|
final NativeUidRangeConfig config2 = new NativeUidRangeConfig(cellNetId, uidRanges2,
|
||||||
|
DEFAULT_NETWORK_PRIORITY_MOBILE_DATA_PREFERRED);
|
||||||
setAndUpdateMobileDataPreferredUids(uids2);
|
setAndUpdateMobileDataPreferredUids(uids2);
|
||||||
inorder.verify(mMockNetd, times(1)).networkRemoveUidRanges(cellNetId, uidRanges1);
|
inorder.verify(mMockNetd, times(1)).networkRemoveUidRangesParcel(config1);
|
||||||
inorder.verify(mMockNetd, times(1)).networkAddUidRanges(cellNetId, uidRanges2);
|
inorder.verify(mMockNetd, times(1)).networkAddUidRangesParcel(config2);
|
||||||
|
|
||||||
// Clear MOBILE_DATA_PREFERRED_UIDS setting again and verify that old rules are removed and
|
// Clear MOBILE_DATA_PREFERRED_UIDS setting again and verify that old rules are removed and
|
||||||
// new rules are not added.
|
// new rules are not added.
|
||||||
final Set<Integer> uids3 = Set.of();
|
setAndUpdateMobileDataPreferredUids(Set.of());
|
||||||
final UidRangeParcel[] uidRanges3 = toUidRangeStableParcels(uidRangesForUids(uids3));
|
inorder.verify(mMockNetd, times(1)).networkRemoveUidRangesParcel(config2);
|
||||||
setAndUpdateMobileDataPreferredUids(uids3);
|
inorder.verify(mMockNetd, never()).networkAddUidRangesParcel(any());
|
||||||
inorder.verify(mMockNetd, times(1)).networkRemoveUidRanges(cellNetId, uidRanges2);
|
|
||||||
inorder.verify(mMockNetd, never()).networkAddUidRanges(anyInt(), any());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -13440,16 +13460,18 @@ public class ConnectivityServiceTest {
|
|||||||
|
|
||||||
// Initial mobile data preferred uids status.
|
// Initial mobile data preferred uids status.
|
||||||
setAndUpdateMobileDataPreferredUids(Set.of());
|
setAndUpdateMobileDataPreferredUids(Set.of());
|
||||||
inorder.verify(mMockNetd, never()).networkAddUidRanges(anyInt(), any());
|
inorder.verify(mMockNetd, never()).networkAddUidRangesParcel(any());
|
||||||
inorder.verify(mMockNetd, never()).networkRemoveUidRanges(anyInt(), any());
|
inorder.verify(mMockNetd, never()).networkRemoveUidRangesParcel(any());
|
||||||
|
|
||||||
// Set MOBILE_DATA_PREFERRED_UIDS setting and verify that wifi net id and uid ranges send to
|
// Set MOBILE_DATA_PREFERRED_UIDS setting and verify that wifi net id and uid ranges send to
|
||||||
// netd.
|
// netd.
|
||||||
final Set<Integer> uids = Set.of(PRIMARY_USER_HANDLE.getUid(TEST_PACKAGE_UID));
|
final Set<Integer> uids = Set.of(PRIMARY_USER_HANDLE.getUid(TEST_PACKAGE_UID));
|
||||||
final UidRangeParcel[] uidRanges = toUidRangeStableParcels(uidRangesForUids(uids));
|
final UidRangeParcel[] uidRanges = toUidRangeStableParcels(uidRangesForUids(uids));
|
||||||
|
final NativeUidRangeConfig wifiConfig = new NativeUidRangeConfig(wifiNetId, uidRanges,
|
||||||
|
DEFAULT_NETWORK_PRIORITY_MOBILE_DATA_PREFERRED);
|
||||||
setAndUpdateMobileDataPreferredUids(uids);
|
setAndUpdateMobileDataPreferredUids(uids);
|
||||||
inorder.verify(mMockNetd, times(1)).networkAddUidRanges(wifiNetId, uidRanges);
|
inorder.verify(mMockNetd, times(1)).networkAddUidRangesParcel(wifiConfig);
|
||||||
inorder.verify(mMockNetd, never()).networkRemoveUidRanges(anyInt(), any());
|
inorder.verify(mMockNetd, never()).networkRemoveUidRangesParcel(any());
|
||||||
|
|
||||||
// Cellular network connected. mTestPackageDefaultNetworkCallback should receive
|
// Cellular network connected. mTestPackageDefaultNetworkCallback should receive
|
||||||
// callback with cellular network and net id and uid ranges should be updated to netd.
|
// callback with cellular network and net id and uid ranges should be updated to netd.
|
||||||
@@ -13461,10 +13483,12 @@ public class ConnectivityServiceTest {
|
|||||||
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetworkForUid(TEST_PACKAGE_UID));
|
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetworkForUid(TEST_PACKAGE_UID));
|
||||||
|
|
||||||
final int cellNetId = mCellNetworkAgent.getNetwork().netId;
|
final int cellNetId = mCellNetworkAgent.getNetwork().netId;
|
||||||
|
final NativeUidRangeConfig cellConfig = new NativeUidRangeConfig(cellNetId, uidRanges,
|
||||||
|
DEFAULT_NETWORK_PRIORITY_MOBILE_DATA_PREFERRED);
|
||||||
inorder.verify(mMockNetd, times(1)).networkCreate(nativeNetworkConfigPhysical(
|
inorder.verify(mMockNetd, times(1)).networkCreate(nativeNetworkConfigPhysical(
|
||||||
cellNetId, INetd.PERMISSION_NONE));
|
cellNetId, INetd.PERMISSION_NONE));
|
||||||
inorder.verify(mMockNetd, times(1)).networkAddUidRanges(cellNetId, uidRanges);
|
inorder.verify(mMockNetd, times(1)).networkAddUidRangesParcel(cellConfig);
|
||||||
inorder.verify(mMockNetd, times(1)).networkRemoveUidRanges(wifiNetId, uidRanges);
|
inorder.verify(mMockNetd, times(1)).networkRemoveUidRangesParcel(wifiConfig);
|
||||||
|
|
||||||
// Cellular network disconnected. mTestPackageDefaultNetworkCallback should receive
|
// Cellular network disconnected. mTestPackageDefaultNetworkCallback should receive
|
||||||
// callback with wifi network from fallback request.
|
// callback with wifi network from fallback request.
|
||||||
@@ -13474,8 +13498,8 @@ public class ConnectivityServiceTest {
|
|||||||
mTestPackageDefaultNetworkCallback.expectCallback(CallbackEntry.LOST, mCellNetworkAgent);
|
mTestPackageDefaultNetworkCallback.expectCallback(CallbackEntry.LOST, mCellNetworkAgent);
|
||||||
mTestPackageDefaultNetworkCallback.expectAvailableCallbacksValidated(mWiFiNetworkAgent);
|
mTestPackageDefaultNetworkCallback.expectAvailableCallbacksValidated(mWiFiNetworkAgent);
|
||||||
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetworkForUid(TEST_PACKAGE_UID));
|
assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetworkForUid(TEST_PACKAGE_UID));
|
||||||
inorder.verify(mMockNetd, times(1)).networkAddUidRanges(wifiNetId, uidRanges);
|
inorder.verify(mMockNetd, times(1)).networkAddUidRangesParcel(wifiConfig);
|
||||||
inorder.verify(mMockNetd, never()).networkRemoveUidRanges(anyInt(), any());
|
inorder.verify(mMockNetd, never()).networkRemoveUidRangesParcel(any());
|
||||||
inorder.verify(mMockNetd).networkDestroy(cellNetId);
|
inorder.verify(mMockNetd).networkDestroy(cellNetId);
|
||||||
|
|
||||||
// Cellular network comes back. mTestPackageDefaultNetworkCallback should receive
|
// Cellular network comes back. mTestPackageDefaultNetworkCallback should receive
|
||||||
@@ -13488,10 +13512,12 @@ public class ConnectivityServiceTest {
|
|||||||
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetworkForUid(TEST_PACKAGE_UID));
|
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetworkForUid(TEST_PACKAGE_UID));
|
||||||
|
|
||||||
final int cellNetId2 = mCellNetworkAgent.getNetwork().netId;
|
final int cellNetId2 = mCellNetworkAgent.getNetwork().netId;
|
||||||
|
final NativeUidRangeConfig cellConfig2 = new NativeUidRangeConfig(cellNetId2, uidRanges,
|
||||||
|
DEFAULT_NETWORK_PRIORITY_MOBILE_DATA_PREFERRED);
|
||||||
inorder.verify(mMockNetd, times(1)).networkCreate(nativeNetworkConfigPhysical(
|
inorder.verify(mMockNetd, times(1)).networkCreate(nativeNetworkConfigPhysical(
|
||||||
cellNetId2, INetd.PERMISSION_NONE));
|
cellNetId2, INetd.PERMISSION_NONE));
|
||||||
inorder.verify(mMockNetd, times(1)).networkAddUidRanges(cellNetId2, uidRanges);
|
inorder.verify(mMockNetd, times(1)).networkAddUidRangesParcel(cellConfig2);
|
||||||
inorder.verify(mMockNetd, times(1)).networkRemoveUidRanges(wifiNetId, uidRanges);
|
inorder.verify(mMockNetd, times(1)).networkRemoveUidRangesParcel(wifiConfig);
|
||||||
|
|
||||||
// Wifi network disconnected. mTestPackageDefaultNetworkCallback should not receive
|
// Wifi network disconnected. mTestPackageDefaultNetworkCallback should not receive
|
||||||
// any callback.
|
// any callback.
|
||||||
@@ -13501,8 +13527,8 @@ public class ConnectivityServiceTest {
|
|||||||
mTestPackageDefaultNetworkCallback.assertNoCallback();
|
mTestPackageDefaultNetworkCallback.assertNoCallback();
|
||||||
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetworkForUid(TEST_PACKAGE_UID));
|
assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetworkForUid(TEST_PACKAGE_UID));
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
inorder.verify(mMockNetd, never()).networkAddUidRanges(anyInt(), any());
|
inorder.verify(mMockNetd, never()).networkAddUidRangesParcel(any());
|
||||||
inorder.verify(mMockNetd, never()).networkRemoveUidRanges(anyInt(), any());
|
inorder.verify(mMockNetd, never()).networkRemoveUidRangesParcel(any());
|
||||||
inorder.verify(mMockNetd).networkDestroy(wifiNetId);
|
inorder.verify(mMockNetd).networkDestroy(wifiNetId);
|
||||||
|
|
||||||
mCm.unregisterNetworkCallback(cellNetworkCallback);
|
mCm.unregisterNetworkCallback(cellNetworkCallback);
|
||||||
|
|||||||
Reference in New Issue
Block a user