diff options
| author | 2018-12-12 09:05:45 -0800 | |
|---|---|---|
| committer | 2018-12-12 09:05:45 -0800 | |
| commit | b45334bdba6eace57409230290693d0e20f15fa6 (patch) | |
| tree | a89a071b9ebb2f5c3e5c678cd420afbd4ef683d1 | |
| parent | 19e8805344167fb4c63519fc4e019a2771944c27 (diff) | |
| parent | 14b2f1aebbf90b9d17e6f078240d116ced00e348 (diff) | |
Merge "SystemConfig: allow reading sku specific props" am: 2a23450552 am: 79ad229599
am: 14b2f1aebb
Change-Id: I381e3356aa18ea69e3381321f9ba47c4afb09a18
| -rw-r--r-- | core/java/com/android/server/SystemConfig.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/core/java/com/android/server/SystemConfig.java b/core/java/com/android/server/SystemConfig.java index b00e6fdd5e9a..2e674a5892c6 100644 --- a/core/java/com/android/server/SystemConfig.java +++ b/core/java/com/android/server/SystemConfig.java @@ -25,6 +25,7 @@ import android.content.pm.PackageManager; import android.os.Build; import android.os.Environment; import android.os.Process; +import android.os.SystemProperties; import android.os.storage.StorageManager; import android.permission.PermissionManager.SplitPermissionInfo; import android.text.TextUtils; @@ -68,6 +69,9 @@ public class SystemConfig { private static final int ALLOW_HIDDENAPI_WHITELISTING = 0x40; 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. int[] mGlobalGids; @@ -344,6 +348,17 @@ public class SystemConfig { readPermissions(Environment.buildPath( 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 int oemPermissionFlag = ALLOW_FEATURES | ALLOW_OEM_PERMISSIONS; readPermissions(Environment.buildPath( @@ -380,6 +395,10 @@ public class SystemConfig { // Iterate over the files in the directory and scan .xml files File platformFile = null; for (File f : libraryDir.listFiles()) { + if (!f.isFile()) { + continue; + } + // We'll read platform.xml last if (f.getPath().endsWith("etc/permissions/platform.xml")) { platformFile = f; |