From 09ee2ce4546fbb5b463cad9d926fbc934441f6bd Mon Sep 17 00:00:00 2001 From: "JesusFreke@JesusFreke.com" Date: Mon, 22 Feb 2010 07:01:58 +0000 Subject: [PATCH] When searching for the boot class path files, try alternate file endings as well git-svn-id: https://smali.googlecode.com/svn/trunk@641 55b6fa8a-2a1e-11de-a435-ffa8d773f76a --- .../jf/dexlib/Code/Analysis/ClassPath.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/dexlib/src/main/java/org/jf/dexlib/Code/Analysis/ClassPath.java b/dexlib/src/main/java/org/jf/dexlib/Code/Analysis/ClassPath.java index 2f5033da..90a6dfd1 100644 --- a/dexlib/src/main/java/org/jf/dexlib/Code/Analysis/ClassPath.java +++ b/dexlib/src/main/java/org/jf/dexlib/Code/Analysis/ClassPath.java @@ -52,7 +52,27 @@ public class ClassPath { File file = new File(classPathDir, bootClassPathEntry); if (!file.exists()) { - continue; + boolean found = false; + int extIndex = bootClassPathEntry.lastIndexOf("."); + + String baseEntry; + if (extIndex == -1) { + baseEntry = bootClassPathEntry; + } else { + baseEntry = bootClassPathEntry.substring(0, extIndex); + } + + for (String ext: new String[]{".odex", ".jar", ".apk", ".zip"}) { + String newEntry = baseEntry + ext; + file = new File(classPathDir, newEntry); + if (file.exists()) { + found = true; + break; + } + } + if (!found) { + continue; + } } if (!file.canRead()) {