From 6b59b8fbccd4a0d691c5128c43463ab53e7de8e4 Mon Sep 17 00:00:00 2001 From: Chalard Jean Date: Mon, 13 Apr 2020 21:54:58 +0900 Subject: [PATCH] Allow testing of signal strength - Let any process with NETWORK_SETTINGS register for signal strength wakeup. - Allow agents registering test networks to assign them a signal strength. Test: NetworkAgentTest Bug: 139268426 Change-Id: I2b4b89be3e69f4853fd6978d2c8f5c8eb4271f21 --- core/java/android/net/NetworkCapabilities.java | 2 ++ services/core/java/com/android/server/ConnectivityService.java | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/core/java/android/net/NetworkCapabilities.java b/core/java/android/net/NetworkCapabilities.java index 240386a6fa..fea3245784 100644 --- a/core/java/android/net/NetworkCapabilities.java +++ b/core/java/android/net/NetworkCapabilities.java @@ -669,11 +669,13 @@ public final class NetworkCapabilities implements Parcelable { public void restrictCapabilitesForTestNetwork() { final long originalCapabilities = mNetworkCapabilities; final NetworkSpecifier originalSpecifier = mNetworkSpecifier; + final int originalSignalStrength = mSignalStrength; clearAll(); // Reset the transports to only contain TRANSPORT_TEST. mTransportTypes = (1 << TRANSPORT_TEST); mNetworkCapabilities = originalCapabilities & TEST_NETWORKS_ALLOWED_CAPABILITIES; mNetworkSpecifier = originalSpecifier; + mSignalStrength = originalSignalStrength; } /** diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index ea91395bbd..dd4cbca2a7 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -2142,7 +2142,8 @@ public class ConnectivityService extends IConnectivityManager.Stub private boolean checkNetworkSignalStrengthWakeupPermission(int pid, int uid) { return checkAnyPermissionOf(pid, uid, android.Manifest.permission.NETWORK_SIGNAL_STRENGTH_WAKEUP, - NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK); + NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, + android.Manifest.permission.NETWORK_SETTINGS); } private void enforceConnectivityRestrictedNetworksPermission() {