Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6306e8ae authored by Evan Severson's avatar Evan Severson
Browse files

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
parent 795168a1
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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);
        }
    }