diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java index 2b1ad0c7..698690f3 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java @@ -783,18 +783,18 @@ final public class AndrolibResources { try { if (OSDetection.isMacOSX()) { if (OSDetection.is64Bit()) { - aaptBinary = Jar.getResourceAsFile("/prebuilt/aapt/macosx/64/aapt"); + aaptBinary = Jar.getResourceAsFile("/prebuilt/aapt/macosx/64/aapt", AndrolibResources.class); } else { - aaptBinary = Jar.getResourceAsFile("/prebuilt/aapt/macosx/32/aapt"); + aaptBinary = Jar.getResourceAsFile("/prebuilt/aapt/macosx/32/aapt", AndrolibResources.class); } } else if (OSDetection.isUnix()) { if (OSDetection.is64Bit()) { - aaptBinary = Jar.getResourceAsFile("/prebuilt/aapt/linux/64/aapt"); + aaptBinary = Jar.getResourceAsFile("/prebuilt/aapt/linux/64/aapt", AndrolibResources.class); } else { - aaptBinary = Jar.getResourceAsFile("/prebuilt/aapt/linux/32/aapt"); + aaptBinary = Jar.getResourceAsFile("/prebuilt/aapt/linux/32/aapt", AndrolibResources.class); } } else if (OSDetection.isWindows()) { - aaptBinary = Jar.getResourceAsFile("/prebuilt/aapt/windows/aapt.exe"); + aaptBinary = Jar.getResourceAsFile("/prebuilt/aapt/windows/aapt.exe", AndrolibResources.class); } else { LOGGER.warning("Unknown Operating System: " + OSDetection.returnOS()); return null; diff --git a/brut.j.util/src/main/java/brut/util/Jar.java b/brut.j.util/src/main/java/brut/util/Jar.java index 4c945688..a3068088 100644 --- a/brut.j.util/src/main/java/brut/util/Jar.java +++ b/brut.j.util/src/main/java/brut/util/Jar.java @@ -31,16 +31,20 @@ abstract public class Jar { private final static Set mLoaded = new HashSet(); private final static Map mExtracted = new HashMap(); - - public static File getResourceAsFile(String name) throws BrutException { + + public static File getResourceAsFile(String name, Class clazz) throws BrutException { File file = mExtracted.get(name); if (file == null) { - file = extractToTmp(name); + file = extractToTmp(name, clazz); mExtracted.put(name, file); } return file; } + public static File getResourceAsFile(String name) throws BrutException { + return getResourceAsFile(name, Class.class); + } + public static void load(String libPath) { if (mLoaded.contains(libPath)) { return; @@ -56,14 +60,18 @@ abstract public class Jar { System.load(libFile.getAbsolutePath()); } - public static File extractToTmp(String resourcePath) throws BrutException { - return extractToTmp(resourcePath, "brut_util_Jar_"); + public static File extractToTmp(String resourcePath, Class clazz) throws BrutException { + return extractToTmp(resourcePath, "brut_util_Jar_", clazz); + } + + public static File extractToTmp(String resourcePath) throws BrutException { + return extractToTmp(resourcePath, Class.class); } - public static File extractToTmp(String resourcePath, String tmpPrefix) + public static File extractToTmp(String resourcePath, String tmpPrefix, Class clazz) throws BrutException { try { - InputStream in = Class.class.getResourceAsStream(resourcePath); + InputStream in = clazz.getResourceAsStream(resourcePath); if (in == null) { throw new FileNotFoundException(resourcePath); } @@ -79,4 +87,8 @@ abstract public class Jar { "Could not extract resource: " + resourcePath, ex); } } + + public static File extractToTmp(String resourcePath, String tmpPrefix) throws BrutException { + return extractToTmp(resourcePath, tmpPrefix, Class.class); + } }