diff options
author | Dianne Hackborn <hackbod@google.com> | 2014-09-12 22:45:00 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-09-12 22:45:01 +0000 |
commit | 39b278798e541c25eb4133b3b0cb0886dfa8eac4 (patch) | |
tree | af843444cd33dd04bad1a65e0fb3eafacb755e1c /services | |
parent | 457b62d923a8dc2c118faabc20e09d43b7da9135 (diff) | |
parent | 0fcef84cca23724c13ecfe775b90dec3614cc3e3 (diff) | |
download | frameworks_base-39b278798e541c25eb4133b3b0cb0886dfa8eac4.zip frameworks_base-39b278798e541c25eb4133b3b0cb0886dfa8eac4.tar.gz frameworks_base-39b278798e541c25eb4133b3b0cb0886dfa8eac4.tar.bz2 |
Merge "Fix issue #17479850: AppOpsManager.checkPackage() allows..." into lmp-dev
Diffstat (limited to 'services')
-rw-r--r-- | services/core/java/com/android/server/AppOpsService.java | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/AppOpsService.java b/services/core/java/com/android/server/AppOpsService.java index ef6e07c..c3465d1 100644 --- a/services/core/java/com/android/server/AppOpsService.java +++ b/services/core/java/com/android/server/AppOpsService.java @@ -631,7 +631,7 @@ public class AppOpsService extends IAppOpsService.Stub { @Override public int checkPackage(int uid, String packageName) { synchronized (this) { - if (getOpsLocked(uid, packageName, true) != null) { + if (getOpsRawLocked(uid, packageName, true) != null) { return AppOpsManager.MODE_ALLOWED; } else { return AppOpsManager.MODE_ERRORED; @@ -769,6 +769,15 @@ public class AppOpsService extends IAppOpsService.Stub { } private Ops getOpsLocked(int uid, String packageName, boolean edit) { + if (uid == 0) { + packageName = "root"; + } else if (uid == Process.SHELL_UID) { + packageName = "com.android.shell"; + } + return getOpsRawLocked(uid, packageName, edit); + } + + private Ops getOpsRawLocked(int uid, String packageName, boolean edit) { HashMap<String, Ops> pkgOps = mUidOps.get(uid); if (pkgOps == null) { if (!edit) { @@ -777,11 +786,6 @@ public class AppOpsService extends IAppOpsService.Stub { pkgOps = new HashMap<String, Ops>(); mUidOps.put(uid, pkgOps); } - if (uid == 0) { - packageName = "root"; - } else if (uid == Process.SHELL_UID) { - packageName = "com.android.shell"; - } Ops ops = pkgOps.get(packageName); if (ops == null) { if (!edit) { |