summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2014-09-12 22:45:00 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-09-12 22:45:01 +0000
commit39b278798e541c25eb4133b3b0cb0886dfa8eac4 (patch)
treeaf843444cd33dd04bad1a65e0fb3eafacb755e1c /services
parent457b62d923a8dc2c118faabc20e09d43b7da9135 (diff)
parent0fcef84cca23724c13ecfe775b90dec3614cc3e3 (diff)
downloadframeworks_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.java16
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) {