From 085e8f66ef4a6f7c121c1c5408dca76a9c503525 Mon Sep 17 00:00:00 2001 From: Connor Tumbleson Date: Thu, 8 Feb 2018 17:15:38 -0500 Subject: [PATCH] Switch to loop for checking extensions we are treating as raw - 9patch (samsung) - regular (apple) - I imagine this list will grow over time --- .../androlib/res/decoder/ResFileDecoder.java | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) 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 b52d41cd..b44314af 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 @@ -75,10 +75,12 @@ public class ResFileDecoder { outFileName = outResName + ".r.9" + ext; } - // check for samsung qmg & spi - if (inFileName.toLowerCase().endsWith(".qmg") || inFileName.toLowerCase().endsWith(".spi")) { - copyRaw(inDir, outDir, outFileName); - return; + // check for raw 9patch images + for (String extension : RAW_9PATCH_IMAGE_EXTENSIONS) { + if (inFileName.toLowerCase().endsWith("." + extension)) { + copyRaw(inDir, outDir, outFileName); + return; + } } // check for xml 9 patches which are just xml files @@ -100,6 +102,15 @@ public class ResFileDecoder { outFileName = outResName + ext; } } + + // check for raw image + for (String extension : RAW_IMAGE_EXTENSIONS) { + if (inFileName.toLowerCase().endsWith("." + extension)) { + copyRaw(inDir, outDir, outFileName); + return; + } + } + if (!".xml".equals(ext)) { decode(inDir, inFileName, outDir, outFileName, "raw"); return; @@ -148,4 +159,13 @@ public class ResFileDecoder { } private final static Logger LOGGER = Logger.getLogger(ResFileDecoder.class.getName()); + + private final static String[] RAW_IMAGE_EXTENSIONS = new String[] { + "m4a", // apple + }; + + private final static String[] RAW_9PATCH_IMAGE_EXTENSIONS = new String[] { + "qmg", // samsung + "spi", // samsung + }; }