mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2024-10-01 01:35:54 -04:00
0c4db149e1
This revokes the permissions to all user installed apps on update. Likely an expected quirk of being on 20.0 without the permission. 19.1 upgrades and new 20.0 installs should be fine. TODO: update 19.1 with the SpecialRuntimePermAppUtils too Signed-off-by: Tad <tad@spotco.us>
34 lines
2.1 KiB
Diff
34 lines
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Dmitry Muhomor <muhomor.dmitry@gmail.com>
|
|
Date: Sun, 16 Oct 2022 17:13:03 +0300
|
|
Subject: [PATCH] srt permissions: don't auto-revoke from "hidden" packages
|
|
|
|
Special runtime permissions are auto-revoked in users that don't have the package installed, as a
|
|
workaround to a bug in previous OS versions that granted these permissions automatically in all
|
|
user profiles, including the ones that don't have this package installed, which interfered with
|
|
configurable auto-grants.
|
|
|
|
PackageUserStateUtils.isAvailable() is not the right check for this, it returns false for apps
|
|
which are "hidden" with DevicePolicyManager#setApplicationHidden(). This method is used by work
|
|
profile managers (in particular, Shelter) to implement "app freezing" functionality.
|
|
|
|
This led to special runtime permission being auto-revoked from "hidden" packages after OS reboot
|
|
and in a few other cases.
|
|
---
|
|
.../server/pm/permission/PermissionManagerServiceImpl.java | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java
|
|
index 0fcd067142f5..d546ee0db05f 100644
|
|
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java
|
|
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java
|
|
@@ -2613,7 +2613,7 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt
|
|
synchronized (mLock) {
|
|
for (final int userId : userIds) {
|
|
final boolean isNotInstalledUserApp = !ps.isSystem()
|
|
- && !PackageUserStateUtils.isAvailable(ps.getUserStateOrDefault(userId), 0);
|
|
+ && !ps.getUserStateOrDefault(userId).isInstalled();
|
|
|
|
final UserPermissionState userState = mState.getOrCreateUserState(userId);
|
|
final UidPermissionState uidState = userState.getOrCreateUidState(ps.getAppId());
|