Skip to content

Commit 82b1363

Browse files
committed
fix: properly read 'XML_TYPE_OVERLAY_POLICY'
1 parent 603e52d commit 82b1363

File tree

1 file changed

+10
-8
lines changed
  • brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder

1 file changed

+10
-8
lines changed

brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ARSCDecoder.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,15 @@ private ResPackage readTablePackage() throws IOException, AndrolibException {
138138
case Header.XML_TYPE_OVERLAY:
139139
readOverlaySpec();
140140
break;
141+
case Header.XML_TYPE_OVERLAY_POLICY:
142+
readOverlayPolicySpec();
143+
break;
141144
case Header.XML_TYPE_STAGED_ALIAS:
142145
readStagedAliasSpec();
143146
break;
147+
case Header.XML_TYPE_TYPE:
148+
readTableType();
149+
break;
144150
default:
145151
flag = false;
146152
break;
@@ -163,9 +169,7 @@ private void readLibraryType() throws AndrolibException, IOException {
163169
LOGGER.info(String.format("Decoding Shared Library (%s), pkgId: %d", packageName, packageId));
164170
}
165171

166-
while(nextChunk().type == Header.XML_TYPE_TYPE) {
167-
readTableTypeSpec();
168-
}
172+
nextChunk();
169173
}
170174

171175
private void readStagedAliasSpec() throws IOException {
@@ -180,13 +184,11 @@ private void readStagedAliasSpec() throws IOException {
180184

181185
private void readOverlaySpec() throws AndrolibException, IOException {
182186
checkChunkType(Header.XML_TYPE_OVERLAY);
183-
String name = mIn.readNullEndedString(128, true);
184-
String actor = mIn.readNullEndedString(128, true);
187+
String name = mIn.readNullEndedString(256, true);
188+
String actor = mIn.readNullEndedString(256, true);
185189
LOGGER.fine(String.format("Overlay name: \"%s\", actor: \"%s\")", name, actor));
186190

187-
while(nextChunk().type == Header.XML_TYPE_OVERLAY_POLICY) {
188-
readOverlayPolicySpec();
189-
}
191+
nextChunk();
190192
}
191193

192194
private void readOverlayPolicySpec() throws AndrolibException, IOException {

0 commit comments

Comments
 (0)