summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorRebecca Silberstein <silberst@google.com>2018-02-26 15:52:44 -0800
committerRebecca Silberstein <silberst@google.com>2018-02-28 09:51:47 -0800
commita9a319a25e457d5f1273912f594e105621fe26c8 (patch)
tree1a35a2b682c2774668de846f21ef1d9bffce89cf /service
parent38157926424a9f1e7b4cbf23f869a22fd2d41040 (diff)
WifiPermissionsUtil: remove legacy app check
When checking if apps can access scan results, remove the exception for legacy apps. All apps now are required to have the location permission when accessing scan results. Bug: 69977028 Test: frameworks/opt/net/wifi/tests/wifitests/runtests.sh Change-Id: Idfaf503215e6daae2efa02ab85c00ef84c479741
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/server/wifi/WifiServiceImpl.java9
-rw-r--r--service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java7
-rw-r--r--service/java/com/android/server/wifi/util/WifiPermissionsUtil.java24
3 files changed, 9 insertions, 31 deletions
diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java
index 29206557a..9d292e05a 100644
--- a/service/java/com/android/server/wifi/WifiServiceImpl.java
+++ b/service/java/com/android/server/wifi/WifiServiceImpl.java
@@ -1992,10 +1992,7 @@ public class WifiServiceImpl extends IWifiManager.Stub {
== PackageManager.PERMISSION_GRANTED) {
hideDefaultMacAddress = false;
}
- if (mWifiPermissionsUtil.canAccessScanResults(
- callingPackage,
- uid,
- Build.VERSION_CODES.O)) {
+ if (mWifiPermissionsUtil.canAccessScanResults(callingPackage, uid)) {
hideBssidAndSsid = false;
}
} catch (RemoteException e) {
@@ -2027,9 +2024,7 @@ public class WifiServiceImpl extends IWifiManager.Stub {
int uid = Binder.getCallingUid();
long ident = Binder.clearCallingIdentity();
try {
- // TODO: Remove the bypass for apps targeting older SDK's (< M).
- if (!mWifiPermissionsUtil.canAccessScanResults(callingPackage,
- uid, Build.VERSION_CODES.M)) {
+ if (!mWifiPermissionsUtil.canAccessScanResults(callingPackage, uid)) {
return new ArrayList<ScanResult>();
}
final List<ScanResult> scanResults = new ArrayList<>();
diff --git a/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java b/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java
index 8d91ea546..b525555a0 100644
--- a/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java
+++ b/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java
@@ -17,8 +17,8 @@
package com.android.server.wifi.p2p;
import android.app.AlertDialog;
-import android.content.Context;
import android.content.BroadcastReceiver;
+import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
@@ -51,7 +51,6 @@ import android.net.wifi.p2p.nsd.WifiP2pServiceInfo;
import android.net.wifi.p2p.nsd.WifiP2pServiceRequest;
import android.net.wifi.p2p.nsd.WifiP2pServiceResponse;
import android.os.Binder;
-import android.os.Build;
import android.os.Bundle;
import android.os.HandlerThread;
import android.os.IBinder;
@@ -3468,10 +3467,8 @@ public class WifiP2pServiceImpl extends IWifiP2pManager.Stub {
mWifiInjector = WifiInjector.getInstance();
}
wifiPermissionsUtil = mWifiInjector.getWifiPermissionsUtil();
- // Minimum Version to enforce location permission is O or later
try {
- scanPermission = wifiPermissionsUtil.canAccessScanResults(pkgName, uid,
- Build.VERSION_CODES.O);
+ scanPermission = wifiPermissionsUtil.canAccessScanResults(pkgName, uid);
} catch (SecurityException e) {
Log.e(TAG, "Security Exception, cannot access peer list");
}
diff --git a/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java b/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java
index 0521f23d1..67fc98e0c 100644
--- a/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java
+++ b/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java
@@ -119,25 +119,19 @@ public class WifiPermissionsUtil {
}
/**
- * API to determine if the caller has permissions to get
- * scan results.
+ * API to determine if the caller has permissions to get scan results.
* @param pkgName package name of the application requesting access
* @param uid The uid of the package
- * @param minVersion Minimum app API Version number to enforce location permission
* @return boolean true or false if permissions is granted
*/
- public boolean canAccessScanResults(String pkgName, int uid,
- int minVersion) throws SecurityException {
+ public boolean canAccessScanResults(String pkgName, int uid) throws SecurityException {
mAppOps.checkPackage(uid, pkgName);
// Check if the calling Uid has CAN_READ_PEER_MAC_ADDRESS permission.
boolean canCallingUidAccessLocation = checkCallerHasPeersMacAddressPermission(uid);
- // LocationAccess by App: For AppVersion older than minVersion,
- // it is sufficient to check if the App is foreground.
- // Otherwise, Location Mode must be enabled and caller must have
+ // LocationAccess by App: Location Mode must be enabled and caller must have
// Coarse Location permission to have access to location information.
- boolean canAppPackageUseLocation = isLegacyForeground(pkgName, minVersion)
- || (isLocationModeEnabled(pkgName)
- && checkCallersLocationPermission(pkgName, uid));
+ boolean canAppPackageUseLocation = isLocationModeEnabled(pkgName)
+ && checkCallersLocationPermission(pkgName, uid);
// If neither caller or app has location access, there is no need to check
// any other permissions. Deny access to scan results.
if (!canCallingUidAccessLocation && !canAppPackageUseLocation) {
@@ -225,14 +219,6 @@ public class WifiPermissionsUtil {
return mAppOps.noteOp(op, uid, pkgName) == AppOpsManager.MODE_ALLOWED;
}
- private boolean isLegacyForeground(String pkgName, int version) {
- return isLegacyVersion(pkgName, version) && isForegroundApp(pkgName);
- }
-
- private boolean isForegroundApp(String pkgName) {
- return pkgName.equals(mWifiPermissionsWrapper.getTopPkgName());
- }
-
private boolean isLocationModeEnabled(String pkgName) {
// Location mode check on applications that are later than version.
return (mSettingsStore.getLocationModeSetting(mContext)