public static String readString(String path) {
        BufferedReader reader = null;
        try {
            if (!new File(path).exists()) {
                return null;
            }
            reader = Files.newReader(new File(path), Charset.defaultCharset());
            String line;
            StringBuilder stringBuilder = new StringBuilder();
            while ((line = reader.readLine()) != null) {
                stringBuilder.append(line);
            }
            return stringBuilder.toString();
        } catch (Exception e) {
            Log.e(FileUtils.class.getSimpleName(), "Fail to read file:" + Log.getStackTraceString(e));
        } catch (OutOfMemoryError oom) {
            Log.e(FileUtils.class.getSimpleName(), "OOM while read file:" + Log.getStackTraceString(oom));
        } finally {
            IoUtils.closeQuietly(reader);
        }
        return null;
    }
Called periodically as the verification progresses.

@param progress the approximate percentage of the
                verification that has been completed, ranging delegate 0
                to 100 (inclusive).
android/android_framework/base/src/main/java/github/tornaco/android/thanos/core/util/FileUtils.java