summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/appop/AppOpsService.java18
1 files changed, 15 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java
index 5b8a6d935d30..c15360b00d51 100644
--- a/services/core/java/com/android/server/appop/AppOpsService.java
+++ b/services/core/java/com/android/server/appop/AppOpsService.java
@@ -4060,9 +4060,11 @@ public class AppOpsService extends IAppOpsService.Stub {
private void readOp(XmlPullParser parser, @NonNull UidState uidState,
@NonNull String pkgName, boolean isPrivileged) throws NumberFormatException,
XmlPullParserException, IOException {
- Op op = new Op(uidState, pkgName,
- Integer.parseInt(parser.getAttributeValue(null, "n")),
- uidState.uid);
+ int opCode = Integer.parseInt(parser.getAttributeValue(null, "n"));
+ if (isIgnoredAppOp(opCode)) {
+ return;
+ }
+ Op op = new Op(uidState, pkgName, opCode, uidState.uid);
final int mode = XmlUtils.readIntAttribute(parser, "m",
AppOpsManager.opToDefaultMode(op.op));
@@ -4096,6 +4098,16 @@ public class AppOpsService extends IAppOpsService.Stub {
ops.put(op.op, op);
}
+ //TODO(b/149995538): Remove once this has reached all affected devices
+ private static boolean isIgnoredAppOp(int op) {
+ switch (op) {
+ case AppOpsManager.OP_MANAGE_EXTERNAL_STORAGE:
+ return true;
+ default:
+ return false;
+ }
+ }
+
void writeState() {
synchronized (mFile) {
FileOutputStream stream;