Allow default permission exceptions to be read from vendor partition
Soc vendors should be allowed to add their own default permission exceptions because they can install their own apps in /vendor/app. Test: building succeeded and tested on sailfish. Bug: 35369237 Change-Id: I7fd0044f4edee6524232c6f8d77481c26535e1d6
This commit is contained in:
@@ -59,6 +59,7 @@ import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@@ -1035,14 +1036,22 @@ final class DefaultPermissionGrantPolicy {
|
||||
}
|
||||
}
|
||||
|
||||
private File[] getDefaultPermissionFiles() {
|
||||
ArrayList<File> ret = new ArrayList<File>();
|
||||
File dir = new File(Environment.getRootDirectory(), "etc/default-permissions");
|
||||
if (dir.isDirectory() && dir.canRead()) {
|
||||
Collections.addAll(ret, dir.listFiles());
|
||||
}
|
||||
dir = new File(Environment.getVendorDirectory(), "etc/default-permissions");
|
||||
if (dir.isDirectory() && dir.canRead()) {
|
||||
Collections.addAll(ret, dir.listFiles());
|
||||
}
|
||||
return ret.isEmpty() ? null : ret.toArray(new File[0]);
|
||||
}
|
||||
|
||||
private @NonNull ArrayMap<String, List<DefaultPermissionGrant>>
|
||||
readDefaultPermissionExceptionsLPw() {
|
||||
File dir = new File(Environment.getRootDirectory(), "etc/default-permissions");
|
||||
if (!dir.exists() || !dir.isDirectory() || !dir.canRead()) {
|
||||
return new ArrayMap<>(0);
|
||||
}
|
||||
|
||||
File[] files = dir.listFiles();
|
||||
File[] files = getDefaultPermissionFiles();
|
||||
if (files == null) {
|
||||
return new ArrayMap<>(0);
|
||||
}
|
||||
@@ -1052,7 +1061,7 @@ final class DefaultPermissionGrantPolicy {
|
||||
// Iterate over the files in the directory and scan .xml files
|
||||
for (File file : files) {
|
||||
if (!file.getPath().endsWith(".xml")) {
|
||||
Slog.i(TAG, "Non-xml file " + file + " in " + dir + " directory, ignoring");
|
||||
Slog.i(TAG, "Non-xml file " + file + " in " + file.getParent() + " directory, ignoring");
|
||||
continue;
|
||||
}
|
||||
if (!file.canRead()) {
|
||||
|
||||
Reference in New Issue
Block a user