diff options
author | 2019-11-26 14:25:46 -0800 | |
---|---|---|
committer | 2020-01-23 11:08:39 -0800 | |
commit | f27351a01c5f5b37d6c998052434cb62d9a5b05d (patch) | |
tree | caa3e147a5c0496d562064102caf7c932c272620 | |
parent | 96d1f15dc4ff3e5edf26375b779510ee4bb9c9eb (diff) |
Do not persist one-time permissions as "granted"
One time permissions should not be persisted as a granted state because
it doesn't make sense to later load a one-time permission.
Test: Manual
Bug: 136219229
Change-Id: I3352efe1eb8db7fd602f30dcd881c20e2fe5e494
-rw-r--r-- | service/java/com/android/permission/persistence/RuntimePermissionsPersistenceImpl.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/service/java/com/android/permission/persistence/RuntimePermissionsPersistenceImpl.java b/service/java/com/android/permission/persistence/RuntimePermissionsPersistenceImpl.java index 1dbad4567..90b1c4b6f 100644 --- a/service/java/com/android/permission/persistence/RuntimePermissionsPersistenceImpl.java +++ b/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); } } |