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

Commit af5c516b authored by Howard Chen's avatar Howard Chen Committed by Gerrit Code Review
Browse files

Merge "Corrupt the PersistentDataBlock payload explicitly in factory reset"

parents 996ae3fb 6be69d8f
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -38,11 +38,9 @@ import com.android.internal.annotations.GuardedBy;
import libcore.io.IoUtils;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
@@ -375,11 +373,16 @@ public class PersistentDataBlockService extends SystemService {

        try {
            FileChannel channel = getBlockOutputChannel();
            ByteBuffer buf = ByteBuffer.allocate(DIGEST_SIZE_BYTES + HEADER_SIZE);
            int header_size = DIGEST_SIZE_BYTES + HEADER_SIZE;
            ByteBuffer buf = ByteBuffer.allocate(header_size);
            buf.put(new byte[DIGEST_SIZE_BYTES]);
            buf.putInt(PARTITION_TYPE_MARKER);
            buf.putInt(0);
            channel.write(buf);
            // corrupt the payload explicitly
            int payload_size = (int) getBlockDeviceSize() - header_size;
            buf = ByteBuffer.allocate(payload_size);
            channel.write(buf);
            channel.force(true);
        } catch (IOException e) {
            Slog.e(TAG, "failed to format block", e);