diff --git a/core/java/com/android/server/SystemConfig.java b/core/java/com/android/server/SystemConfig.java index 9d4b5aa9fc732..c71e505c6790e 100644 --- a/core/java/com/android/server/SystemConfig.java +++ b/core/java/com/android/server/SystemConfig.java @@ -22,6 +22,7 @@ import android.app.ActivityManager; import android.content.ComponentName; import android.content.pm.FeatureInfo; import android.content.pm.PackageManager; +import android.os.Build; import android.os.Environment; import android.os.Process; import android.os.storage.StorageManager; @@ -276,9 +277,12 @@ public class SystemConfig { readPermissions(Environment.buildPath( Environment.getRootDirectory(), "etc", "permissions"), ALLOW_ALL); - // Allow Vendor to customize system configs around libs, features, permissions and apps - int vendorPermissionFlag = ALLOW_LIBS | ALLOW_FEATURES | ALLOW_PERMISSIONS | - ALLOW_APP_CONFIGS | ALLOW_PRIVAPP_PERMISSIONS; + // Vendors are only allowed to customze libs, features and privapp permissions + int vendorPermissionFlag = ALLOW_LIBS | ALLOW_FEATURES | ALLOW_PRIVAPP_PERMISSIONS; + if (Build.VERSION.FIRST_SDK_INT <= Build.VERSION_CODES.O_MR1) { + // For backward compatibility + vendorPermissionFlag |= (ALLOW_PERMISSIONS | ALLOW_APP_CONFIGS); + } readPermissions(Environment.buildPath( Environment.getVendorDirectory(), "etc", "sysconfig"), vendorPermissionFlag); readPermissions(Environment.buildPath( @@ -659,6 +663,8 @@ public class SystemConfig { } XmlUtils.skipCurrentTag(parser); } else { + Slog.w(TAG, "Tag " + name + " is unknown or not allowed in " + + permFile.getParent()); XmlUtils.skipCurrentTag(parser); continue; }