Skip to main content

Module names

Module names 

Source
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§

FieldRef
A field as Lowner;->name:Type. Every part borrows from the signature.
MappingsHash
SHA-256 of a NameMappings’ contents, part of the decompile cache key (§8). Equal mappings hash equally whatever order they were built in.
MethodRef
A method as Lowner;->name(args)Ret; proto is (args)Ret, which tells overloads apart. Every part borrows from the signature.
NameMappings
The §6.2 mappings object: classes maps a descriptor to the class’s full new descriptor, fields and methods map 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 and NameMappings::hash do not depend on insertion order. The default (empty) value is the identity.
ProguardMapping
A parsed mapping file: the names, and what was skipped on the way.
ProguardWarning
An entry of a mapping file that was read but not used.

Enums§

MappingError
Why a mapping entry was refused.
ProguardError
Why a mapping file could not be read at all.
WarningKind
Why a mapping file entry was skipped.

Constants§

KINDS
The findrefs kinds, as conditions spell them (literal is a string matched as plain text).

Traits§

NameResolver
Resolves the names decompiled source shows, in process (the embedded decompiler) or behind a protocol (external backends get NameMappings as JSON). Keys are the names in the DEX (Lz/c;, Lz/c;->a(I)V); None keeps 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 (ident itself excluded):
denormalize_method_candidates
The DEX names or name(params)ret signatures a method written as decompiled source spells it may stand for (Cdo, m$2, `in`, the class name or constructor for <init>, Java parameter types), in the class class_descriptor when it is known. The method as written is excluded.
denormalize_query
q with its class, method and field names also read as decompiled Java / Kotlin source spells them (see denormalize_class_candidates, denormalize_method_candidates, denormalize_identifier); None when no part of q reads differently. The result still matches what q matches: it is meant to be run when q found 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 as clone are referenced like any class’s) are kept as they are.
is_java_reserved
Whether value is a Java reserved keyword or literal, which decompilers prefix with C when 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). None when it has no parameter list or a type is not recognisable.
member_query
Build a member (method/field) query from CLI-style arguments; exact_name matches 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_condition condition, or several joined with & (a compound: every part must match in one method, none of the ! parts).