summaryrefslogtreecommitdiffstats
path: root/core/java/android/net
diff options
context:
space:
mode:
authorShirish Kalele <kalele@google.com>2015-08-07 20:25:06 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-08-07 20:25:06 +0000
commit027e3b7f51cd172dae89f69cc358363b0cf20f5f (patch)
tree397f00faf444a76a1af32674b47fc42599e55d69 /core/java/android/net
parent288e82f8f67db894c43bf4ea659ca832f979c65a (diff)
parent4cab12d91d120ee93e135050b78edb335e9ac91b (diff)
downloadframeworks_base-027e3b7f51cd172dae89f69cc358363b0cf20f5f.zip
frameworks_base-027e3b7f51cd172dae89f69cc358363b0cf20f5f.tar.gz
frameworks_base-027e3b7f51cd172dae89f69cc358363b0cf20f5f.tar.bz2
Merge "Fix check for caller being the active network scorer" into mnc-dev
Diffstat (limited to 'core/java/android/net')
-rw-r--r--core/java/android/net/NetworkScorerAppManager.java16
1 files changed, 9 insertions, 7 deletions
diff --git a/core/java/android/net/NetworkScorerAppManager.java b/core/java/android/net/NetworkScorerAppManager.java
index 46f7194..29daf35 100644
--- a/core/java/android/net/NetworkScorerAppManager.java
+++ b/core/java/android/net/NetworkScorerAppManager.java
@@ -23,6 +23,7 @@ import android.app.AppOpsManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
+import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.UserHandle;
@@ -54,6 +55,9 @@ public final class NetworkScorerAppManager {
/** Package name of this scorer app. */
public final String mPackageName;
+ /** UID of the scorer app. */
+ public final int mPackageUid;
+
/** Name of this scorer app for display. */
public final CharSequence mScorerName;
@@ -64,10 +68,11 @@ public final class NetworkScorerAppManager {
*/
public final String mConfigurationActivityClassName;
- public NetworkScorerAppData(String packageName, CharSequence scorerName,
+ public NetworkScorerAppData(String packageName, int packageUid, CharSequence scorerName,
@Nullable String configurationActivityClassName) {
mScorerName = scorerName;
mPackageName = packageName;
+ mPackageUid = packageUid;
mConfigurationActivityClassName = configurationActivityClassName;
}
}
@@ -125,7 +130,8 @@ public final class NetworkScorerAppManager {
// NOTE: loadLabel will attempt to load the receiver's label and fall back to the app
// label if none is present.
scorers.add(new NetworkScorerAppData(receiverInfo.packageName,
- receiverInfo.loadLabel(pm), configurationActivityClassName));
+ receiverInfo.applicationInfo.uid, receiverInfo.loadLabel(pm),
+ configurationActivityClassName));
}
return scorers;
@@ -187,13 +193,9 @@ public final class NetworkScorerAppManager {
if (defaultApp == null) {
return false;
}
- AppOpsManager appOpsMgr = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
- try {
- appOpsMgr.checkPackage(callingUid, defaultApp.mPackageName);
- } catch (SecurityException e) {
+ if (callingUid != defaultApp.mPackageUid) {
return false;
}
-
// To be extra safe, ensure the caller holds the SCORE_NETWORKS permission. It always
// should, since it couldn't become the active scorer otherwise, but this can't hurt.
return context.checkCallingPermission(Manifest.permission.SCORE_NETWORKS) ==