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

Commit 8af83ccd authored by Zhi Dou's avatar Zhi Dou
Browse files

change fileinputstream to filechannel

The restrict mode doesn't allow to have disk read from main thread. Some
apps enabled this check. The code in the dependencies of the
fileinputstream. This chagne switch to filechannel.

Test: presubmit
Bug: 356614910
Change-Id: Icf2175fe75ed1bfad4a048ead680b08e57d6c2ca
parent a4007985
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -19,9 +19,10 @@ package android.aconfig.storage;
import android.compat.annotation.UnsupportedAppUsage;

import java.io.Closeable;
import java.io.FileInputStream;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;

/** @hide */
public class StorageInternalReader {
@@ -69,16 +70,15 @@ public class StorageInternalReader {

    // Map a storage file given file path
    private static MappedByteBuffer mapStorageFile(String file) {
        FileInputStream stream = null;
        FileChannel channel = null;
        try {
            stream = new FileInputStream(file);
            FileChannel channel = stream.getChannel();
            channel = FileChannel.open(Paths.get(file), StandardOpenOption.READ);
            return channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
        } catch (Exception e) {
            throw new AconfigStorageException(
                    String.format("Fail to mmap storage file %s", file), e);
        } finally {
            quietlyDispose(stream);
            quietlyDispose(channel);
        }
    }