Package jadx.core.xmlgen
Class ResTableBinaryParser
java.lang.Object
jadx.core.xmlgen.ParserConstants
jadx.core.xmlgen.CommonBinaryParser
jadx.core.xmlgen.ResTableBinaryParser
- All Implemented Interfaces:
IResTableParser
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classprivate static final class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Stringprivate static final org.slf4j.Loggerprivate ResourceStorageprivate final RootNodeprivate BinaryXMLStringsprivate static final ResourceEntryprivate final booleanNo renaming, pattern checking or name generation.Fields inherited from class jadx.core.xmlgen.CommonBinaryParser
isFields inherited from class jadx.core.xmlgen.ParserConstants
ANDROID_NS_URL, ANDROID_NS_VALUE, ATTR_FEW, ATTR_L10N, ATTR_L10N_NOT_REQUIRED, ATTR_L10N_SUGGESTED, ATTR_MANY, ATTR_MAX, ATTR_MIN, ATTR_ONE, ATTR_OTHER, ATTR_TWO, ATTR_TYPE, ATTR_TYPE_ANY, ATTR_TYPE_BOOLEAN, ATTR_TYPE_COLOR, ATTR_TYPE_DIMENSION, ATTR_TYPE_ENUM, ATTR_TYPE_FLAGS, ATTR_TYPE_FLOAT, ATTR_TYPE_FRACTION, ATTR_TYPE_INTEGER, ATTR_TYPE_REFERENCE, ATTR_TYPE_STRING, ATTR_ZERO, COMPLEX_MANTISSA_MASK, COMPLEX_MANTISSA_SHIFT, COMPLEX_RADIX_0P23, COMPLEX_RADIX_16P7, COMPLEX_RADIX_23P0, COMPLEX_RADIX_8P15, COMPLEX_RADIX_MASK, COMPLEX_RADIX_SHIFT, COMPLEX_UNIT_DIP, COMPLEX_UNIT_FRACTION, COMPLEX_UNIT_FRACTION_PARENT, COMPLEX_UNIT_IN, COMPLEX_UNIT_MASK, COMPLEX_UNIT_MM, COMPLEX_UNIT_PT, COMPLEX_UNIT_PX, COMPLEX_UNIT_SHIFT, COMPLEX_UNIT_SP, FLAG_COMPACT, FLAG_COMPLEX, FLAG_OFFSET16, FLAG_PUBLIC, FLAG_SPARSE, FLAG_WEAK, MANTISSA_MULT, NO_ENTRY, PLURALS_MAP, RADIX_MULTS, RES_NULL_TYPE, RES_STRING_POOL_TYPE, RES_TABLE_PACKAGE_TYPE, RES_TABLE_TYPE, RES_TABLE_TYPE_LIBRARY, RES_TABLE_TYPE_OVERLAY, RES_TABLE_TYPE_OVERLAY_POLICY, RES_TABLE_TYPE_SPEC_TYPE, RES_TABLE_TYPE_STAGED_ALIAS, RES_TABLE_TYPE_TYPE, RES_XML_CDATA_TYPE, RES_XML_END_ELEMENT_TYPE, RES_XML_END_NAMESPACE_TYPE, RES_XML_FIRST_CHUNK_TYPE, RES_XML_LAST_CHUNK_TYPE, RES_XML_RESOURCE_MAP_TYPE, RES_XML_START_ELEMENT_TYPE, RES_XML_START_NAMESPACE_TYPE, RES_XML_TYPE, SORTED_FLAG, TYPE_ATTRIBUTE, TYPE_DIMENSION, TYPE_DYNAMIC_ATTRIBUTE, TYPE_DYNAMIC_REFERENCE, TYPE_FIRST_COLOR_INT, TYPE_FIRST_INT, TYPE_FLOAT, TYPE_FRACTION, TYPE_INT_BOOLEAN, TYPE_INT_COLOR_ARGB4, TYPE_INT_COLOR_ARGB8, TYPE_INT_COLOR_RGB4, TYPE_INT_COLOR_RGB8, TYPE_INT_DEC, TYPE_INT_HEX, TYPE_LAST_COLOR_INT, TYPE_LAST_INT, TYPE_NULL, TYPE_REFERENCE, TYPE_STRING, UTF8_FLAG -
Constructor Summary
ConstructorsConstructorDescriptionResTableBinaryParser(RootNode root) ResTableBinaryParser(RootNode root, boolean useRawResNames) -
Method Summary
Modifier and TypeMethodDescriptionprivate ResourceEntrybuildResourceEntry(ResTableBinaryParser.PackageChunk pkg, String config, int resId, String typeName, String origKeyName) voiddecode(InputStream inputStream) (package private) voidstatic StringgetBetterName(ResourceNameSource nameSource, String resName, String codeName) private StringgetNewResName(int resRef, String origKeyName, @Nullable FieldNode constField) private StringgetResName(int resRef, String origKeyName) private EntryConfigprivate voidparseEntry(ResTableBinaryParser.PackageChunk pkg, int typeId, int entryId, String config) private voidparseLibraryTypeChunk(long chunkStart) private voidparseOverlayTypeChunk(long chunkStart) private voidparsePackage(long pkgChunkStart, int headerSize, long pkgChunkEnd) private voidparseStagedAliasChunk(long chunkStart) private voidparseTypeChunk(long start, ResTableBinaryParser.PackageChunk pkg) Parse anResTable_type(except for the 2 bytesuint16_tfromResChunk_header).private voidparseTypeSpecChunk(long chunkStart) private RawValueprivate RawNamedValueprivate StringreadScriptOrVariantChar(int length) private static StringreadScriptOrVariantChar(int length, ParserStream ps) voidsetBaseFileName(String fileName) private char[]unpackLocaleOrRegion(byte in0, byte in1, char base) Methods inherited from class jadx.core.xmlgen.CommonBinaryParser
die, parseStringPool, parseStringPoolNoSize, parseStringPoolNoTypeMethods inherited from class jadx.core.xmlgen.ParserConstants
isResInternalId
-
Field Details
-
LOG
private static final org.slf4j.Logger LOG -
useRawResName
private final boolean useRawResNameNo renaming, pattern checking or name generation. Required for res-map.txt building -
root
-
resStorage
-
strings
-
baseFileName
-
STUB_ENTRY
-
-
Constructor Details
-
ResTableBinaryParser
-
ResTableBinaryParser
-
-
Method Details
-
setBaseFileName
- Specified by:
setBaseFileNamein interfaceIResTableParser
-
decode
- Specified by:
decodein interfaceIResTableParser- Throws:
IOException
-
decodeFiles
- Specified by:
decodeFilesin interfaceIResTableParser
-
decodeTableChunk
- Throws:
IOException
-
parsePackage
- Throws:
IOException
-
parseTypeSpecChunk
- Throws:
IOException
-
parseLibraryTypeChunk
- Throws:
IOException
-
parseTypeChunk
Parse anResTable_type(except for the 2 bytesuint16_tfromResChunk_header).- Throws:
IOException- See Also:
-
parseOverlayTypeChunk
- Throws:
IOException
-
parseStagedAliasChunk
- Throws:
IOException
-
parseEntry
private void parseEntry(ResTableBinaryParser.PackageChunk pkg, int typeId, int entryId, String config) throws IOException - Throws:
IOException
-
buildResourceEntry
private ResourceEntry buildResourceEntry(ResTableBinaryParser.PackageChunk pkg, String config, int resId, String typeName, String origKeyName) -
getResName
-
getNewResName
-
getBetterName
-
parseValueMap
- Throws:
IOException
-
parseValue
- Throws:
IOException
-
parseConfig
- Throws:
IOException
-
unpackLocaleOrRegion
private char[] unpackLocaleOrRegion(byte in0, byte in1, char base) -
readScriptOrVariantChar
- Throws:
IOException
-
readScriptOrVariantChar
- Throws:
IOException
-
getResStorage
- Specified by:
getResStoragein interfaceIResTableParser
-
getStrings
- Specified by:
getStringsin interfaceIResTableParser
-