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

Commit ae5c2dcf authored by Nate Myren's avatar Nate Myren Committed by Automerger Merge Worker
Browse files

Merge "Handle proxy chains including the system package" into sc-dev am: d6a0393f

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

Change-Id: Ia0ad162650ead758e6a1b7e1c1ad85102f5a971b
parents e4ee0649 d6a0393f
Loading
Loading
Loading
Loading
+20 −18
Original line number Diff line number Diff line
@@ -283,9 +283,7 @@ public class PermissionUsageHelper {
                        continue;
                    }

                    if (packageName.equals(SYSTEM_PKG)
                            || (!shouldShowPermissionsHub()
                            && !isUserSensitive(packageName, user, op))) {
                    if (!shouldShowPermissionsHub() && !isUserSensitive(packageName, user, op)) {
                        continue;
                    }

@@ -372,8 +370,10 @@ public class PermissionUsageHelper {
                proxyLabels.put(usage, new ArrayList<>());
                proxyUids.add(usage.uid);
            }
            if (!mostRecentUsages.containsKey(usage.uid) || usage.lastAccessTime
                    > mostRecentUsages.get(usage.uid).lastAccessTime) {
            // If this usage is not by the system, and is more recent than the next-most recent
            // for it's uid, save it.
            if (!usage.packageName.equals(SYSTEM_PKG) && (!mostRecentUsages.containsKey(usage.uid)
                    || usage.lastAccessTime > mostRecentUsages.get(usage.uid).lastAccessTime)) {
                mostRecentUsages.put(usage.uid, usage);
            }
        }
@@ -416,21 +416,23 @@ public class PermissionUsageHelper {
                }

                proxyUids.add(currentUsage.uid);
                // Don't add an app label for the main app, or the system app
                if (!currentUsage.packageName.equals(start.packageName)
                        && !currentUsage.packageName.equals(SYSTEM_PKG)) {
                    try {
                        PackageManager userPkgManager =
                                getUserContext(currentUsage.getUser()).getPackageManager();
                        ApplicationInfo appInfo = userPkgManager.getApplicationInfo(
                                currentUsage.packageName, 0);
                        CharSequence appLabel = appInfo.loadLabel(userPkgManager);
                    // If we don't already have the app label, and it's not the same as the main
                    // app, add it
                    if (!proxyLabelList.contains(appLabel)
                            && !currentUsage.packageName.equals(start.packageName)) {
                        // If we don't already have the app label add it
                        if (!proxyLabelList.contains(appLabel)) {
                            proxyLabelList.add(appLabel);
                        }
                    } catch (PackageManager.NameNotFoundException e) {
                        // Ignore
                    }
                }
                iterNum++;
            }
            usagesAndLabels.put(start,