diff options
4 files changed, 21 insertions, 28 deletions
diff --git a/service/java/com/android/server/wifi/WifiInjector.java b/service/java/com/android/server/wifi/WifiInjector.java index 63787dfb0..3d1356463 100644 --- a/service/java/com/android/server/wifi/WifiInjector.java +++ b/service/java/com/android/server/wifi/WifiInjector.java @@ -17,6 +17,7 @@ package com.android.server.wifi; import android.content.Context; +import android.net.NetworkScorerAppManager; import android.net.wifi.IApInterface; import android.net.wifi.IWifiScanner; import android.net.wifi.IWificond; @@ -167,7 +168,7 @@ public class WifiInjector { BatteryStatsService.getService()); mWifiPermissionsWrapper = new WifiPermissionsWrapper(mContext); mWifiPermissionsUtil = new WifiPermissionsUtil(mWifiPermissionsWrapper, mContext, - mSettingsStore, UserManager.get(mContext)); + mSettingsStore, UserManager.get(mContext), new NetworkScorerAppManager(mContext)); mSimAccessor = new SIMAccessor(mContext); mPasspointManager = new PasspointManager(mContext, this, mSimAccessor); } diff --git a/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java b/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java index 827afb42e..4bb828891 100644 --- a/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java +++ b/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java @@ -21,6 +21,7 @@ import android.app.AppOpsManager; import android.content.Context; import android.content.pm.PackageManager; import android.content.pm.UserInfo; +import android.net.NetworkScorerAppManager; import android.os.UserManager; import android.provider.Settings; @@ -41,16 +42,19 @@ public class WifiPermissionsUtil { private final AppOpsManager mAppOps; private final UserManager mUserManager; private final WifiSettingsStore mSettingsStore; + private final NetworkScorerAppManager mNetworkScorerAppManager; private WifiLog mLog; public WifiPermissionsUtil(WifiPermissionsWrapper wifiPermissionsWrapper, - Context context, WifiSettingsStore settingsStore, UserManager userManager) { + Context context, WifiSettingsStore settingsStore, UserManager userManager, + NetworkScorerAppManager networkScorerAppManager) { mWifiPermissionsWrapper = wifiPermissionsWrapper; mContext = context; mUserManager = userManager; mAppOps = (AppOpsManager) mContext.getSystemService(Context.APP_OPS_SERVICE); mSettingsStore = settingsStore; mLog = WifiInjector.getInstance().makeLog(TAG); + mNetworkScorerAppManager = networkScorerAppManager; } /** @@ -108,7 +112,7 @@ public class WifiPermissionsUtil { * Returns true if the caller is an Active Network Scorer. */ private boolean isCallerActiveNwScorer(int uid) { - return mWifiPermissionsWrapper.isCallerActiveNwScorer(uid); + return mNetworkScorerAppManager.isCallerActiveScorer(uid); } /** diff --git a/service/java/com/android/server/wifi/util/WifiPermissionsWrapper.java b/service/java/com/android/server/wifi/util/WifiPermissionsWrapper.java index 20d201ccd..be10aefa4 100644 --- a/service/java/com/android/server/wifi/util/WifiPermissionsWrapper.java +++ b/service/java/com/android/server/wifi/util/WifiPermissionsWrapper.java @@ -18,7 +18,6 @@ package com.android.server.wifi.util; import android.app.ActivityManager; import android.content.Context; -import android.net.NetworkScorerAppManager; import android.os.UserHandle; import java.util.List; @@ -35,18 +34,6 @@ public class WifiPermissionsWrapper { mContext = context; } - /** - * Invokes the static API from NetworkScorer App - * Manager to determine if the caller is an active - * network scorer - * @param uid of the caller - * @return boolean indicating if the caller is an - * active network scorer - */ - public boolean isCallerActiveNwScorer(int uid) { - return NetworkScorerAppManager.isCallerActiveScorer(mContext, uid); - } - public int getCurrentUser() { return ActivityManager.getCurrentUser(); } diff --git a/tests/wifitests/src/com/android/server/wifi/util/WifiPermissionsUtilTest.java b/tests/wifitests/src/com/android/server/wifi/util/WifiPermissionsUtilTest.java index 61820d780..c0d3e2bf1 100644 --- a/tests/wifitests/src/com/android/server/wifi/util/WifiPermissionsUtilTest.java +++ b/tests/wifitests/src/com/android/server/wifi/util/WifiPermissionsUtilTest.java @@ -28,6 +28,7 @@ import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.UserInfo; +import android.net.NetworkScorerAppManager; import android.os.Build; import android.os.UserHandle; import android.os.UserManager; @@ -66,6 +67,7 @@ public class WifiPermissionsUtilTest { @Mock private UserManager mMockUserManager; @Mock private WifiSettingsStore mMockWifiSettingsStore; @Mock private ContentResolver mMockContentResolver; + @Mock private NetworkScorerAppManager mNetworkScorerAppManager; private static final String TEST_PACKAGE_NAME = "com.google.somePackage"; private static final String INVALID_PACKAGE = "BAD_PACKAGE"; @@ -125,7 +127,7 @@ public class WifiPermissionsUtilTest { mCurrentUser = UserHandle.USER_CURRENT_OR_SELF; setupTestCase(); WifiPermissionsUtil codeUnderTest = new WifiPermissionsUtil(mMockPermissionsWrapper, - mMockContext, mMockWifiSettingsStore, mMockUserManager); + mMockContext, mMockWifiSettingsStore, mMockUserManager, mNetworkScorerAppManager); try { output = codeUnderTest.canAccessScanResults(TEST_PACKAGE_NAME, mUid, mTargetVersion); } catch (SecurityException e) { @@ -152,7 +154,7 @@ public class WifiPermissionsUtilTest { mMockUserInfo.id = mCallingUser; setupTestCase(); WifiPermissionsUtil codeUnderTest = new WifiPermissionsUtil(mMockPermissionsWrapper, - mMockContext, mMockWifiSettingsStore, mMockUserManager); + mMockContext, mMockWifiSettingsStore, mMockUserManager, mNetworkScorerAppManager); try { output = codeUnderTest.canAccessScanResults(TEST_PACKAGE_NAME, mUid, mTargetVersion); } catch (SecurityException e) { @@ -174,7 +176,7 @@ public class WifiPermissionsUtilTest { mPermissionsList.put(mMacAddressPermission, mUid); setupTestCase(); WifiPermissionsUtil codeUnderTest = new WifiPermissionsUtil(mMockPermissionsWrapper, - mMockContext, mMockWifiSettingsStore, mMockUserManager); + mMockContext, mMockWifiSettingsStore, mMockUserManager, mNetworkScorerAppManager); try { output = codeUnderTest.canAccessScanResults(TEST_PACKAGE_NAME, mUid, mTargetVersion); } catch (SecurityException e) { @@ -202,7 +204,7 @@ public class WifiPermissionsUtilTest { mPermissionsList.put(mInteractAcrossUsersFullPermission, mUid); setupTestCase(); WifiPermissionsUtil codeUnderTest = new WifiPermissionsUtil(mMockPermissionsWrapper, - mMockContext, mMockWifiSettingsStore, mMockUserManager); + mMockContext, mMockWifiSettingsStore, mMockUserManager, mNetworkScorerAppManager); try { output = codeUnderTest.canAccessScanResults(TEST_PACKAGE_NAME, mUid, mTargetVersion); } catch (SecurityException e) { @@ -228,7 +230,7 @@ public class WifiPermissionsUtilTest { mWifiScanAllowApps = AppOpsManager.MODE_ALLOWED; setupTestCase(); WifiPermissionsUtil codeUnderTest = new WifiPermissionsUtil(mMockPermissionsWrapper, - mMockContext, mMockWifiSettingsStore, mMockUserManager); + mMockContext, mMockWifiSettingsStore, mMockUserManager, mNetworkScorerAppManager); try { output = codeUnderTest.canAccessScanResults(TEST_PACKAGE_NAME, mUid, mTargetVersion); } catch (SecurityException e) { @@ -253,7 +255,7 @@ public class WifiPermissionsUtilTest { mCurrentUser = UserHandle.USER_CURRENT_OR_SELF; setupTestCase(); WifiPermissionsUtil codeUnderTest = new WifiPermissionsUtil(mMockPermissionsWrapper, - mMockContext, mMockWifiSettingsStore, mMockUserManager); + mMockContext, mMockWifiSettingsStore, mMockUserManager, mNetworkScorerAppManager); try { output = codeUnderTest.canAccessScanResults(TEST_PACKAGE_NAME, mUid, mTargetVersion); } catch (SecurityException e) { @@ -281,7 +283,7 @@ public class WifiPermissionsUtilTest { mCurrentUser = UserHandle.USER_CURRENT_OR_SELF; setupTestCase(); WifiPermissionsUtil codeUnderTest = new WifiPermissionsUtil(mMockPermissionsWrapper, - mMockContext, mMockWifiSettingsStore, mMockUserManager); + mMockContext, mMockWifiSettingsStore, mMockUserManager, mNetworkScorerAppManager); try { output = codeUnderTest.canAccessScanResults(TEST_PACKAGE_NAME, mUid, mTargetVersion); } catch (SecurityException e) { @@ -312,7 +314,7 @@ public class WifiPermissionsUtilTest { mMockUserInfo.id = mCallingUser; setupTestCase(); WifiPermissionsUtil codeUnderTest = new WifiPermissionsUtil(mMockPermissionsWrapper, - mMockContext, mMockWifiSettingsStore, mMockUserManager); + mMockContext, mMockWifiSettingsStore, mMockUserManager, mNetworkScorerAppManager); try { output = codeUnderTest.canAccessScanResults(TEST_PACKAGE_NAME, mUid, mTargetVersion); } catch (SecurityException e) { @@ -338,7 +340,7 @@ public class WifiPermissionsUtilTest { mLocationModeSetting = Settings.Secure.LOCATION_MODE_HIGH_ACCURACY; setupTestCase(); WifiPermissionsUtil codeUnderTest = new WifiPermissionsUtil(mMockPermissionsWrapper, - mMockContext, mMockWifiSettingsStore, mMockUserManager); + mMockContext, mMockWifiSettingsStore, mMockUserManager, mNetworkScorerAppManager); try { output = codeUnderTest.canAccessScanResults(TEST_PACKAGE_NAME, mUid, mTargetVersion); } catch (SecurityException e) { @@ -356,7 +358,7 @@ public class WifiPermissionsUtilTest { boolean output = false; setupTestCase(); WifiPermissionsUtil codeUnderTest = new WifiPermissionsUtil(mMockPermissionsWrapper, - mMockContext, mMockWifiSettingsStore, mMockUserManager); + mMockContext, mMockWifiSettingsStore, mMockUserManager, mNetworkScorerAppManager); try { output = codeUnderTest.canAccessScanResults(TEST_PACKAGE_NAME, mUid, mTargetVersion); } catch (SecurityException e) { @@ -429,8 +431,7 @@ public class WifiPermissionsUtilTest { anyString(), anyInt()); when(mMockPermissionsWrapper.getCallingUserId(mUid)).thenReturn(mCallingUser); when(mMockPermissionsWrapper.getCurrentUser()).thenReturn(mCurrentUser); - when(mMockPermissionsWrapper.isCallerActiveNwScorer(mUid)) - .thenReturn(mActiveNwScorer); + when(mNetworkScorerAppManager.isCallerActiveScorer(mUid)).thenReturn(mActiveNwScorer); when(mMockPermissionsWrapper.getUidPermission(mManifestStringCoarse, mUid)) .thenReturn(mCoarseLocationPermission); when(mMockWifiSettingsStore.getLocationModeSetting(mMockContext)) |