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

Commit 5c4b8708 authored by Inseob Kim's avatar Inseob Kim Committed by Gerrit Code Review
Browse files

Merge "Add preinstalled partition to seinfo" into main

parents 30f6d647 eba0d384
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -80,6 +80,8 @@ public final class SELinuxMMAC {
    // Append targetSdkVersion=n to existing seinfo label where n is the app's targetSdkVersion
    private static final String TARGETSDKVERSION_STR = ":targetSdkVersion=";

    private static final String PARTITION_STR = ":partition=";

    /**
     * Allows opt-in to the latest targetSdkVersion enforced changes without changing target SDK.
     * Turning this change on for an app targeting the latest SDK or higher is a no-op.
@@ -370,6 +372,23 @@ public final class SELinuxMMAC {
        return pkg.getTargetSdkVersion();
    }

    private static String getPartition(AndroidPackage pkg) {
        if (pkg.isSystemExt()) {
            return "system_ext";
        } else if (pkg.isProduct()) {
            return "product";
        } else if (pkg.isVendor()) {
            return "vendor";
        } else if (pkg.isOem()) {
            return "oem";
        } else if (pkg.isOdm()) {
            return "odm";
        } else if (pkg.isSystem()) {
            return "system";
        }
        return "";
    }

    /**
     * Selects a security label to a package based on input parameters and the seinfo tag taken
     * from a matched policy. All signature based policy stanzas are consulted and, if no match
@@ -433,6 +452,11 @@ public final class SELinuxMMAC {

        seInfo += TARGETSDKVERSION_STR + targetSdkVersion;

        String partition = getPartition(pkg);
        if (!partition.isEmpty()) {
            seInfo += PARTITION_STR + partition;
        }

        if (DEBUG_POLICY_INSTALL) {
            Slog.i(TAG, "package (" + pkg.getPackageName() + ") labeled with "
                    + "seinfo=" + seInfo);