summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFyodor Kupolov <fkupolov@google.com>2015-10-15 16:19:04 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-10-15 16:19:04 +0000
commita3de81f4084bca4f66f58c03dc027aa784dcc1a0 (patch)
tree28c01031ad51c405478da596a86eb5ae726c76a6
parent98f03db90fd6877598b6b8669fb324c70b9cfb91 (diff)
parentd8c80cc7ff540c103e48cf298d196a6b66548134 (diff)
downloadandroid_frameworks_opt_net_wifi-a3de81f4084bca4f66f58c03dc027aa784dcc1a0.tar.gz
android_frameworks_opt_net_wifi-a3de81f4084bca4f66f58c03dc027aa784dcc1a0.tar.bz2
android_frameworks_opt_net_wifi-a3de81f4084bca4f66f58c03dc027aa784dcc1a0.zip
am d8c80cc7: am e2ba917b: Merge "Do not throw an exception if appop\'s result is MODE_IGNORED" into mnc-dr-dev
* commit 'd8c80cc7ff540c103e48cf298d196a6b66548134': Do not throw an exception if appop's result is MODE_IGNORED
-rw-r--r--service/java/com/android/server/wifi/WifiServiceImpl.java19
1 files changed, 7 insertions, 12 deletions
diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java
index 2b83b6884..b02556614 100644
--- a/service/java/com/android/server/wifi/WifiServiceImpl.java
+++ b/service/java/com/android/server/wifi/WifiServiceImpl.java
@@ -2064,29 +2064,24 @@ public final class WifiServiceImpl extends IWifiManager.Stub {
private boolean checkCallerCanAccessScanResults(String callingPackage, int uid) {
if (ActivityManager.checkUidPermission(Manifest.permission.ACCESS_FINE_LOCATION, uid)
== PackageManager.PERMISSION_GRANTED
- && isAppOppAllowed(AppOpsManager.OP_FINE_LOCATION, callingPackage, uid)) {
+ && checkAppOppAllowed(AppOpsManager.OP_FINE_LOCATION, callingPackage, uid)) {
return true;
}
if (ActivityManager.checkUidPermission(Manifest.permission.ACCESS_COARSE_LOCATION, uid)
== PackageManager.PERMISSION_GRANTED
- && isAppOppAllowed(AppOpsManager.OP_COARSE_LOCATION, callingPackage, uid)) {
+ && checkAppOppAllowed(AppOpsManager.OP_COARSE_LOCATION, callingPackage, uid)) {
return true;
}
- // Enforce location permission for apps targeting M and later versions
- boolean enforceLocationPermission = true;
+ boolean apiLevel23App = true;
try {
- enforceLocationPermission = mContext.getPackageManager().getApplicationInfo(
+ apiLevel23App = mContext.getPackageManager().getApplicationInfo(
callingPackage, 0).targetSdkVersion >= Build.VERSION_CODES.M;
} catch (PackageManager.NameNotFoundException e) {
- // In case of exception, enforce permission anyway
- }
- if (enforceLocationPermission) {
- throw new SecurityException("Need ACCESS_COARSE_LOCATION or "
- + "ACCESS_FINE_LOCATION permission to get scan results");
+ // In case of exception, assume app's API level is 23+
}
// Pre-M apps running in the foreground should continue getting scan results
- if (isForegroundApp(callingPackage)) {
+ if (!apiLevel23App && isForegroundApp(callingPackage)) {
return true;
}
Log.e(TAG, "Permission denial: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION "
@@ -2094,7 +2089,7 @@ public final class WifiServiceImpl extends IWifiManager.Stub {
return false;
}
- private boolean isAppOppAllowed(int op, String callingPackage, int uid) {
+ private boolean checkAppOppAllowed(int op, String callingPackage, int uid) {
return mAppOps.noteOp(op, uid, callingPackage) == AppOpsManager.MODE_ALLOWED;
}