Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8f036fd4 authored by Tobias Thierer's avatar Tobias Thierer
Browse files

SystemConfig: Tolerate absent native lib paths.

SystemConfig.readPublicNativeLibrariesList() has some hard-coded
paths containing public.libraries*.txt files; these are not
present when this code runs outside of an Android device, for
example in a Robolectric test on host.

This CL changes the code to log a warning, rather than crash,
when one of those folders is missing or inaccessible. Note that
this increases the chance that a future breakage will be missed,
but there already was not test coverage for the method behaving
correctly.

Fixes: 169017157
Test: Checked that the following fails before this but passes
      after this CL: atest BackupManagerServiceRoboTest

Change-Id: Id8430ea68901ce60dcc855f7013bafadea823297
parent ef35e18c
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -1520,7 +1520,12 @@ public class SystemConfig {
        readPublicLibrariesListFile(new File("/vendor/etc/public.libraries.txt"));
        String[] dirs = {"/system/etc", "/system_ext/etc", "/product/etc"};
        for (String dir : dirs) {
            for (File f : (new File(dir)).listFiles()) {
            File[] files = new File(dir).listFiles();
            if (files == null) {
                Slog.w(TAG, "Public libraries file folder missing: " + dir);
                continue;
            }
            for (File f : files) {
                String name = f.getName();
                if (name.startsWith("public.libraries-") && name.endsWith(".txt")) {
                    readPublicLibrariesListFile(f);