diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/Androlib.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/Androlib.java index 8c197131..a36468ae 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/Androlib.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/Androlib.java @@ -177,19 +177,19 @@ public class Androlib { for (String file : files) { if (isAPKFileNames(file) && unk.getCompressionLevel(file) == 0) { - String ext = ""; + String extOrFile = ""; if (unk.getSize(file) != 0) { - ext = FilenameUtils.getExtension(file); + extOrFile = FilenameUtils.getExtension(file); } - if (ext.isEmpty() || !NO_COMPRESS_PATTERN.matcher(ext).find()) { - ext = file; - if (mAndRes.ObfFiles.containsKey(ext)) { - ext = mAndRes.ObfFiles.get(ext); + if (extOrFile.isEmpty() || !NO_COMPRESS_PATTERN.matcher(extOrFile).find()) { + extOrFile = file; + if (mAndRes.mResFileMapping.containsKey(extOrFile)) { + extOrFile = mAndRes.mResFileMapping.get(extOrFile); } } - if (!uncompressedFilesOrExts.contains(ext)) { - uncompressedFilesOrExts.add(ext); + if (!uncompressedFilesOrExts.contains(extOrFile)) { + uncompressedFilesOrExts.add(extOrFile); } } } 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 59b18213..e9415efe 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 @@ -247,7 +247,7 @@ final public class AndrolibResources { LOGGER.info("Decoding file-resources..."); for (ResResource res : pkg.listFiles()) { - fileDecoder.decode(res, in, out, ObfFiles); + fileDecoder.decode(res, in, out, mResFileMapping); } LOGGER.info("Decoding values */* XMLs..."); @@ -1041,7 +1041,7 @@ final public class AndrolibResources { public BuildOptions buildOptions; - public Map ObfFiles = new HashMap(); + public Map mResFileMapping = new HashMap(); // TODO: dirty static hack. I have to refactor decoding mechanisms. public static boolean sKeepBroken = false; diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ResFileDecoder.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ResFileDecoder.java index 351a6819..75f67a8c 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ResFileDecoder.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ResFileDecoder.java @@ -38,11 +38,11 @@ public class ResFileDecoder { this.mDecoders = decoders; } - public void decode(ResResource res, Directory inDir, Directory outDir, Map obfFiles) + public void decode(ResResource res, Directory inDir, Directory outDir, Map resFileMapping) throws AndrolibException { ResFileValue fileValue = (ResFileValue) res.getValue(); - String inFileFullName = fileValue.toString(); + String inFilePath = fileValue.toString(); String inFileName = fileValue.getStrippedPath(); String outResName = res.getFilePath(); String typeName = res.getResSpec().getType().getName(); @@ -57,9 +57,9 @@ public class ResFileDecoder { outFileName = outResName + ext; } - String outFileFullName = "res/"+outFileName; - if (!inFileFullName.equals(outFileFullName)) { - obfFiles.put(inFileFullName, outFileFullName); + String outFilePath = "res/" + outFileName; + if (!inFilePath.equals(outFilePath)) { + resFileMapping.put(inFilePath, outFilePath); } try {