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 a3c66b88..1f68d172 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 @@ -619,8 +619,8 @@ final public class AndrolibResources { private ResPackage[] getResPackagesFromApk(ExtFile apkFile,ResTable resTable, boolean keepBroken) throws AndrolibException { try { - return ARSCDecoder.decode(apkFile.getDirectory().getFileInput("resources.arsc"),false, - keepBroken, resTable).getPackages(); + BufferedInputStream bfi = new BufferedInputStream(apkFile.getDirectory().getFileInput("resources.arsc")); + return ARSCDecoder.decode(bfi, false, keepBroken, resTable).getPackages(); } catch (DirectoryException ex) { throw new AndrolibException("Could not load resources.arsc from file: " + apkFile, ex); } diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/xml/ResXmlEncoders.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/xml/ResXmlEncoders.java index 997f581d..8cf7bdb4 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/xml/ResXmlEncoders.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/xml/ResXmlEncoders.java @@ -22,13 +22,15 @@ import java.awt.event.KeyEvent; import java.util.ArrayList; import java.util.List; +import org.apache.commons.lang3.StringUtils; + /** * @author Ryszard Wiśniewski */ public final class ResXmlEncoders { public static String escapeXmlChars(String str) { - return str.replace("&", "&").replace("<", "<"); + return StringUtils.replace(StringUtils.replace(str, "&", "&"), "<", "<"); } public static String encodeAsResXmlAttr(String str) {