Class BinaryXMLParser


public class BinaryXMLParser extends CommonBinaryParser
  • Field Details

    • LOG

      private static final org.slf4j.Logger LOG
    • rootNode

      private final RootNode rootNode
    • manifestAttributes

      private final ManifestAttributes manifestAttributes
    • attrNewLine

      private final boolean attrNewLine
    • resNames

      private final Map<Integer,String> resNames
    • nsMap

      private Map<String,String> nsMap
    • nsMapGenerated

      private Set<String> nsMapGenerated
    • definedNamespaces

      private Set<String> definedNamespaces
    • tagAttrDeobfNames

      private final Map<String,String> tagAttrDeobfNames
    • writer

      private ICodeWriter writer
    • strings

      private BinaryXMLStrings strings
    • currentTag

      private String currentTag
    • firstElement

      private boolean firstElement
    • valuesParser

      private ValuesParser valuesParser
    • isLastEnd

      private boolean isLastEnd
    • isOneLine

      private boolean isOneLine
    • namespaceDepth

      private int namespaceDepth
    • resourceIds

      @Nullable private @org.jetbrains.annotations.Nullable int[] resourceIds
    • appPackageName

      private String appPackageName
    • classNameCache

      private Map<String,ClassNode> classNameCache
  • Constructor Details

    • BinaryXMLParser

      public BinaryXMLParser(RootNode rootNode)
  • Method Details

    • parse

      public ICodeInfo parse(InputStream inputStream) throws IOException
      Throws:
      IOException
    • isBinaryXml

      private boolean isBinaryXml() throws IOException
      Throws:
      IOException
    • decode

      void decode() throws IOException
      Throws:
      IOException
    • parseResourceMap

      private void parseResourceMap() throws IOException
      Throws:
      IOException
    • parseNameSpace

      private void parseNameSpace() throws IOException
      Throws:
      IOException
    • parseNameSpaceEnd

      private void parseNameSpaceEnd() throws IOException
      Throws:
      IOException
    • parseCData

      private void parseCData() throws IOException
      Throws:
      IOException
    • parseElement

      private void parseElement() throws IOException
      Throws:
      IOException
    • parseAttribute

      private void parseAttribute(int i, boolean newLine, Set<String> attrCache, int attributeSize) throws IOException
      Throws:
      IOException
    • getAttributeNS

      private String getAttributeNS(int attributeNS, boolean newLine)
    • generateNameForNS

      private String generateNameForNS(String attrUrl, boolean newLine)
    • getAttributeName

      private String getAttributeName(int id)
    • getString

      private String getString(int strId)
    • decodeAttribute

      private void decodeAttribute(int attributeNS, int attrValDataType, int attrValData, String attrFullName)
    • parseElementEnd

      private void parseElementEnd() throws IOException
      Throws:
      IOException
    • getValidTagAttributeName

      private String getValidTagAttributeName(String originalName)
    • generateTagAttrName

      private static String generateTagAttrName()
    • attachClassNode

      private void attachClassNode(ICodeWriter writer, String attrFullName, String clsName)
    • deobfClassName

      private String deobfClassName(String className)
    • isDeobfCandidateAttr

      private boolean isDeobfCandidateAttr(String attrFullName)
    • memorizePackageName

      private void memorizePackageName(String attrFullName, String attrValue)