diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ARSCDecoder.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ARSCDecoder.java index 659bf1d0..a91d8531 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ARSCDecoder.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ARSCDecoder.java @@ -138,6 +138,9 @@ public class ARSCDecoder { case Header.XML_TYPE_OVERLAY: readOverlaySpec(); break; + case Header.XML_TYPE_OVERLAY_POLICY: + readOverlayPolicySpec(); + break; case Header.XML_TYPE_STAGED_ALIAS: readStagedAliasSpec(); break; @@ -180,13 +183,11 @@ public class ARSCDecoder { private void readOverlaySpec() throws AndrolibException, IOException { checkChunkType(Header.XML_TYPE_OVERLAY); - String name = mIn.readNullEndedString(128, true); - String actor = mIn.readNullEndedString(128, true); + String name = mIn.readNullEndedString(256, true); + String actor = mIn.readNullEndedString(256, true); LOGGER.fine(String.format("Overlay name: \"%s\", actor: \"%s\")", name, actor)); - while(nextChunk().type == Header.XML_TYPE_OVERLAY_POLICY) { - readOverlayPolicySpec(); - } + nextChunk(); } private void readOverlayPolicySpec() throws AndrolibException, IOException {