diff options
| author | Svetoslav Ganov <svetoslavganov@google.com> | 2015-08-05 17:38:31 +0000 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2015-08-05 17:38:31 +0000 |
| commit | ef7deb90ac000b5977208e965e0bd84e247140e9 (patch) | |
| tree | 7e245942116291a69b070747ccca93e8dc82eee8 | |
| parent | b0e9e731f284601fb6f544596d4c5973df111355 (diff) | |
| parent | e72377e17a837acbe1e537ac737731f6b869fe1e (diff) | |
| download | frameworks_base-ef7deb90ac000b5977208e965e0bd84e247140e9.zip frameworks_base-ef7deb90ac000b5977208e965e0bd84e247140e9.tar.gz frameworks_base-ef7deb90ac000b5977208e965e0bd84e247140e9.tar.bz2 | |
am e72377e1: Merge "Fix app ops regressions introduced by the per UID policy change" into mnc-dev
* commit 'e72377e17a837acbe1e537ac737731f6b869fe1e':
Fix app ops regressions introduced by the per UID policy change
| -rw-r--r-- | services/core/java/com/android/server/AppOpsService.java | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/AppOpsService.java b/services/core/java/com/android/server/AppOpsService.java index 2a3492b..45c020c 100644 --- a/services/core/java/com/android/server/AppOpsService.java +++ b/services/core/java/com/android/server/AppOpsService.java @@ -25,6 +25,7 @@ import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -509,6 +510,7 @@ public class AppOpsService extends IAppOpsService.Stub { } } + String[] uidPackageNames = getPackagesForUid(uid); ArrayMap<Callback, ArraySet<String>> callbackSpecs = null; ArrayList<Callback> callbacks = mOpModeWatchers.get(code); @@ -516,12 +518,13 @@ public class AppOpsService extends IAppOpsService.Stub { final int callbackCount = callbacks.size(); for (int i = 0; i < callbackCount; i++) { Callback callback = callbacks.get(i); + ArraySet<String> changedPackages = new ArraySet<>(); + Collections.addAll(changedPackages, uidPackageNames); callbackSpecs = new ArrayMap<>(); - callbackSpecs.put(callback, null); + callbackSpecs.put(callback, changedPackages); } } - String[] uidPackageNames = getPackagesForUid(uid); for (String uidPackageName : uidPackageNames) { callbacks = mPackageModeWatchers.get(uidPackageName); if (callbacks != null) { @@ -931,7 +934,6 @@ public class AppOpsService extends IAppOpsService.Stub { } return noteOperationUnchecked(code, proxiedUid, proxiedPackageName, Binder.getCallingUid(), proxyPackageName); - } @Override @@ -1266,7 +1268,7 @@ public class AppOpsService extends IAppOpsService.Stub { String tagName = parser.getName(); if (tagName.equals("pkg")) { readPackage(parser); - } if (tagName.equals("uid")) { + } else if (tagName.equals("uid")) { readUidOps(parser); } else { Slog.w(TAG, "Unknown element under <app-ops>: " |
