From dd22a795d86aa1461d85c452cae7b7b811c462e2 Mon Sep 17 00:00:00 2001 From: Ben Gruver Date: Mon, 15 May 2017 16:25:10 -0700 Subject: [PATCH] Add an option to baksmali to allow disassembling odex opcodes These instructions should never be present in a dex file, only in odex/oat files. However, it's sometimes useful to be able to disassemble an otherwise valid dex file that happens to contain odex instructions. --- .../src/main/java/org/jf/baksmali/DisassembleCommand.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/baksmali/src/main/java/org/jf/baksmali/DisassembleCommand.java b/baksmali/src/main/java/org/jf/baksmali/DisassembleCommand.java index 2e3eb79e..eb670df4 100644 --- a/baksmali/src/main/java/org/jf/baksmali/DisassembleCommand.java +++ b/baksmali/src/main/java/org/jf/baksmali/DisassembleCommand.java @@ -132,6 +132,10 @@ public class DisassembleCommand extends DexInputCommand { "fields from the current class.") private boolean implicitReferences = false; + @Parameter(names = "--allow-odex-opcodes", + description = "Allows odex opcodes to be disassembled, even if the result won't be able to be reassembled.") + private boolean allowOdex = false; + @Parameter(names = "--classes", description = "A comma separated list of classes. Only disassemble these classes") @ExtendedParameter(argumentNames = "classes") @@ -282,6 +286,10 @@ public class DisassembleCommand extends DexInputCommand { dexFile.getClasses()); } + if (allowOdex) { + options.allowOdex = true; + } + return options; } }