From 570eaa7023500957341120cfc9712158429a8aeb Mon Sep 17 00:00:00 2001 From: Connor Tumbleson Date: Thu, 20 Jun 2013 09:43:59 -0500 Subject: [PATCH] adapt SmaliDecoder to dexlib2 --- .../java/brut/androlib/src/SmaliDecoder.java | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/src/SmaliDecoder.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/src/SmaliDecoder.java index 872fa644..f8efaa95 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/src/SmaliDecoder.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/src/SmaliDecoder.java @@ -18,8 +18,10 @@ package brut.androlib.src; import brut.androlib.AndrolibException; import org.jf.baksmali.baksmali; -import org.jf.dexlib.Code.Analysis.ClassPath; -import org.jf.dexlib.DexFile; +import org.jf.baksmali.baksmaliOptions; +import org.jf.dexlib2.DexFileFactory; +import org.jf.dexlib2.analysis.ClassPath; +import org.jf.dexlib2.DexFileFactory; import java.io.BufferedReader; import java.io.BufferedWriter; @@ -54,10 +56,24 @@ public class SmaliDecoder { private void decode() throws AndrolibException { try { ClassPath.dontLoadClassPath = mDebug; - baksmali.disassembleDexFile(mApkFile.getAbsolutePath(), - new DexFile(mApkFile), false, mOutDir.toAbsolutePath().toString(), - null, null, null, false, true, true, mBakDeb, false, false, - mDebug ? org.jf.baksmali.main.DIFFPRE : 0, false, false, null, false); + + baksmaliOptions options = new baksmaliOptions(); + + // options + options.deodex = false; + options.outputDirectory = mOutDir.toAbsolutePath().toString(); + options.noParameterRegisters = false; + options.useLocalsDirective = true; + options.useSequentialLabels = true; + options.outputDebugInfo = mBakDeb; + options.addCodeOffsets = false; + options.noAccessorComments = false; + options.registerInfo = (mDebug ? baksmaliOptions.DIFFPRE : 0); + options.ignoreErrors = false; + options.inlineResolver = null; + options.checkPackagePrivateAccess = false; + + baksmali.disassembleDexFile(DexFileFactory.loadDexFile(mApkFile, 0), options); if (mDebug) { Files.walkFileTree(mOutDir, new SmaliFileVisitor());