diff options
| -rw-r--r-- | core/java/com/android/server/SystemConfig.java | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/core/java/com/android/server/SystemConfig.java b/core/java/com/android/server/SystemConfig.java index 7cd3e95c6499..4c399f8b2358 100644 --- a/core/java/com/android/server/SystemConfig.java +++ b/core/java/com/android/server/SystemConfig.java @@ -24,6 +24,7 @@ import android.content.pm.FeatureInfo; import android.content.pm.PackageManager; import android.os.Build; import android.os.Environment; +import android.os.FileUtils; import android.os.Process; import android.os.SystemProperties; import android.os.storage.StorageManager; @@ -417,6 +418,19 @@ public class SystemConfig { Environment.getSystemExtDirectory(), "etc", "sysconfig"), ALLOW_ALL); readPermissions(Environment.buildPath( Environment.getSystemExtDirectory(), "etc", "permissions"), ALLOW_ALL); + + // Skip loading configuration from apex if it is not a system process. + if (!isSystemProcess()) { + return; + } + // Read configuration of libs from apex module. + // TODO(146407631): Use a solid way to filter apex module folders? + for (File f: FileUtils.listFilesOrEmpty(Environment.getApexDirectory())) { + if (f.isFile() || f.getPath().contains("@")) { + continue; + } + readPermissions(Environment.buildPath(f, "etc", "permissions"), ALLOW_LIBS); + } } void readPermissions(File libraryDir, int permissionFlag) { |