From c836995ead80bc13e10627e1939f153b2faefc6e Mon Sep 17 00:00:00 2001 From: Connor Tumbleson Date: Fri, 18 Jan 2013 14:26:14 -0600 Subject: [PATCH] optimizations to ApkDecoder regarding reading compression of resources.arsc --- .../main/java/brut/androlib/ApkDecoder.java | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkDecoder.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkDecoder.java index e1ed91e8..8b8f3d8b 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkDecoder.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/ApkDecoder.java @@ -99,13 +99,9 @@ public class ApkDecoder { // read the resources.arsc checking for STORED vs DEFLATE compression // this will determine whether we compress on rebuild or not. JarFile jf = new JarFile(mApkFile.getAbsoluteFile()); - Enumeration e = jf.entries(); - while(e.hasMoreElements()) { - JarEntry je = (JarEntry) e.nextElement(); - if (je.getName().equalsIgnoreCase("resources.arsc")) { - setCompressionType(je.getMethod()); - continue; - } + JarEntry je = jf.getJarEntry("resources.arsc"); + if (je != null) { + setCompressionType(je.getMethod()); } jf.close(); @@ -302,13 +298,7 @@ public class ApkDecoder { private void setCompressionType(int compression) { // check for deflate vs stored - if (compression == ZipEntry.STORED) { - mCompressResources = false; - } else if (compression == ZipEntry.DEFLATED) { - mCompressResources = true; - } else { - mCompressResources = false; - } + mCompressResources = (compression == ZipEntry.STORED) ? false : (compression == ZipEntry.DEFLATED); } private final Androlib mAndrolib;