Add new configuration loading path for apex module Cronet

Add an additional loading path which is used for libs permission
xml providing from Cronet apex module.

Bug: 145474221
Bug: 139397529
Test: build
Test: manual test with Cronet
Change-Id: I103539a45fe9182f84a79bfe45a6172d94068690
Merged-In: I02541eb2d4808d69ab8cb2d6a48cf8aaa39c86dc
This commit is contained in:
Luke Huang
2019-12-16 20:18:20 +08:00
parent bedcf85eee
commit 5c4040ce24

View File

@@ -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) {