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

Commit b45334bd authored by Steven Moreland's avatar Steven Moreland Committed by android-build-merger
Browse files

Merge "SystemConfig: allow reading sku specific props" am: 2a234505 am: 79ad2295

am: 14b2f1ae

Change-Id: I381e3356aa18ea69e3381321f9ba47c4afb09a18
parents 19e88053 14b2f1ae
Loading
Loading
Loading
Loading
+19 −0
Original line number Original line Diff line number Diff line
@@ -25,6 +25,7 @@ import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Build;
import android.os.Environment;
import android.os.Environment;
import android.os.Process;
import android.os.Process;
import android.os.SystemProperties;
import android.os.storage.StorageManager;
import android.os.storage.StorageManager;
import android.permission.PermissionManager.SplitPermissionInfo;
import android.permission.PermissionManager.SplitPermissionInfo;
import android.text.TextUtils;
import android.text.TextUtils;
@@ -68,6 +69,9 @@ public class SystemConfig {
    private static final int ALLOW_HIDDENAPI_WHITELISTING = 0x40;
    private static final int ALLOW_HIDDENAPI_WHITELISTING = 0x40;
    private static final int ALLOW_ALL = ~0;
    private static final int ALLOW_ALL = ~0;


    // property for runtime configuration differentiation
    private static final String SKU_PROPERTY = "ro.boot.product.hardware.sku";

    // Group-ids that are given to all packages as read from etc/permissions/*.xml.
    // Group-ids that are given to all packages as read from etc/permissions/*.xml.
    int[] mGlobalGids;
    int[] mGlobalGids;


@@ -344,6 +348,17 @@ public class SystemConfig {
        readPermissions(Environment.buildPath(
        readPermissions(Environment.buildPath(
                Environment.getOdmDirectory(), "etc", "permissions"), odmPermissionFlag);
                Environment.getOdmDirectory(), "etc", "permissions"), odmPermissionFlag);


        String skuProperty = SystemProperties.get(SKU_PROPERTY, "");
        if (!skuProperty.isEmpty()) {
            String skuDir = "sku_" + skuProperty;

            readPermissions(Environment.buildPath(
                    Environment.getOdmDirectory(), "etc", "sysconfig", skuDir), odmPermissionFlag);
            readPermissions(Environment.buildPath(
                    Environment.getOdmDirectory(), "etc", "permissions", skuDir),
                    odmPermissionFlag);
        }

        // Allow OEM to customize features and OEM permissions
        // Allow OEM to customize features and OEM permissions
        int oemPermissionFlag = ALLOW_FEATURES | ALLOW_OEM_PERMISSIONS;
        int oemPermissionFlag = ALLOW_FEATURES | ALLOW_OEM_PERMISSIONS;
        readPermissions(Environment.buildPath(
        readPermissions(Environment.buildPath(
@@ -380,6 +395,10 @@ public class SystemConfig {
        // Iterate over the files in the directory and scan .xml files
        // Iterate over the files in the directory and scan .xml files
        File platformFile = null;
        File platformFile = null;
        for (File f : libraryDir.listFiles()) {
        for (File f : libraryDir.listFiles()) {
            if (!f.isFile()) {
                continue;
            }

            // We'll read platform.xml last
            // We'll read platform.xml last
            if (f.getPath().endsWith("etc/permissions/platform.xml")) {
            if (f.getPath().endsWith("etc/permissions/platform.xml")) {
                platformFile = f;
                platformFile = f;