[automerge] Optimize EROFS detection code. 2p: 135ac09990

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17546797

Bug: 225092276
Change-Id: Ifb223c3419717fb19ef1cd4ca4b478cc273c68fd
This commit is contained in:
David Anderson
2022-04-06 02:25:34 +00:00
committed by Presubmit Automerger Backend

View File

@@ -58,7 +58,6 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -1487,7 +1486,7 @@ public class SystemConfig {
addFeature(PackageManager.FEATURE_IPSEC_TUNNELS, 0);
}
if (isFilesystemSupported("erofs")) {
if (isErofsSupported()) {
if (isKernelVersionAtLeast(5, 10)) {
addFeature(PackageManager.FEATURE_EROFS, 0);
} else if (isKernelVersionAtLeast(4, 19)) {
@@ -1865,11 +1864,10 @@ public class SystemConfig {
return Process.myUid() == Process.SYSTEM_UID;
}
private static boolean isFilesystemSupported(String fs) {
private static boolean isErofsSupported() {
try {
final byte[] fsTableData = Files.readAllBytes(Paths.get("/proc/filesystems"));
final String fsTable = new String(fsTableData, StandardCharsets.UTF_8);
return fsTable.contains("\t" + fs + "\n");
final Path path = Paths.get("/sys/fs/erofs");
return Files.exists(path);
} catch (Exception e) {
return false;
}