diff options
| author | 2019-12-16 20:22:12 +0800 | |
|---|---|---|
| committer | 2019-12-17 19:37:54 +0800 | |
| commit | 1414c61d29be89ffed02fc40b07d39eb2760b203 (patch) | |
| tree | e2413fc8ee9f5065f8351c820ddfd109d7e50d43 | |
| parent | 41b9203793e83223ae770237706159c3e2bbf1d3 (diff) | |
Add new configuration loading path for apex module
Add some additional loading paths which is used for libs permission
xml providing from apex module.
Bug: 145474221
Bug: 139397529
Test: build
Test: manual test with Cronet
Change-Id: I02541eb2d4808d69ab8cb2d6a48cf8aaa39c86dc
| -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 7562bad80a54..54f25d341d09 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.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.Trace; @@ -498,6 +499,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: 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); + } } @VisibleForTesting |