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

Commit 2423b592 authored by Andrei-Valentin Onea's avatar Andrei-Valentin Onea Committed by Automerger Merge Worker
Browse files

Merge "Use apex name when querying privapp allowlists" into tm-dev am: ba30e363

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

Change-Id: I85b5ca4a26dbe7d21eab7bf0a8ac79c7e64412db
parents ec8ef95a ba30e363
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -435,15 +435,15 @@ public class SystemConfig {
    }

    /** Get privapp permission allowlist for an apk-in-apex. */
    public ArraySet<String> getApexPrivAppPermissions(String module, String packageName) {
        return mApexPrivAppPermissions.getOrDefault(module, EMPTY_PERMISSIONS)
                .get(packageName);
    public ArraySet<String> getApexPrivAppPermissions(String apexName, String apkPackageName) {
        return mApexPrivAppPermissions.getOrDefault(apexName, EMPTY_PERMISSIONS)
                .get(apkPackageName);
    }

    /** Get privapp permissions denylist for an apk-in-apex. */
    public ArraySet<String> getApexPrivAppDenyPermissions(String module, String packageName) {
        return mApexPrivAppDenyPermissions.getOrDefault(module, EMPTY_PERMISSIONS)
                .get(packageName);
    public ArraySet<String> getApexPrivAppDenyPermissions(String apexName, String apkPackageName) {
        return mApexPrivAppDenyPermissions.getOrDefault(apexName, EMPTY_PERMISSIONS)
                .get(apkPackageName);
    }

    public ArraySet<String> getVendorPrivAppPermissions(String packageName) {
+6 −2
Original line number Diff line number Diff line
@@ -2540,8 +2540,10 @@ class PackageManagerShellCommand extends ShellCommand {
            privAppPermissions = SystemConfig.getInstance()
                    .getSystemExtPrivAppPermissions(pkg);
        } else if (isApexApp(pkg)) {
            final String apexName = ApexManager.getInstance().getApexModuleNameForPackageName(
                    getApexPackageNameContainingPackage(pkg));
            privAppPermissions = SystemConfig.getInstance()
                    .getApexPrivAppPermissions(getApexPackageNameContainingPackage(pkg), pkg);
                    .getApexPrivAppPermissions(apexName, pkg);
        } else {
            privAppPermissions = SystemConfig.getInstance().getPrivAppPermissions(pkg);
        }
@@ -2567,8 +2569,10 @@ class PackageManagerShellCommand extends ShellCommand {
            privAppPermissions = SystemConfig.getInstance()
                    .getSystemExtPrivAppDenyPermissions(pkg);
        } else if (isApexApp(pkg)) {
            final String apexName = ApexManager.getInstance().getApexModuleNameForPackageName(
                    getApexPackageNameContainingPackage(pkg));
            privAppPermissions = SystemConfig.getInstance()
                    .getApexPrivAppDenyPermissions(getApexPackageNameContainingPackage(pkg), pkg);
                    .getApexPrivAppDenyPermissions(apexName, pkg);
        } else {
            privAppPermissions = SystemConfig.getInstance().getPrivAppDenyPermissions(pkg);
        }
+4 −1
Original line number Diff line number Diff line
@@ -3291,10 +3291,13 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt
        } else if (pkg.isSystemExt()) {
            permissions = systemConfig.getSystemExtPrivAppPermissions(pkg.getPackageName());
        } else if (containingApexPackageName != null) {
            final ApexManager apexManager = ApexManager.getInstance();
            final String apexName = apexManager.getApexModuleNameForPackageName(
                    containingApexPackageName);
            final Set<String> privAppPermissions = systemConfig.getPrivAppPermissions(
                    pkg.getPackageName());
            final Set<String> apexPermissions = systemConfig.getApexPrivAppPermissions(
                    containingApexPackageName, pkg.getPackageName());
                    apexName, pkg.getPackageName());
            if (privAppPermissions != null) {
                // TODO(andreionea): Remove check as soon as all apk-in-apex
                // permission allowlists are migrated.