summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Luke Huang <huangluke@google.com> 2019-12-16 20:22:12 +0800
committer Luke Huang <huangluke@google.com> 2019-12-17 19:37:54 +0800
commit1414c61d29be89ffed02fc40b07d39eb2760b203 (patch)
treee2413fc8ee9f5065f8351c820ddfd109d7e50d43
parent41b9203793e83223ae770237706159c3e2bbf1d3 (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.java14
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