diff --git a/.classpath b/.classpath index ca5afd1a61e..75481dbe505 100755 --- a/.classpath +++ b/.classpath @@ -19,7 +19,7 @@ - - + + diff --git a/ant.settings.jenkins b/ant.settings.jenkins index 882a5da0ec3..4f2107ab48a 100644 --- a/ant.settings.jenkins +++ b/ant.settings.jenkins @@ -4,8 +4,8 @@ xmlprinter.jar=libs/AXMLPrinter2.jar ## Location of Polyglot classes jar file to link Soot against polyglot.jar=libs/polyglot.jar -dexlib2.jar=libs/dexlib2-2.2b3-55c33ebb.jar -dexlib-utils.jar=libs/util-2.2b3-55c33ebb.jar +dexlib2.jar=libs/dexlib2-2.2b4-adb12356.jar +dexlib-utils.jar=libs/util-2.2b4-adb12356.jar slf4j-api.jar=libs/slf4j-api-1.7.5.jar slf4j-simple.jar=libs/slf4j-simple-1.7.5.jar diff --git a/ant.settings.template b/ant.settings.template index efbcc44326e..6705d22dc4a 100644 --- a/ant.settings.template +++ b/ant.settings.template @@ -4,8 +4,8 @@ xmlprinter.jar=libs/AXMLPrinter2.jar ## Location of Polyglot classes jar file to link Soot against polyglot.jar=libs/polyglot.jar -dexlib2.jar=libs/dexlib2-2.1.3-a5d82813.jar -dexlib-utils.jar=libs/util-2.1.3-a5d82813.jar +dexlib2.jar=libs/dexlib2-2.2b4-adb12356.jar +dexlib-utils.jar=libs/util-2.2b4-adb12356.jar slf4j-api.jar=libs/slf4j-api-1.7.5.jar slf4j-simple.jar=libs/slf4j-simple-1.7.5.jar diff --git a/src/soot/DexClassProvider.java b/src/soot/DexClassProvider.java index ca9565cd054..8328390ef8d 100755 --- a/src/soot/DexClassProvider.java +++ b/src/soot/DexClassProvider.java @@ -125,10 +125,9 @@ private void buildDexIndex(Map index, List classPath) { for (Enumeration entries = archive.entries(); entries.hasMoreElements();) { ZipEntry entry = entries.nextElement(); String entryName = entry.getName(); - if(entryName.endsWith(".dex")){ - entryNames.add(entryName); - if(!Options.v().process_multiple_dex()) - break; + if(entryName.endsWith(".dex")) { + if (Options.v().process_multiple_dex() || entryName.equals("classes.dex")) + entryNames.add(entryName); } } }catch(Exception e){ diff --git a/src/soot/SourceLocator.java b/src/soot/SourceLocator.java index 44e52419b6e..688d27ea8a4 100755 --- a/src/soot/SourceLocator.java +++ b/src/soot/SourceLocator.java @@ -242,7 +242,8 @@ private List getClassesUnder(String aPath, String prefix) { String entryName = entry.getName(); // We are dealing with an apk file if (entryName.endsWith(".dex")) - classes.addAll(DexClassProvider.classesOfDex(new File(aPath), entryName)); + if (Options.v().process_multiple_dex() || entryName.equals("classes.dex")) + classes.addAll(DexClassProvider.classesOfDex(new File(aPath), entryName)); } } catch (IOException e) { throw new CompilationDeathException("Error reasing archive '" + aPath + "'",e); @@ -294,7 +295,8 @@ else if(entryName.endsWith(".dex")){ if(Options.v().process_multiple_dex()){ for(String dexEntryName : dexEntryNames){ try { - classes.addAll(DexClassProvider.classesOfDex(file,dexEntryName)); + classes.addAll(DexClassProvider.classesOfDex( + file,dexEntryName)); } catch (Throwable e) {} /* Ignore unreadable files */ } }else{ diff --git a/src/soot/toDex/DexPrinter.java b/src/soot/toDex/DexPrinter.java index 3e050efdd15..8d77a478d5a 100755 --- a/src/soot/toDex/DexPrinter.java +++ b/src/soot/toDex/DexPrinter.java @@ -156,7 +156,7 @@ public class DexPrinter { public DexPrinter() { int api = Scene.v().getAndroidAPIVersion(); - dexFile = DexBuilder.makeDexBuilder(Opcodes.forApi(api)); + dexFile = new DexBuilder(Opcodes.forApi(api)); } private void printApk(String outputDir, File originalApk) throws IOException {