diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkDecoder.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkDecoder.java index c6fc4ba0..113a2dc3 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkDecoder.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkDecoder.java @@ -71,10 +71,6 @@ public class ApkDecoder { mOutDir = outDir; } - public void setApiLevel(int apiLevel) { - mApiLevel = apiLevel; - } - public void decode() throws AndrolibException, IOException, DirectoryException { try { File outDir = getOutDir(); @@ -221,6 +217,10 @@ public class ApkDecoder { } } + public void setApiLevel(int apiLevel) { + mApiLevel = apiLevel; + } + public void setBaksmaliDebugMode(boolean bakDeb) { mBakDeb = bakDeb; } @@ -420,11 +420,11 @@ public class ApkDecoder { meta.versionInfo = info; } - private void putSharedLibraryInfo(MetaInfo meta) { + private void putSharedLibraryInfo(MetaInfo meta) throws AndrolibException { meta.sharedLibrary = mResTable.getSharedLibrary(); } - private void putSparseResourcesInfo(MetaInfo meta) { + private void putSparseResourcesInfo(MetaInfo meta) throws AndrolibException { meta.sparseResources = mResTable.getSparseResources(); } @@ -454,5 +454,5 @@ public class ApkDecoder { private boolean mBakDeb = true; private Collection mUncompressedFiles; private boolean mAnalysisMode = false; - private int mApiLevel = 15; + private int mApiLevel = 0; } diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/src/SmaliBuilder.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/src/SmaliBuilder.java index f1a17250..5c2c456d 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/src/SmaliBuilder.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/src/SmaliBuilder.java @@ -32,14 +32,11 @@ import java.io.InputStream; import java.util.logging.Logger; public class SmaliBuilder { + public static void build(ExtFile smaliDir, File dexFile, int apiLevel) throws AndrolibException { new SmaliBuilder(smaliDir, dexFile, apiLevel).build(); } - public static void build(ExtFile smaliDir, File dexFile) throws AndrolibException { - new SmaliBuilder(smaliDir, dexFile, 0).build(); - } - private SmaliBuilder(ExtFile smaliDir, File dexFile, int apiLevel) { mSmaliDir = smaliDir; mDexFile = dexFile; 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 37dab151..46bbcd7f 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 @@ -67,7 +67,7 @@ public class SmaliDecoder { } // create the container - MultiDexContainer container = DexFileFactory.loadDexContainer(mApkFile, Opcodes.forApi(mApiLevel)); + MultiDexContainer container = DexFileFactory.loadDexContainer(mApkFile, mApiLevel > 0 ? Opcodes.forApi(mApiLevel) : null); MultiDexContainer.DexEntry dexEntry; DexBackedDexFile dexFile;