From 7adce3657fdc4feb3a16b0638f2cbc2f66ea3f2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E8=83=9C?= Date: Thu, 30 May 2024 17:13:52 +0800 Subject: [PATCH] fix #374 read centralDirStartOffset fail when the apk filesize > 2g --- .../src/main/java/com/meituan/android/walle/ApkUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/payload_reader/src/main/java/com/meituan/android/walle/ApkUtil.java b/payload_reader/src/main/java/com/meituan/android/walle/ApkUtil.java index e5151da..a730064 100644 --- a/payload_reader/src/main/java/com/meituan/android/walle/ApkUtil.java +++ b/payload_reader/src/main/java/com/meituan/android/walle/ApkUtil.java @@ -126,7 +126,7 @@ public static long findCentralDirStartOffset(final FileChannel fileChannel, fina zipCentralDirectoryStart.order(ByteOrder.LITTLE_ENDIAN); fileChannel.position(fileChannel.size() - commentLength - 6); // 6 = 2 (Comment length) + 4 (Offset of start of central directory, relative to start of archive) fileChannel.read(zipCentralDirectoryStart); - final long centralDirStartOffset = zipCentralDirectoryStart.getInt(0); + final long centralDirStartOffset = zipCentralDirectoryStart.getInt(0) & 0xFFFFFFFFL; return centralDirStartOffset; }