diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/HeaderItem.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/HeaderItem.java index ca55d67c..3499eadc 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/HeaderItem.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/raw/HeaderItem.java @@ -51,9 +51,15 @@ public class HeaderItem { public static final int CHECKSUM_OFFSET = 8; + // this is the start of the checksumed data + public static final int CHECKSUM_DATA_START_OFFSET = 12; public static final int SIGNATURE_OFFSET = 12; public static final int SIGNATURE_SIZE = 20; + // this is the start of the sha-1 hashed data + public static final int SIGNATURE_DATA_START_OFFSET = 32; + public static final int FILE_SIZE_OFFSET = 32; + public static final int HEADER_SIZE_OFFSET = 36; public static final int ENDIAN_TAG_OFFSET = 40; diff --git a/dexlib2/src/main/java/org/jf/dexlib2/writer/DexWriter.java b/dexlib2/src/main/java/org/jf/dexlib2/writer/DexWriter.java index 1886db0c..fef28015 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/writer/DexWriter.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/writer/DexWriter.java @@ -236,7 +236,7 @@ public abstract class DexWriter< } byte[] buffer = new byte[4 * 1024]; - InputStream input = dataStore.readAt(HeaderItem.HEADER_SIZE_OFFSET); + InputStream input = dataStore.readAt(HeaderItem.SIGNATURE_DATA_START_OFFSET); int bytesRead = input.read(buffer); while (bytesRead >= 0) { md.update(buffer, 0, bytesRead); @@ -258,7 +258,7 @@ public abstract class DexWriter< Adler32 a32 = new Adler32(); byte[] buffer = new byte[4 * 1024]; - InputStream input = dataStore.readAt(HeaderItem.SIGNATURE_OFFSET); + InputStream input = dataStore.readAt(HeaderItem.CHECKSUM_DATA_START_OFFSET); int bytesRead = input.read(buffer); while (bytesRead >= 0) { a32.update(buffer, 0, bytesRead);