Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
import java.io.File;
import java.io.FileInputStream;
import java.io.DataInputStream;

import java.io.IOException;

public class Main {
    static final byte[] signature = { (byte) 0x03, (byte) 0x48, (byte) 0x85, (byte) 0x46, (byte) 0x03, (byte) 0xf0,
            (byte) 0x34, (byte) 0xf8, (byte) 0x00, (byte) 0x48, (byte) 0x00, (byte) 0x47, (byte) 0xf5, (byte) 0x08,
            (byte) 0x00, (byte) 0x08, (byte) 0x40, (byte) 0x0c, (byte) 0x00, (byte) 0x20, (byte) 0x00, (byte) 0x23,
            (byte) 0x02, (byte) 0xe0, (byte) 0x01, (byte) 0x23, (byte) 0x00, (byte) 0x22, (byte) 0xc0, (byte) 0x46,
            (byte) 0xf0, (byte) 0xb5, (byte) 0xdb, (byte) 0x07, (byte) 0x27, (byte) 0x4e, (byte) 0x00, (byte) 0xf0,
            (byte) 0x3b, (byte) 0xf8, (byte) 0x00, (byte) 0x1b, (byte) 0x49, (byte) 0x1b, (byte) 0x25, (byte) 0x4e,
            (byte) 0x00, (byte) 0xf0, (byte) 0x35, (byte) 0xf8, (byte) 0x00, (byte) 0xf0, (byte) 0x34, (byte) 0xf8,
            (byte) 0x24, (byte) 0x4e, (byte) 0x00, (byte) 0xf0, (byte) 0x30, (byte) 0xf8, (byte) 0x00, (byte) 0x1b,
            (byte) 0x49, (byte) 0x1b };

    static int readFirmwareFirmware(File fp) {
        try {
            FileInputStream fis = new FileInputStream(fp);
            DataInputStream dis = new DataInputStream(fis);
            if (dis.skipBytes(2048) != 2048) {
                // Log.v("DistoX", "failed skip");
                return 0; // skip 8 bootloader blocks
            }
            byte[] buf = new byte[64];
            if (dis.read(buf, 0, 64) != 64) {
                // Log.v("DistoX", "failed read");
                return 0;
            }
            for (int k = 0; k < 64; ++k) {
                // Log.v("DistoX", "byte " + k + " " + buf[k] + " sign " + signature[k] );
                if (k == 6 || k == 7 || k == 16 || k == 17)
                    continue;
                if (buf[k] != signature[k])
                    return 0;
            }
            if (buf[7] == (byte) 0xf8) {
                if (buf[6] == (byte) 0x34) {
                    return 21;
                } else if (buf[6] == (byte) 0x3a) {
                    return 22;
                }
            } else if (buf[7] == (byte) 0xf9) {
                if (buf[6] == (byte) 0x90) {
                    return 23;
                }
            } else if (buf[7] == (byte) 0xfa) {
                if (buf[6] == (byte) 0x0a) {
                    return 24;
                }
            }
        } catch (IOException e) {
        }
        return 0;
    }
}