summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2020-01-28 03:12:51 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-01-28 03:12:51 +0000
commit1647da84d50a212f823a6b2e4b2ff128bbdd110b (patch)
tree7221c8ade1d5f901868afea1637c92793008499d
parentd0fcf280d2be43778d67fefb5318b28f85083097 (diff)
parent6306e8aec4b6bda685b9059f90dcd5d82493ff6d (diff)
Merge "Do not persist one-time permissions as "granted""
-rw-r--r--apex/permission/service/java/com/android/permission/persistence/RuntimePermissionsPersistenceImpl.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/apex/permission/service/java/com/android/permission/persistence/RuntimePermissionsPersistenceImpl.java b/apex/permission/service/java/com/android/permission/persistence/RuntimePermissionsPersistenceImpl.java
index 1dbad456760c..90b1c4b6ff5f 100644
--- a/apex/permission/service/java/com/android/permission/persistence/RuntimePermissionsPersistenceImpl.java
+++ b/apex/permission/service/java/com/android/permission/persistence/RuntimePermissionsPersistenceImpl.java
@@ -19,6 +19,7 @@ package com.android.permission.persistence;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.ApexContext;
+import android.content.pm.PackageManager;
import android.os.UserHandle;
import android.util.ArrayMap;
import android.util.AtomicFile;
@@ -242,9 +243,10 @@ public class RuntimePermissionsPersistenceImpl implements RuntimePermissionsPers
serializer.startTag(null, TAG_PERMISSION);
serializer.attribute(null, ATTRIBUTE_NAME, permissionState.getName());
serializer.attribute(null, ATTRIBUTE_GRANTED, Boolean.toString(
- permissionState.isGranted()));
+ permissionState.isGranted() && (permissionState.getFlags()
+ & PackageManager.FLAG_PERMISSION_ONE_TIME) == 0));
serializer.attribute(null, ATTRIBUTE_FLAGS, Integer.toHexString(
- permissionState.getFlags()));
+ permissionState.getFlags() & ~PackageManager.FLAG_PERMISSION_ONE_TIME));
serializer.endTag(null, TAG_PERMISSION);
}
}