{"record":{"id":"c6654858ae50e5ec","repo":"skylot/jadx","slug":"encountered-unsupported-chunk-type-res-table-type","errorCode":null,"errorMessage":"Encountered unsupported chunk type RES_TABLE_TYPE_OVERLAY_POLICY at offset 0x%x ","messagePattern":"Encountered unsupported chunk type RES_TABLE_TYPE_OVERLAY_POLICY at offset 0x%x ","errorType":"exception","errorClass":"IOException","httpStatus":null,"severity":"warning","filePath":"jadx-core/src/main/java/jadx/core/xmlgen/ResTableBinaryParser.java","lineNumber":197,"sourceCode":"\t\t\tLOG.trace(\"res package chunk start at {} type {}\", chunkStart, type);\n\t\t\tswitch (type) {\n\t\t\t\tcase RES_NULL_TYPE:\n\t\t\t\t\tLOG.info(\"Null chunk type encountered at offset {}\", chunkStart);\n\t\t\t\t\tbreak;\n\t\t\t\tcase RES_TABLE_TYPE_TYPE: // 0x0201\n\t\t\t\t\tparseTypeChunk(chunkStart, pkg);\n\t\t\t\t\tbreak;\n\t\t\t\tcase RES_TABLE_TYPE_SPEC_TYPE: // 0x0202\n\t\t\t\t\tparseTypeSpecChunk(chunkStart);\n\t\t\t\t\tbreak;\n\t\t\t\tcase RES_TABLE_TYPE_LIBRARY: // 0x0203\n\t\t\t\t\tparseLibraryTypeChunk(chunkStart);\n\t\t\t\t\tbreak;\n\t\t\t\tcase RES_TABLE_TYPE_OVERLAY: // 0x0204\n\t\t\t\t\tparseOverlayTypeChunk(chunkStart);\n\t\t\t\t\tbreak;\n\t\t\t\tcase RES_TABLE_TYPE_OVERLAY_POLICY: // 0x0205\n\t\t\t\t\tthrow new IOException(\n\t\t\t\t\t\t\tString.format(\"Encountered unsupported chunk type RES_TABLE_TYPE_OVERLAY_POLICY at offset 0x%x \", chunkStart));\n\t\t\t\tcase RES_TABLE_TYPE_STAGED_ALIAS: // 0x0206\n\t\t\t\t\tparseStagedAliasChunk(chunkStart);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tLOG.warn(\"Unknown chunk type {} encountered at offset {}\", type, chunkStart);\n\t\t\t}\n\t\t}\n\t}\n\n\t@SuppressWarnings(\"unused\")\n\tprivate void parseTypeSpecChunk(long chunkStart) throws IOException {\n\t\tis.checkInt16(0x0010, \"Unexpected type spec header size\");\n\t\tint chunkSize = is.readInt32();\n\t\tlong expectedEndPos = chunkStart + chunkSize;\n\n\t\tint id = is.readInt8();\n\t\tis.skip(3);","sourceCodeStart":179,"sourceCodeEnd":215,"githubUrl":"https://github.com/skylot/jadx/blob/e738a26571d02919f01df40de93bc9a44dee4e18/jadx-core/src/main/java/jadx/core/xmlgen/ResTableBinaryParser.java#L179-L215","documentation":"ResTableBinaryParser encounters a RES_TABLE_TYPE_OVERLAY_POLICY chunk (type 0x0205) in an Android resource table. This chunk type is recognized but not yet implemented by jadx, so parsing is aborted with an IOException rather than silently skipping it.","triggerScenarios":"While iterating package sub-chunks, the switch in parsePackageChunk hits case RES_TABLE_TYPE_OVERLAY_POLICY (0x0205). Instead of parsing or skipping, jadx throws immediately. This chunk appears in APKs built with newer Android SDKs that use runtime resource overlays with policy declarations.","commonSituations":"APKs targeting Android 14+ (API 34+) that include resource overlay policy metadata. System apps or OEM apps using runtime resource overlays (RROs). Testing jadx against modern framework resources.","solutions":["Upgrade jadx to the latest version — overlay policy support may have been added","Run jadx --no-res to skip resource decoding and still get decompiled code","Pre-process the APK with aapt2 to strip or rebuild resources.arsc","Report the APK to jadx maintainers so the chunk type can be implemented"],"exampleFix":"// CLI workaround to skip resources:\n//   jadx --no-res app.apk\n// Programmatic:\njadxArgs.setSkipResources(true);\nJadxDecompiler dc = new JadxDecompiler(jadxArgs);\ndc.load();","handlingStrategy":"fallback","validationCode":"// Check jadx version supports overlay policy before parsing\nif (Jadx.getVersion().compareTo(\"1.4.7\") < 0) {\n    LOG.warn(\"This jadx version may not support RES_TABLE_TYPE_OVERLAY_POLICY\");\n}","typeGuard":null,"tryCatchPattern":"try {\n    resTableParser.decode(stream);\n} catch (IOException e) {\n    if (e.getMessage().contains(\"OVERLAY_POLICY\")) {\n        LOG.info(\"Overlay policy unsupported, retrying with --no-res\");\n        jadxArgs.setSkipResources(true);\n        // retry decompilation\n    }\n}","preventionTips":["Keep jadx updated for new Android format support","Always provide a --no-res fallback for modern APKs","Report unsupported chunk types to maintainers"],"tags":["android","binary-parsing","resource-table","unsupported-format","version-compat"],"backgroundTag":null,"analyzedSha":"e738a26571d02919f01df40de93bc9a44dee4e18","analyzedAt":"2026-08-14T00:10:24.238Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}