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

Commit 757dcfc3 authored by Ken Sumrall's avatar Ken Sumrall Committed by Android Git Automerger
Browse files

am d3fbba15: Merge "Upload fsck logs to the dropbox when error found" into klp-dev

* commit 'd3fbba15':
  Upload fsck logs to the dropbox when error found
parents 8db6517e d3fbba15
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -127,6 +127,7 @@ public class BootReceiver extends BroadcastReceiver {
            addFileToDropBox(db, prefs, headers, "/data/dontpanic/apanic_threads",
                    -LOG_SIZE, "APANIC_THREADS");
            addAuditErrorsToDropBox(db, prefs, headers, -LOG_SIZE, "SYSTEM_AUDIT");
            addFsckErrorsToDropBox(db, prefs, headers, -LOG_SIZE, "SYSTEM_FSCK");
        } else {
            if (db != null) db.addText("SYSTEM_RESTART", headers);
        }
@@ -203,4 +204,31 @@ public class BootReceiver extends BroadcastReceiver {
        Slog.i(TAG, "Copied " + sb.toString().length() + " worth of audits to DropBox");
        db.addText(tag, headers + sb.toString());
    }

    private static void addFsckErrorsToDropBox(DropBoxManager db,  SharedPreferences prefs,
            String headers, int maxSize, String tag) throws IOException {
        boolean upload_needed = false;
        if (db == null || !db.isTagEnabled(tag)) return;  // Logging disabled
        Slog.i(TAG, "Checking for fsck errors");

        File file = new File("/dev/fscklogs/log");
        long fileTime = file.lastModified();
        if (fileTime <= 0) return;  // File does not exist

        String log = FileUtils.readTextFile(file, maxSize, "[[TRUNCATED]]\n");
        StringBuilder sb = new StringBuilder();
        for (String line : log.split("\n")) {
            if (line.contains("FILE SYSTEM WAS MODIFIED")) {
                upload_needed = true;
                break;
            }
        }

        if (upload_needed) {
            addFileToDropBox(db, prefs, headers, "/dev/fscklogs/log", maxSize, tag);
        }

        // Remove the file so we don't re-upload if the runtime restarts.
        file.delete();
    }
}