public class org.jf.baksmali.DeodexCommand extends org.jf.baksmali.DisassembleCommand
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jf.baksmali.DeodexCommand
super_class: org.jf.baksmali.DisassembleCommand
{
protected org.jf.baksmali.AnalysisArguments$CheckPackagePrivateArgument checkPackagePrivateArgument;
descriptor: Lorg/jf/baksmali/AnalysisArguments$CheckPackagePrivateArgument;
flags: (0x0004) ACC_PROTECTED
RuntimeVisibleAnnotations:
com.beust.jcommander.ParametersDelegate()
private java.lang.String inlineTable;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.beust.jcommander.Parameter(names = {"--inline-table", "--inline", "--it"}, description = "Specify a file containing a custom inline method table to use. See the \"deodexerant\" tool in the smali github repository to dump the inline method table from a device that uses dalvik.")
org.jf.util.jcommander.ExtendedParameter(argumentNames = {"file"})
public void <init>(java.util.List<com.beust.jcommander.JCommander>);
descriptor: (Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial org.jf.baksmali.DisassembleCommand.<init>:(Ljava/util/List;)V
1: aload 0
new org.jf.baksmali.AnalysisArguments$CheckPackagePrivateArgument
dup
invokespecial org.jf.baksmali.AnalysisArguments$CheckPackagePrivateArgument.<init>:()V
putfield org.jf.baksmali.DeodexCommand.checkPackagePrivateArgument:Lorg/jf/baksmali/AnalysisArguments$CheckPackagePrivateArgument;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jf/baksmali/DeodexCommand;
0 3 1 commandAncestors Ljava/util/List<Lcom/beust/jcommander/JCommander;>;
Signature: (Ljava/util/List<Lcom/beust/jcommander/JCommander;>;)V
RuntimeVisibleTypeAnnotations:
METHOD_FORMAL_PARAMETER
javax.annotation.Nonnull()
RuntimeVisibleParameterAnnotations:
0:
javax.annotation.Nonnull()
MethodParameters:
Name Flags
commandAncestors
protected org.jf.baksmali.BaksmaliOptions getOptions();
descriptor: ()Lorg/jf/baksmali/BaksmaliOptions;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=4, args_size=1
start local 0 0: aload 0
invokespecial org.jf.baksmali.DisassembleCommand.getOptions:()Lorg/jf/baksmali/BaksmaliOptions;
astore 1
start local 1 1: aload 1
iconst_1
putfield org.jf.baksmali.BaksmaliOptions.deodex:Z
2: aload 0
getfield org.jf.baksmali.DeodexCommand.dexFile:Lorg/jf/dexlib2/dexbacked/DexBackedDexFile;
instanceof org.jf.dexlib2.dexbacked.DexBackedOdexFile
ifeq 18
3: aload 0
getfield org.jf.baksmali.DeodexCommand.inlineTable:Ljava/lang/String;
ifnonnull 8
4: aload 1
5: aload 0
getfield org.jf.baksmali.DeodexCommand.dexFile:Lorg/jf/dexlib2/dexbacked/DexBackedDexFile;
checkcast org.jf.dexlib2.dexbacked.DexBackedOdexFile
invokevirtual org.jf.dexlib2.dexbacked.DexBackedOdexFile.getOdexVersion:()I
6: invokestatic org.jf.dexlib2.analysis.InlineMethodResolver.createInlineMethodResolver:(I)Lorg/jf/dexlib2/analysis/InlineMethodResolver;
putfield org.jf.baksmali.BaksmaliOptions.inlineResolver:Lorg/jf/dexlib2/analysis/InlineMethodResolver;
7: goto 18
8: StackMap locals: org.jf.baksmali.BaksmaliOptions
StackMap stack:
new java.io.File
dup
aload 0
getfield org.jf.baksmali.DeodexCommand.inlineTable:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 2
start local 2 9: aload 2
invokevirtual java.io.File.exists:()Z
ifne 12
10: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Could not find file: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.jf.baksmali.DeodexCommand.inlineTable:Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
11: iconst_m1
invokestatic java.lang.System.exit:(I)V
12: StackMap locals: java.io.File
StackMap stack:
aload 1
new org.jf.dexlib2.analysis.CustomInlineMethodResolver
dup
aload 1
getfield org.jf.baksmali.BaksmaliOptions.classPath:Lorg/jf/dexlib2/analysis/ClassPath;
aload 2
invokespecial org.jf.dexlib2.analysis.CustomInlineMethodResolver.<init>:(Lorg/jf/dexlib2/analysis/ClassPath;Ljava/io/File;)V
putfield org.jf.baksmali.BaksmaliOptions.inlineResolver:Lorg/jf/dexlib2/analysis/InlineMethodResolver;
13: goto 18
StackMap locals:
StackMap stack: java.io.IOException
14: astore 3
start local 3 15: getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "Error while reading file: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
16: aload 3
getstatic java.lang.System.err:Ljava/io/PrintStream;
invokevirtual java.io.IOException.printStackTrace:(Ljava/io/PrintStream;)V
17: iconst_m1
invokestatic java.lang.System.exit:(I)V
end local 3 end local 2 18: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/jf/baksmali/DeodexCommand;
1 19 1 options Lorg/jf/baksmali/BaksmaliOptions;
9 18 2 inlineTableFile Ljava/io/File;
15 18 3 ex Ljava/io/IOException;
Exception table:
from to target type
12 13 14 Class java.io.IOException
protected boolean shouldCheckPackagePrivateAccess();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jf.baksmali.DeodexCommand.checkPackagePrivateArgument:Lorg/jf/baksmali/AnalysisArguments$CheckPackagePrivateArgument;
getfield org.jf.baksmali.AnalysisArguments$CheckPackagePrivateArgument.checkPackagePrivateAccess:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jf/baksmali/DeodexCommand;
protected boolean needsClassPath();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jf/baksmali/DeodexCommand;
protected boolean showDeodexWarning();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jf/baksmali/DeodexCommand;
}
SourceFile: "DeodexCommand.java"
InnerClasses:
public CheckPackagePrivateArgument = org.jf.baksmali.AnalysisArguments$CheckPackagePrivateArgument of org.jf.baksmali.AnalysisArguments
RuntimeVisibleAnnotations:
com.beust.jcommander.Parameters(commandDescription = "Deodexes an odex/oat file")
org.jf.util.jcommander.ExtendedParameters(commandName = "deodex", commandAliases = {"de", "x"})