From dbffa5d5b5b3d183016c03953d3288f14339c7de Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 14 Nov 2025 16:39:27 +0000 Subject: [PATCH 1/2] Initial plan From 7584dc284e4a3c551100c06071c91d5abade2879 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 14 Nov 2025 16:57:29 +0000 Subject: [PATCH 2/2] Add OpusDecoder test and fix 3-byte int parsing bug Co-authored-by: futpib <4330357+futpib@users.noreply.github.com> --- src/dalvikExecutableParser.ts | 8 ++++---- src/dalvikExecutableParserAgainstSmaliParser.test.ts | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/dalvikExecutableParser.ts b/src/dalvikExecutableParser.ts index b47ae8b..e9bf510 100644 --- a/src/dalvikExecutableParser.ts +++ b/src/dalvikExecutableParser.ts @@ -947,11 +947,11 @@ const encodedValueIntParser: Parser { - const firstByte = uint8Array[0]; - const firstBit = (firstByte & 0b1000_0000) >> 7; - const extensionByte = firstBit === 1 ? 0xFF : 0x00; + const lastByte = uint8Array[uint8Array.length - 1]; + const signBit = (lastByte & 0b1000_0000) >> 7; + const extensionByte = signBit === 1 ? 0xFF : 0x00; - const buffer = Buffer.from([ extensionByte, ...uint8Array ]); + const buffer = Buffer.from([ ...uint8Array, extensionByte ]); return { type: 'int' as const, value: buffer.readInt32LE(0) }; }, ); diff --git a/src/dalvikExecutableParserAgainstSmaliParser.test.ts b/src/dalvikExecutableParserAgainstSmaliParser.test.ts index f60dc2b..653a795 100644 --- a/src/dalvikExecutableParserAgainstSmaliParser.test.ts +++ b/src/dalvikExecutableParserAgainstSmaliParser.test.ts @@ -305,6 +305,7 @@ const testCasesByCid: Record