From 5e4bae05264e9f1ea1c969971d81d824558cd12f Mon Sep 17 00:00:00 2001 From: Connor Tumbleson Date: Tue, 13 Oct 2015 07:28:43 -0500 Subject: [PATCH] Only stores extension(s) of uncompressed files - fixes #1053 --- .../src/main/java/brut/androlib/Androlib.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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 f82ecca1..8630d1d0 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 @@ -38,6 +38,7 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import java.util.zip.ZipOutputStream; +import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; import org.yaml.snakeyaml.DumperOptions; import org.yaml.snakeyaml.Yaml; @@ -159,14 +160,20 @@ public class Androlib { } } - public void recordUncompressedFiles(ExtFile apkFile, Collection uncompressedFiles) throws AndrolibException { + public void recordUncompressedFiles(ExtFile apkFile, Collection uncompressedExtensions) throws AndrolibException { try { Directory unk = apkFile.getDirectory(); Set files = unk.getFiles(true); + String ext; + for (String file : files) { if (isAPKFileNames(file) && !NO_COMPRESS_PATTERN.matcher(file).find()) { if (unk.getCompressionLevel(file) == 0) { - uncompressedFiles.add(file); + ext = FilenameUtils.getExtension(file); + + if (! uncompressedExtensions.contains(ext)) { + uncompressedExtensions.add(FilenameUtils.getExtension(file)); + } } } }