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

Commit cf7e8a1c authored by Philip P. Moltmann's avatar Philip P. Moltmann Committed by android-build-merger
Browse files

Cache PermissionInfos in whitelistAllSystemAppPermissions

am: 0e7ae6d3

Change-Id: I65aa0fb8ee20f5a208bbe11962fe2afa3667f448
parents 30597344 0e7ae6d3
Loading
Loading
Loading
Loading
+14 −6
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.content.pm.PackageManager;
import android.content.pm.PermissionInfo;
import android.permission.PermissionManager;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.Log;

import androidx.annotation.NonNull;
@@ -88,6 +89,9 @@ class RuntimePermissionsUpgradeController {
                        | PackageManager.MATCH_UNINSTALLED_PACKAGES
                        | PackageManager.MATCH_FACTORY_ONLY);

        // Cache permissionInfos
        final ArrayMap<String, PermissionInfo> permissionInfos = new ArrayMap<>();

        final int appCount = apps.size();
        for (int i = 0; i < appCount; i++) {
            final PackageInfo app = apps.get(i);
@@ -97,7 +101,8 @@ class RuntimePermissionsUpgradeController {
            }

            for (String requestedPermission : app.requestedPermissions) {
                final PermissionInfo permInfo;
                PermissionInfo permInfo = permissionInfos.get(requestedPermission);
                if (permInfo == null) {
                    try {
                        permInfo = context.getPackageManager().getPermissionInfo(
                                requestedPermission, 0);
@@ -105,6 +110,9 @@ class RuntimePermissionsUpgradeController {
                        continue;
                    }

                    permissionInfos.put(requestedPermission, permInfo);
                }

                if ((permInfo.flags & (PermissionInfo.FLAG_HARD_RESTRICTED
                        | PermissionInfo.FLAG_SOFT_RESTRICTED)) == 0) {
                    continue;