Merge changes I24580ea4,Id48b8eab am: 07a238ab02 am: e4f241500c am: 463d2f3f27
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1657763 Change-Id: I9d304c35374670eb0e4dcfb9caf6b065878d97e6
This commit is contained in:
@@ -320,6 +320,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
// The maximum number of network request allowed per uid before an exception is thrown.
|
// The maximum number of network request allowed per uid before an exception is thrown.
|
||||||
private static final int MAX_NETWORK_REQUESTS_PER_UID = 100;
|
private static final int MAX_NETWORK_REQUESTS_PER_UID = 100;
|
||||||
|
|
||||||
|
// The maximum number of network request allowed for system UIDs before an exception is thrown.
|
||||||
|
private static final int MAX_NETWORK_REQUESTS_PER_SYSTEM_UID = 250;
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
protected int mLingerDelayMs; // Can't be final, or test subclass constructors can't change it.
|
protected int mLingerDelayMs; // Can't be final, or test subclass constructors can't change it.
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -335,6 +338,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
protected final PermissionMonitor mPermissionMonitor;
|
protected final PermissionMonitor mPermissionMonitor;
|
||||||
|
|
||||||
private final PerUidCounter mNetworkRequestCounter;
|
private final PerUidCounter mNetworkRequestCounter;
|
||||||
|
private final PerUidCounter mSystemNetworkRequestCounter;
|
||||||
|
|
||||||
private volatile boolean mLockdownEnabled;
|
private volatile boolean mLockdownEnabled;
|
||||||
|
|
||||||
@@ -1215,6 +1219,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
mContext = Objects.requireNonNull(context, "missing Context");
|
mContext = Objects.requireNonNull(context, "missing Context");
|
||||||
mResources = deps.getResources(mContext);
|
mResources = deps.getResources(mContext);
|
||||||
mNetworkRequestCounter = new PerUidCounter(MAX_NETWORK_REQUESTS_PER_UID);
|
mNetworkRequestCounter = new PerUidCounter(MAX_NETWORK_REQUESTS_PER_UID);
|
||||||
|
mSystemNetworkRequestCounter = new PerUidCounter(MAX_NETWORK_REQUESTS_PER_SYSTEM_UID);
|
||||||
|
|
||||||
mMetricsLog = logger;
|
mMetricsLog = logger;
|
||||||
mNetworkRanker = new NetworkRanker();
|
mNetworkRanker = new NetworkRanker();
|
||||||
@@ -4047,7 +4052,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mNetworkRequestCounter.decrementCount(nri.mUid);
|
decrementRequestCount(nri);
|
||||||
mNetworkRequestInfoLogs.log("RELEASE " + nri);
|
mNetworkRequestInfoLogs.log("RELEASE " + nri);
|
||||||
|
|
||||||
if (null != nri.getActiveRequest()) {
|
if (null != nri.getActiveRequest()) {
|
||||||
@@ -4152,6 +4157,20 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private PerUidCounter getRequestCounter(NetworkRequestInfo nri) {
|
||||||
|
return checkAnyPermissionOf(
|
||||||
|
nri.mPid, nri.mUid, NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK)
|
||||||
|
? mSystemNetworkRequestCounter : mNetworkRequestCounter;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void incrementRequestCountOrThrow(NetworkRequestInfo nri) {
|
||||||
|
getRequestCounter(nri).incrementCountOrThrow(nri.mUid);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void decrementRequestCount(NetworkRequestInfo nri) {
|
||||||
|
getRequestCounter(nri).decrementCount(nri.mUid);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setAcceptUnvalidated(Network network, boolean accept, boolean always) {
|
public void setAcceptUnvalidated(Network network, boolean accept, boolean always) {
|
||||||
enforceNetworkStackSettingsOrSetup();
|
enforceNetworkStackSettingsOrSetup();
|
||||||
@@ -5487,7 +5506,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
mPid = getCallingPid();
|
mPid = getCallingPid();
|
||||||
mUid = mDeps.getCallingUid();
|
mUid = mDeps.getCallingUid();
|
||||||
mAsUid = asUid;
|
mAsUid = asUid;
|
||||||
mNetworkRequestCounter.incrementCountOrThrow(mUid);
|
incrementRequestCountOrThrow(this);
|
||||||
/**
|
/**
|
||||||
* Location sensitive data not included in pending intent. Only included in
|
* Location sensitive data not included in pending intent. Only included in
|
||||||
* {@link NetworkCallback}.
|
* {@link NetworkCallback}.
|
||||||
@@ -5519,7 +5538,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
mUid = mDeps.getCallingUid();
|
mUid = mDeps.getCallingUid();
|
||||||
mAsUid = asUid;
|
mAsUid = asUid;
|
||||||
mPendingIntent = null;
|
mPendingIntent = null;
|
||||||
mNetworkRequestCounter.incrementCountOrThrow(mUid);
|
incrementRequestCountOrThrow(this);
|
||||||
mCallbackFlags = callbackFlags;
|
mCallbackFlags = callbackFlags;
|
||||||
mCallingAttributionTag = callingAttributionTag;
|
mCallingAttributionTag = callingAttributionTag;
|
||||||
|
|
||||||
@@ -5562,7 +5581,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
mUid = nri.mUid;
|
mUid = nri.mUid;
|
||||||
mAsUid = nri.mAsUid;
|
mAsUid = nri.mAsUid;
|
||||||
mPendingIntent = nri.mPendingIntent;
|
mPendingIntent = nri.mPendingIntent;
|
||||||
mNetworkRequestCounter.incrementCountOrThrow(mUid);
|
incrementRequestCountOrThrow(this);
|
||||||
mCallbackFlags = nri.mCallbackFlags;
|
mCallbackFlags = nri.mCallbackFlags;
|
||||||
mCallingAttributionTag = nri.mCallingAttributionTag;
|
mCallingAttributionTag = nri.mCallingAttributionTag;
|
||||||
}
|
}
|
||||||
@@ -8849,7 +8868,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
// Decrement the reference count for this NetworkRequestInfo. The reference count is
|
// Decrement the reference count for this NetworkRequestInfo. The reference count is
|
||||||
// incremented when the NetworkRequestInfo is created as part of
|
// incremented when the NetworkRequestInfo is created as part of
|
||||||
// enforceRequestCountLimit().
|
// enforceRequestCountLimit().
|
||||||
mNetworkRequestCounter.decrementCount(nri.mUid);
|
decrementRequestCount(nri);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -8915,7 +8934,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
// Decrement the reference count for this NetworkRequestInfo. The reference count is
|
// Decrement the reference count for this NetworkRequestInfo. The reference count is
|
||||||
// incremented when the NetworkRequestInfo is created as part of
|
// incremented when the NetworkRequestInfo is created as part of
|
||||||
// enforceRequestCountLimit().
|
// enforceRequestCountLimit().
|
||||||
mNetworkRequestCounter.decrementCount(nri.mUid);
|
decrementRequestCount(nri);
|
||||||
|
|
||||||
iCb.unlinkToDeath(cbInfo, 0);
|
iCb.unlinkToDeath(cbInfo, 0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package com.android.server;
|
|||||||
|
|
||||||
import static android.Manifest.permission.CHANGE_NETWORK_STATE;
|
import static android.Manifest.permission.CHANGE_NETWORK_STATE;
|
||||||
import static android.Manifest.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS;
|
import static android.Manifest.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS;
|
||||||
|
import static android.Manifest.permission.NETWORK_SETTINGS;
|
||||||
import static android.app.PendingIntent.FLAG_IMMUTABLE;
|
import static android.app.PendingIntent.FLAG_IMMUTABLE;
|
||||||
import static android.content.Intent.ACTION_USER_ADDED;
|
import static android.content.Intent.ACTION_USER_ADDED;
|
||||||
import static android.content.Intent.ACTION_USER_REMOVED;
|
import static android.content.Intent.ACTION_USER_REMOVED;
|
||||||
@@ -2474,8 +2475,7 @@ public class ConnectivityServiceTest {
|
|||||||
public void networkCallbacksSanitizationTest_Sanitize() throws Exception {
|
public void networkCallbacksSanitizationTest_Sanitize() throws Exception {
|
||||||
mServiceContext.setPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
mServiceContext.setPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
||||||
PERMISSION_DENIED);
|
PERMISSION_DENIED);
|
||||||
mServiceContext.setPermission(Manifest.permission.NETWORK_SETTINGS,
|
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_DENIED);
|
||||||
PERMISSION_DENIED);
|
|
||||||
doNetworkCallbacksSanitizationTest(true /* sanitized */);
|
doNetworkCallbacksSanitizationTest(true /* sanitized */);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2483,7 +2483,7 @@ public class ConnectivityServiceTest {
|
|||||||
public void networkCallbacksSanitizationTest_NoSanitize_NetworkStack() throws Exception {
|
public void networkCallbacksSanitizationTest_NoSanitize_NetworkStack() throws Exception {
|
||||||
mServiceContext.setPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
mServiceContext.setPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
||||||
PERMISSION_GRANTED);
|
PERMISSION_GRANTED);
|
||||||
mServiceContext.setPermission(Manifest.permission.NETWORK_SETTINGS, PERMISSION_DENIED);
|
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_DENIED);
|
||||||
doNetworkCallbacksSanitizationTest(false /* sanitized */);
|
doNetworkCallbacksSanitizationTest(false /* sanitized */);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2491,7 +2491,7 @@ public class ConnectivityServiceTest {
|
|||||||
public void networkCallbacksSanitizationTest_NoSanitize_Settings() throws Exception {
|
public void networkCallbacksSanitizationTest_NoSanitize_Settings() throws Exception {
|
||||||
mServiceContext.setPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
mServiceContext.setPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
||||||
PERMISSION_DENIED);
|
PERMISSION_DENIED);
|
||||||
mServiceContext.setPermission(Manifest.permission.NETWORK_SETTINGS, PERMISSION_GRANTED);
|
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
|
||||||
doNetworkCallbacksSanitizationTest(false /* sanitized */);
|
doNetworkCallbacksSanitizationTest(false /* sanitized */);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3615,8 +3615,7 @@ public class ConnectivityServiceTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCaptivePortalApi() throws Exception {
|
public void testCaptivePortalApi() throws Exception {
|
||||||
mServiceContext.setPermission(
|
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
|
||||||
android.Manifest.permission.NETWORK_SETTINGS, PERMISSION_GRANTED);
|
|
||||||
|
|
||||||
final TestNetworkCallback captivePortalCallback = new TestNetworkCallback();
|
final TestNetworkCallback captivePortalCallback = new TestNetworkCallback();
|
||||||
final NetworkRequest captivePortalRequest = new NetworkRequest.Builder()
|
final NetworkRequest captivePortalRequest = new NetworkRequest.Builder()
|
||||||
@@ -3650,8 +3649,7 @@ public class ConnectivityServiceTest {
|
|||||||
private TestNetworkCallback setupNetworkCallbackAndConnectToWifi() throws Exception {
|
private TestNetworkCallback setupNetworkCallbackAndConnectToWifi() throws Exception {
|
||||||
// Grant NETWORK_SETTINGS permission to be able to receive LinkProperties change callbacks
|
// Grant NETWORK_SETTINGS permission to be able to receive LinkProperties change callbacks
|
||||||
// with sensitive (captive portal) data
|
// with sensitive (captive portal) data
|
||||||
mServiceContext.setPermission(
|
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
|
||||||
android.Manifest.permission.NETWORK_SETTINGS, PERMISSION_GRANTED);
|
|
||||||
|
|
||||||
final TestNetworkCallback captivePortalCallback = new TestNetworkCallback();
|
final TestNetworkCallback captivePortalCallback = new TestNetworkCallback();
|
||||||
final NetworkRequest captivePortalRequest = new NetworkRequest.Builder()
|
final NetworkRequest captivePortalRequest = new NetworkRequest.Builder()
|
||||||
@@ -4085,8 +4083,7 @@ public class ConnectivityServiceTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testRegisterDefaultNetworkCallback() throws Exception {
|
public void testRegisterDefaultNetworkCallback() throws Exception {
|
||||||
// NETWORK_SETTINGS is necessary to call registerSystemDefaultNetworkCallback.
|
// NETWORK_SETTINGS is necessary to call registerSystemDefaultNetworkCallback.
|
||||||
mServiceContext.setPermission(Manifest.permission.NETWORK_SETTINGS,
|
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
|
||||||
PERMISSION_GRANTED);
|
|
||||||
|
|
||||||
final TestNetworkCallback defaultNetworkCallback = new TestNetworkCallback();
|
final TestNetworkCallback defaultNetworkCallback = new TestNetworkCallback();
|
||||||
mCm.registerDefaultNetworkCallback(defaultNetworkCallback);
|
mCm.registerDefaultNetworkCallback(defaultNetworkCallback);
|
||||||
@@ -4245,8 +4242,7 @@ public class ConnectivityServiceTest {
|
|||||||
() -> mCm.registerDefaultNetworkCallbackAsUid(APP1_UID, callback, handler));
|
() -> mCm.registerDefaultNetworkCallbackAsUid(APP1_UID, callback, handler));
|
||||||
callback.assertNoCallback();
|
callback.assertNoCallback();
|
||||||
|
|
||||||
mServiceContext.setPermission(Manifest.permission.NETWORK_SETTINGS,
|
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
|
||||||
PERMISSION_GRANTED);
|
|
||||||
mCm.registerSystemDefaultNetworkCallback(callback, handler);
|
mCm.registerSystemDefaultNetworkCallback(callback, handler);
|
||||||
callback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
|
callback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
|
||||||
mCm.unregisterNetworkCallback(callback);
|
mCm.unregisterNetworkCallback(callback);
|
||||||
@@ -5616,10 +5612,11 @@ public class ConnectivityServiceTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNetworkCallbackMaximum() {
|
public void testNetworkCallbackMaximum() throws Exception {
|
||||||
final int MAX_REQUESTS = 100;
|
final int MAX_REQUESTS = 100;
|
||||||
final int CALLBACKS = 89;
|
final int CALLBACKS = 89;
|
||||||
final int INTENTS = 11;
|
final int INTENTS = 11;
|
||||||
|
final int SYSTEM_ONLY_MAX_REQUESTS = 250;
|
||||||
assertEquals(MAX_REQUESTS, CALLBACKS + INTENTS);
|
assertEquals(MAX_REQUESTS, CALLBACKS + INTENTS);
|
||||||
|
|
||||||
NetworkRequest networkRequest = new NetworkRequest.Builder().build();
|
NetworkRequest networkRequest = new NetworkRequest.Builder().build();
|
||||||
@@ -5668,6 +5665,33 @@ public class ConnectivityServiceTest {
|
|||||||
new Intent("d"), FLAG_IMMUTABLE))
|
new Intent("d"), FLAG_IMMUTABLE))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// The system gets another SYSTEM_ONLY_MAX_REQUESTS slots.
|
||||||
|
final Handler handler = new Handler(ConnectivityThread.getInstanceLooper());
|
||||||
|
withPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, () -> {
|
||||||
|
ArrayList<NetworkCallback> systemRegistered = new ArrayList<>();
|
||||||
|
for (int i = 0; i < SYSTEM_ONLY_MAX_REQUESTS - 1; i++) {
|
||||||
|
NetworkCallback cb = new NetworkCallback();
|
||||||
|
if (i % 2 == 0) {
|
||||||
|
mCm.registerDefaultNetworkCallbackAsUid(1000000 + i, cb, handler);
|
||||||
|
} else {
|
||||||
|
mCm.registerNetworkCallback(networkRequest, cb);
|
||||||
|
}
|
||||||
|
systemRegistered.add(cb);
|
||||||
|
}
|
||||||
|
waitForIdle();
|
||||||
|
|
||||||
|
assertThrows(TooManyRequestsException.class, () ->
|
||||||
|
mCm.registerDefaultNetworkCallbackAsUid(1001042, new NetworkCallback(),
|
||||||
|
handler));
|
||||||
|
assertThrows(TooManyRequestsException.class, () ->
|
||||||
|
mCm.registerNetworkCallback(networkRequest, new NetworkCallback()));
|
||||||
|
|
||||||
|
for (NetworkCallback callback : systemRegistered) {
|
||||||
|
mCm.unregisterNetworkCallback(callback);
|
||||||
|
}
|
||||||
|
waitForIdle(); // Wait for requests to be unregistered before giving up the permission.
|
||||||
|
});
|
||||||
|
|
||||||
for (Object o : registered) {
|
for (Object o : registered) {
|
||||||
if (o instanceof NetworkCallback) {
|
if (o instanceof NetworkCallback) {
|
||||||
mCm.unregisterNetworkCallback((NetworkCallback)o);
|
mCm.unregisterNetworkCallback((NetworkCallback)o);
|
||||||
@@ -5693,6 +5717,30 @@ public class ConnectivityServiceTest {
|
|||||||
}
|
}
|
||||||
waitForIdle();
|
waitForIdle();
|
||||||
|
|
||||||
|
for (int i = 0; i < MAX_REQUESTS; i++) {
|
||||||
|
NetworkCallback networkCallback = new NetworkCallback();
|
||||||
|
mCm.registerDefaultNetworkCallback(networkCallback);
|
||||||
|
mCm.unregisterNetworkCallback(networkCallback);
|
||||||
|
}
|
||||||
|
waitForIdle();
|
||||||
|
|
||||||
|
for (int i = 0; i < MAX_REQUESTS; i++) {
|
||||||
|
NetworkCallback networkCallback = new NetworkCallback();
|
||||||
|
mCm.registerDefaultNetworkCallback(networkCallback);
|
||||||
|
mCm.unregisterNetworkCallback(networkCallback);
|
||||||
|
}
|
||||||
|
waitForIdle();
|
||||||
|
|
||||||
|
withPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, () -> {
|
||||||
|
for (int i = 0; i < MAX_REQUESTS; i++) {
|
||||||
|
NetworkCallback networkCallback = new NetworkCallback();
|
||||||
|
mCm.registerDefaultNetworkCallbackAsUid(1000000 + i, networkCallback,
|
||||||
|
new Handler(ConnectivityThread.getInstanceLooper()));
|
||||||
|
mCm.unregisterNetworkCallback(networkCallback);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
waitForIdle();
|
||||||
|
|
||||||
for (int i = 0; i < MAX_REQUESTS; i++) {
|
for (int i = 0; i < MAX_REQUESTS; i++) {
|
||||||
final PendingIntent pendingIntent = PendingIntent.getBroadcast(
|
final PendingIntent pendingIntent = PendingIntent.getBroadcast(
|
||||||
mContext, 0 /* requestCode */, new Intent("e" + i), FLAG_IMMUTABLE);
|
mContext, 0 /* requestCode */, new Intent("e" + i), FLAG_IMMUTABLE);
|
||||||
@@ -6686,8 +6734,7 @@ public class ConnectivityServiceTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testVpnNetworkActive() throws Exception {
|
public void testVpnNetworkActive() throws Exception {
|
||||||
// NETWORK_SETTINGS is necessary to call registerSystemDefaultNetworkCallback.
|
// NETWORK_SETTINGS is necessary to call registerSystemDefaultNetworkCallback.
|
||||||
mServiceContext.setPermission(Manifest.permission.NETWORK_SETTINGS,
|
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
|
||||||
PERMISSION_GRANTED);
|
|
||||||
|
|
||||||
final int uid = Process.myUid();
|
final int uid = Process.myUid();
|
||||||
|
|
||||||
@@ -7179,8 +7226,7 @@ public class ConnectivityServiceTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testRestrictedProfileAffectsVpnUidRanges() throws Exception {
|
public void testRestrictedProfileAffectsVpnUidRanges() throws Exception {
|
||||||
// NETWORK_SETTINGS is necessary to see the UID ranges in NetworkCapabilities.
|
// NETWORK_SETTINGS is necessary to see the UID ranges in NetworkCapabilities.
|
||||||
mServiceContext.setPermission(Manifest.permission.NETWORK_SETTINGS,
|
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
|
||||||
PERMISSION_GRANTED);
|
|
||||||
|
|
||||||
final NetworkRequest request = new NetworkRequest.Builder()
|
final NetworkRequest request = new NetworkRequest.Builder()
|
||||||
.removeCapability(NET_CAPABILITY_NOT_VPN)
|
.removeCapability(NET_CAPABILITY_NOT_VPN)
|
||||||
@@ -7266,8 +7312,7 @@ public class ConnectivityServiceTest {
|
|||||||
mServiceContext.setPermission(
|
mServiceContext.setPermission(
|
||||||
Manifest.permission.CONTROL_VPN, PERMISSION_GRANTED);
|
Manifest.permission.CONTROL_VPN, PERMISSION_GRANTED);
|
||||||
// Necessary to see the UID ranges in NetworkCapabilities.
|
// Necessary to see the UID ranges in NetworkCapabilities.
|
||||||
mServiceContext.setPermission(
|
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
|
||||||
Manifest.permission.NETWORK_SETTINGS, PERMISSION_GRANTED);
|
|
||||||
|
|
||||||
final NetworkRequest request = new NetworkRequest.Builder()
|
final NetworkRequest request = new NetworkRequest.Builder()
|
||||||
.removeCapability(NET_CAPABILITY_NOT_VPN)
|
.removeCapability(NET_CAPABILITY_NOT_VPN)
|
||||||
@@ -7755,8 +7800,7 @@ public class ConnectivityServiceTest {
|
|||||||
Manifest.permission.CONTROL_ALWAYS_ON_VPN, PERMISSION_GRANTED);
|
Manifest.permission.CONTROL_ALWAYS_ON_VPN, PERMISSION_GRANTED);
|
||||||
mServiceContext.setPermission(
|
mServiceContext.setPermission(
|
||||||
Manifest.permission.CONTROL_VPN, PERMISSION_GRANTED);
|
Manifest.permission.CONTROL_VPN, PERMISSION_GRANTED);
|
||||||
mServiceContext.setPermission(
|
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
|
||||||
Manifest.permission.NETWORK_SETTINGS, PERMISSION_GRANTED);
|
|
||||||
|
|
||||||
final TestNetworkCallback callback = new TestNetworkCallback();
|
final TestNetworkCallback callback = new TestNetworkCallback();
|
||||||
final NetworkRequest request = new NetworkRequest.Builder()
|
final NetworkRequest request = new NetworkRequest.Builder()
|
||||||
@@ -7992,8 +8036,7 @@ public class ConnectivityServiceTest {
|
|||||||
mServiceContext.setPermission(
|
mServiceContext.setPermission(
|
||||||
Manifest.permission.CONTROL_VPN, PERMISSION_GRANTED);
|
Manifest.permission.CONTROL_VPN, PERMISSION_GRANTED);
|
||||||
// For LockdownVpnTracker to call registerSystemDefaultNetworkCallback.
|
// For LockdownVpnTracker to call registerSystemDefaultNetworkCallback.
|
||||||
mServiceContext.setPermission(
|
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
|
||||||
Manifest.permission.NETWORK_SETTINGS, PERMISSION_GRANTED);
|
|
||||||
|
|
||||||
final NetworkRequest request = new NetworkRequest.Builder().clearCapabilities().build();
|
final NetworkRequest request = new NetworkRequest.Builder().clearCapabilities().build();
|
||||||
final TestNetworkCallback callback = new TestNetworkCallback();
|
final TestNetworkCallback callback = new TestNetworkCallback();
|
||||||
@@ -9123,8 +9166,7 @@ public class ConnectivityServiceTest {
|
|||||||
private void denyAllLocationPrivilegedPermissions() {
|
private void denyAllLocationPrivilegedPermissions() {
|
||||||
mServiceContext.setPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
mServiceContext.setPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
||||||
PERMISSION_DENIED);
|
PERMISSION_DENIED);
|
||||||
mServiceContext.setPermission(Manifest.permission.NETWORK_SETTINGS,
|
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_DENIED);
|
||||||
PERMISSION_DENIED);
|
|
||||||
mServiceContext.setPermission(Manifest.permission.NETWORK_STACK,
|
mServiceContext.setPermission(Manifest.permission.NETWORK_STACK,
|
||||||
PERMISSION_DENIED);
|
PERMISSION_DENIED);
|
||||||
mServiceContext.setPermission(Manifest.permission.NETWORK_SETUP_WIZARD,
|
mServiceContext.setPermission(Manifest.permission.NETWORK_SETUP_WIZARD,
|
||||||
@@ -9380,7 +9422,7 @@ public class ConnectivityServiceTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testCreateForCallerWithLocalMacAddressSanitizedWithSettingsPermission()
|
public void testCreateForCallerWithLocalMacAddressSanitizedWithSettingsPermission()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
mServiceContext.setPermission(Manifest.permission.NETWORK_SETTINGS, PERMISSION_GRANTED);
|
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
|
||||||
|
|
||||||
final TransportInfo transportInfo = mock(TransportInfo.class);
|
final TransportInfo transportInfo = mock(TransportInfo.class);
|
||||||
when(transportInfo.getApplicableRedactions())
|
when(transportInfo.getApplicableRedactions())
|
||||||
@@ -10776,8 +10818,7 @@ public class ConnectivityServiceTest {
|
|||||||
|
|
||||||
private void registerDefaultNetworkCallbacks() {
|
private void registerDefaultNetworkCallbacks() {
|
||||||
// Using Manifest.permission.NETWORK_SETTINGS for registerSystemDefaultNetworkCallback()
|
// Using Manifest.permission.NETWORK_SETTINGS for registerSystemDefaultNetworkCallback()
|
||||||
mServiceContext.setPermission(
|
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
|
||||||
Manifest.permission.NETWORK_SETTINGS, PERMISSION_GRANTED);
|
|
||||||
mSystemDefaultNetworkCallback = new TestNetworkCallback();
|
mSystemDefaultNetworkCallback = new TestNetworkCallback();
|
||||||
mDefaultNetworkCallback = new TestNetworkCallback();
|
mDefaultNetworkCallback = new TestNetworkCallback();
|
||||||
mProfileDefaultNetworkCallback = new TestNetworkCallback();
|
mProfileDefaultNetworkCallback = new TestNetworkCallback();
|
||||||
@@ -10787,8 +10828,7 @@ public class ConnectivityServiceTest {
|
|||||||
registerDefaultNetworkCallbackAsUid(mProfileDefaultNetworkCallback,
|
registerDefaultNetworkCallbackAsUid(mProfileDefaultNetworkCallback,
|
||||||
TEST_WORK_PROFILE_APP_UID);
|
TEST_WORK_PROFILE_APP_UID);
|
||||||
// TODO: test using ConnectivityManager#registerDefaultNetworkCallbackAsUid as well.
|
// TODO: test using ConnectivityManager#registerDefaultNetworkCallbackAsUid as well.
|
||||||
mServiceContext.setPermission(
|
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_DENIED);
|
||||||
Manifest.permission.NETWORK_SETTINGS, PERMISSION_DENIED);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void unregisterDefaultNetworkCallbacks() {
|
private void unregisterDefaultNetworkCallbacks() {
|
||||||
@@ -10943,7 +10983,7 @@ public class ConnectivityServiceTest {
|
|||||||
defaultNetworkCallback.assertNoCallback();
|
defaultNetworkCallback.assertNoCallback();
|
||||||
|
|
||||||
final TestNetworkCallback otherUidDefaultCallback = new TestNetworkCallback();
|
final TestNetworkCallback otherUidDefaultCallback = new TestNetworkCallback();
|
||||||
withPermission(Manifest.permission.NETWORK_SETTINGS, () ->
|
withPermission(NETWORK_SETTINGS, () ->
|
||||||
mCm.registerDefaultNetworkCallbackAsUid(TEST_PACKAGE_UID, otherUidDefaultCallback,
|
mCm.registerDefaultNetworkCallbackAsUid(TEST_PACKAGE_UID, otherUidDefaultCallback,
|
||||||
new Handler(ConnectivityThread.getInstanceLooper())));
|
new Handler(ConnectivityThread.getInstanceLooper())));
|
||||||
|
|
||||||
@@ -10991,7 +11031,7 @@ public class ConnectivityServiceTest {
|
|||||||
defaultNetworkCallback.assertNoCallback();
|
defaultNetworkCallback.assertNoCallback();
|
||||||
|
|
||||||
final TestNetworkCallback otherUidDefaultCallback = new TestNetworkCallback();
|
final TestNetworkCallback otherUidDefaultCallback = new TestNetworkCallback();
|
||||||
withPermission(Manifest.permission.NETWORK_SETTINGS, () ->
|
withPermission(NETWORK_SETTINGS, () ->
|
||||||
mCm.registerDefaultNetworkCallbackAsUid(TEST_PACKAGE_UID, otherUidDefaultCallback,
|
mCm.registerDefaultNetworkCallbackAsUid(TEST_PACKAGE_UID, otherUidDefaultCallback,
|
||||||
new Handler(ConnectivityThread.getInstanceLooper())));
|
new Handler(ConnectivityThread.getInstanceLooper())));
|
||||||
|
|
||||||
@@ -11033,7 +11073,7 @@ public class ConnectivityServiceTest {
|
|||||||
defaultNetworkCallback.assertNoCallback();
|
defaultNetworkCallback.assertNoCallback();
|
||||||
|
|
||||||
final TestNetworkCallback otherUidDefaultCallback = new TestNetworkCallback();
|
final TestNetworkCallback otherUidDefaultCallback = new TestNetworkCallback();
|
||||||
withPermission(Manifest.permission.NETWORK_SETTINGS, () ->
|
withPermission(NETWORK_SETTINGS, () ->
|
||||||
mCm.registerDefaultNetworkCallbackAsUid(TEST_PACKAGE_UID, otherUidDefaultCallback,
|
mCm.registerDefaultNetworkCallbackAsUid(TEST_PACKAGE_UID, otherUidDefaultCallback,
|
||||||
new Handler(ConnectivityThread.getInstanceLooper())));
|
new Handler(ConnectivityThread.getInstanceLooper())));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user