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
This commit is contained in:
@@ -25,6 +25,7 @@ import java.io.IOException;
|
|||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -509,6 +510,7 @@ public class AppOpsService extends IAppOpsService.Stub {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String[] uidPackageNames = getPackagesForUid(uid);
|
||||||
ArrayMap<Callback, ArraySet<String>> callbackSpecs = null;
|
ArrayMap<Callback, ArraySet<String>> callbackSpecs = null;
|
||||||
|
|
||||||
ArrayList<Callback> callbacks = mOpModeWatchers.get(code);
|
ArrayList<Callback> callbacks = mOpModeWatchers.get(code);
|
||||||
@@ -516,12 +518,13 @@ public class AppOpsService extends IAppOpsService.Stub {
|
|||||||
final int callbackCount = callbacks.size();
|
final int callbackCount = callbacks.size();
|
||||||
for (int i = 0; i < callbackCount; i++) {
|
for (int i = 0; i < callbackCount; i++) {
|
||||||
Callback callback = callbacks.get(i);
|
Callback callback = callbacks.get(i);
|
||||||
|
ArraySet<String> changedPackages = new ArraySet<>();
|
||||||
|
Collections.addAll(changedPackages, uidPackageNames);
|
||||||
callbackSpecs = new ArrayMap<>();
|
callbackSpecs = new ArrayMap<>();
|
||||||
callbackSpecs.put(callback, null);
|
callbackSpecs.put(callback, changedPackages);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String[] uidPackageNames = getPackagesForUid(uid);
|
|
||||||
for (String uidPackageName : uidPackageNames) {
|
for (String uidPackageName : uidPackageNames) {
|
||||||
callbacks = mPackageModeWatchers.get(uidPackageName);
|
callbacks = mPackageModeWatchers.get(uidPackageName);
|
||||||
if (callbacks != null) {
|
if (callbacks != null) {
|
||||||
@@ -931,7 +934,6 @@ public class AppOpsService extends IAppOpsService.Stub {
|
|||||||
}
|
}
|
||||||
return noteOperationUnchecked(code, proxiedUid, proxiedPackageName,
|
return noteOperationUnchecked(code, proxiedUid, proxiedPackageName,
|
||||||
Binder.getCallingUid(), proxyPackageName);
|
Binder.getCallingUid(), proxyPackageName);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1266,7 +1268,7 @@ public class AppOpsService extends IAppOpsService.Stub {
|
|||||||
String tagName = parser.getName();
|
String tagName = parser.getName();
|
||||||
if (tagName.equals("pkg")) {
|
if (tagName.equals("pkg")) {
|
||||||
readPackage(parser);
|
readPackage(parser);
|
||||||
} if (tagName.equals("uid")) {
|
} else if (tagName.equals("uid")) {
|
||||||
readUidOps(parser);
|
readUidOps(parser);
|
||||||
} else {
|
} else {
|
||||||
Slog.w(TAG, "Unknown element under <app-ops>: "
|
Slog.w(TAG, "Unknown element under <app-ops>: "
|
||||||
|
|||||||
Reference in New Issue
Block a user