Expand description
Class-name normalisation shared by the CLI and MCP, the readings of names
as decompiled Java / Kotlin source spells them (denormalize_query),
and the name mappings handed to decompiler backends (NameMappings).
Structs§
- Field
Ref - A field as
Lowner;->name:Type. Every part borrows from the signature. - Mappings
Hash - SHA-256 of a
NameMappings’ contents, part of the decompile cache key (§8). Equal mappings hash equally whatever order they were built in. - Method
Ref - A method as
Lowner;->name(args)Ret;protois(args)Ret, which tells overloads apart. Every part borrows from the signature. - Name
Mappings - The §6.2
mappingsobject:classesmaps a descriptor to the class’s full new descriptor,fieldsandmethodsmap a member signature to the member’s new simple name. Keys use the DEX’s own names throughout, so a member of a renamed class is still keyed by the old class descriptor. Keys are checked on insertion and kept sorted, so iteration, serialisation andNameMappings::hashdo not depend on insertion order. The default (empty) value is the identity. - Proguard
Mapping - A parsed mapping file: the names, and what was skipped on the way.
- Proguard
Warning - An entry of a mapping file that was read but not used.
Enums§
- Mapping
Error - Why a mapping entry was refused.
- Proguard
Error - Why a mapping file could not be read at all.
- Warning
Kind - Why a mapping file entry was skipped.
Constants§
- KINDS
- The findrefs kinds, as conditions spell them (
literalis a string matched as plain text).
Traits§
- Name
Resolver - Resolves the names decompiled source shows, in process (the embedded
decompiler) or behind a protocol (external backends get
NameMappingsas JSON). Keys are the names in the DEX (Lz/c;,Lz/c;->a(I)V);Nonekeeps the name the program has.
Functions§
- denormalize_
class_ candidates - The Dalvik descriptors a class written as decompiled source spells it may stand for, most likely first (the name as written excluded):
- denormalize_
identifier - The DEX identifiers a decompiled identifier may stand for (
identitself excluded): - denormalize_
method_ candidates - The DEX names or
name(params)retsignatures a method written as decompiled source spells it may stand for (Cdo,m$2,`in`, the class name orconstructorfor<init>, Java parameter types), in the classclass_descriptorwhen it is known. The method as written is excluded. - denormalize_
query qwith its class, method and field names also read as decompiled Java / Kotlin source spells them (seedenormalize_class_candidates,denormalize_method_candidates,denormalize_identifier);Nonewhen no part ofqreads differently. The result still matches whatqmatches: it is meant to be run whenqfound nothing.- format_
class_ name - Turn
com.poc.Main/com/poc/Main/Lcom/poc/Main;into a Dalvik descriptor. Array descriptors ([Ljava/lang/Object;, whose methods such ascloneare referenced like any class’s) are kept as they are. - is_
java_ reserved - Whether
valueis a Java reserved keyword or literal, which decompilers prefix withCwhen a DEX identifier is spelled like one. - java_
signature_ to_ dalvik loadUrl(java.lang.String, int)→loadUrl(Ljava/lang/String;I): a signature with Java parameter types in Dalvik form (a return type, if any, likewise).Nonewhen it has no parameter list or a type is not recognisable.- member_
query - Build a member (method/field) query from CLI-style arguments;
exact_namematches the member name as a whole instead of as a substring / regex. - parse_
condition - Parse a one-word findrefs condition, as the CLI’s compound and rule options take them:
- parse_
kind - The canonical kind for what an agent wrote: case and plurals do not
matter (
Methods), nor common synonyms (implements,class,call). Unknown kinds fail with the valid ones and the closest of them. - parse_
rule - One rule of a rule set: a
parse_conditioncondition, or several joined with&(a compound: every part must match in one method, none of the!parts).