Merge "SystemConfig: allow reading sku specific props"

This commit is contained in:
Steven Moreland
2018-12-12 16:19:43 +00:00
committed by Gerrit Code Review

View File

@@ -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.text.TextUtils; import android.text.TextUtils;
import android.util.ArrayMap; import android.util.ArrayMap;
@@ -67,6 +68,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;
@@ -312,6 +316,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(
@@ -342,6 +357,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;