From 0e9a7738d0cd961c853f9ca1cc85334c9caa7458 Mon Sep 17 00:00:00 2001 From: Chalard Jean Date: Mon, 13 Apr 2020 19:10:13 +0000 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: Iebfeb9316bcbd8472459c517abb16f1f9d879871 Merged-In: I2b4b89be3e69f4853fd6978d2c8f5c8eb4271f21 (cherry picked from commit 5cc7b18fe7fa94ce2e30572c476df445ed337741, aosp/1284585) --- 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 73c6b3daf2..52d6fdfbd5 100644 --- a/core/java/android/net/NetworkCapabilities.java +++ b/core/java/android/net/NetworkCapabilities.java @@ -680,11 +680,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 51427c191a..1a58d6047b 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -2151,7 +2151,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() {