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

Commit 0fdf4498 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Don't keep pregrants for non-system apps after partial uninstallation"...

Merge "Don't keep pregrants for non-system apps after partial uninstallation" into main am: 8540f01f

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3263777



Change-Id: Ib3da4e03d353a73723231950ca6a23c1cb99ef7d
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 34392f8b 8540f01f
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -286,14 +286,21 @@ class AppIdPermissionPolicy : SchemePolicy() {
                return@forEach
            }
            var newFlags = oldFlags
            val isSystemOrInstalled =
                packageState.isSystem || packageState.getUserStateOrDefault(userId).isInstalled
            newFlags =
                if (
                    isSystemOrInstalled && (
                        newFlags.hasBits(PermissionFlags.ROLE) ||
                            newFlags.hasBits(PermissionFlags.PREGRANT)
                    )
                ) {
                    newFlags or PermissionFlags.RUNTIME_GRANTED
                } else {
                    newFlags andInv PermissionFlags.RUNTIME_GRANTED
                    newFlags andInv (
                        PermissionFlags.RUNTIME_GRANTED or PermissionFlags.ROLE or
                            PermissionFlags.PREGRANT
                    )
                }
            newFlags = newFlags andInv USER_SETTABLE_MASK
            if (newFlags.hasBits(PermissionFlags.LEGACY_GRANTED)) {
+2 −1
Original line number Diff line number Diff line
@@ -72,7 +72,8 @@ class AppIdPermissionPolicyPermissionResetTest : BasePermissionPolicyTest() {
        } else {
            mockPackageState(
                APP_ID_1,
                mockAndroidPackage(PACKAGE_NAME_1, requestedPermissions = setOf(PERMISSION_NAME_0))
                mockAndroidPackage(PACKAGE_NAME_1, requestedPermissions = setOf(PERMISSION_NAME_0)),
                true
            )
        }
        setPermissionFlags(APP_ID_1, USER_ID_0, PERMISSION_NAME_0, oldFlags)