Quick Reference Guide
This section introduces the structure components of DexKit queries. Matcher objects can be recursively nested, and all conditions are optional.
FindClass
| Field Name | Type | Description |
|---|
| searchPackages | Collection<String> | List of package names to search |
| excludePackages | Collection<String> | List of excluded package names |
| ignorePackagesCase | Boolean | Whether to ignore package name case |
| searchIn | Collection<ClassData> | Search for classes in the specified list of classes |
| findFirst | Boolean | Return the first result found immediately; results are not guaranteed to be unique due to multi-threading |
| matcher | ClassMatcher | Matching conditions |
FindField
| Field Name | Type | Description |
|---|
| searchPackages | Collection<String> | List of package names to search |
| excludePackages | Collection<String> | List of excluded package names |
| ignorePackagesCase | Boolean | Whether to ignore package name case |
| searchInClasses | Collection<ClassData> | Search for fields in the specified list of classes |
| searchInFields | Collection<FieldData> | Search for fields in the specified list of fields |
| findFirst | Boolean | Return the first result found immediately; results are not guaranteed to be unique due to multi-threading |
| matcher | FieldMatcher | Matching conditions |
FindMethod
| Field Name | Type | Description |
|---|
| searchPackages | Collection<String> | List of package names to search |
| excludePackages | Collection<String> | List of excluded package names |
| ignorePackagesCase | Boolean | Whether to ignore package name case |
| searchInClasses | Collection<ClassData> | Search for methods in the specified list of classes |
| searchInMethods | Collection<MethodData> | Search for methods in the specified list of methods |
| findFirst | Boolean | Return the first result found immediately; results are not guaranteed to be unique due to multi-threading |
| matcher | MethodMatcher | Matching conditions |
BatchFindClassUsingStrings
| Field Name | Type | Description |
|---|
| searchPackages | Collection<String> | List of package names to search |
| excludePackages | Collection<String> | List of excluded package names |
| ignorePackagesCase | Boolean | Whether to ignore package name case |
| searchIn | Collection<ClassData> | Search for classes in the specified list of classes |
| matchers | Collection<StringMatchersGroup> | List of query groups using strings |
BatchFindMethodUsingStrings
| Field Name | Type | Description |
|---|
| searchPackages | Collection<String> | List of package names to search |
| excludePackages | Collection<String> | List of excluded package names |
| ignorePackagesCase | Boolean | Whether to ignore package name case |
| searchInClasses | Collection<ClassData> | Search for methods in the specified list of classes |
| searchInMethods | Collection<MethodData> | Search for methods in the specified list of methods |
| matchers | Collection<StringMatchersGroup> | List of query groups using strings |
AccessFlagsMatcher
| Field Name | Type | Description |
|---|
| modifiers | Int | Bit masks for matching modifiers |
| matchType | MatchType | Matching mode |
AnnotationEncodeValueMatcher
| Field Name | Type | Description |
|---|
| byteValue | Byte | Matched byte |
| shortValue | Short | Matched short integer |
| charValue | Char | Matched character |
| intValue | Int | Matched integer |
| longValue | Long | Matched long integer |
| floatValue | Float | Matched float |
| doubleValue | Double | Matched double precision float |
| stringValue | StringMatcher | Matched string |
| methodValue | MethodMatcher | Matched method |
| enumValue | FieldMatcher | Matched enumeration |
| arrayValue | AnnotationEncodeArrayMatcher | Matched array |
| annotationValue | AnnotationMatcher | Matched annotation |
| nullValue | None | Match null |
| boolValue | Boolean | Matched boolean |
IntRange
| Field Name | Type | Description |
|---|
| min | Int | Minimum value, default is 0 |
| max | Int | Maximum value, default is Int.MAX_VALUE |
NumberEncodeValueMatcher
| Field Name | Type | Description |
|---|
| byteValue | Byte | Matched byte |
| shortValue | Short | Matched short integer |
| charValue | Char | Matched character |
| intValue | Int | Matched integer |
| longValue | Long | Matched long integer |
| floatValue | Float | Matched float |
| doubleValue | Double | Matched double precision float |
OpcodesMatcher
| Field Name | Type | Description |
|---|
| opCodes | Collection<Int> | Matched Int values of opcodes |
| opNames | Collection<String> | Matched names of opcodes (as per smali syntax) |
| matchType | OpCodeMatchType | Matching mode |
| size | IntRange | Total length range of the opcode |
StringMatcher
| Field Name | Type | Description |
|---|
| value | String | Matched string |
| matchType | StringMatchType | Matching mode |
| ignoreCase | Boolean | Ignore case sensitivity |
TargetElementTypesMatcher
| Field Name | Type | Description |
|---|
| types | Collection<TargetElementType> | List of matched annotation element types |
| matchType | MatchType | Matching mode |
AnnotationElementMatcher
AnnotationElementsMatcher
AnnotationEncodeArrayMatcher
AnnotationMatcher
AnnotationsMatcher
ClassMatcher
InterfacesMatcher
| Field Name | Type | Description |
|---|
| interfaces | Collection<ClassMatcher> | List of matched interfaces |
| matchType | MatchType | Matching mode |
| count | IntRange | Number of matched interfaces |
FieldMatcher
FieldsMatcher
| Field Name | Type | Description |
|---|
| fields | Collection<FieldMatcher> | List of matched fields |
| matchType | MatchType | Matching mode |
| count | IntRange | Number of matched fields |
MethodMatcher
MethodsMatcher
ParameterMatcher
ParametersMatcher
| Field Name | Type | Description |
|---|
| params | Collection<ParameterMatcher> | List of matched parameters |
| count | IntRange | Number of matched parameters |
StringMatchersGroup
| Field Name | Type | Description |
|---|
| groupName | String | Group name for the query |
| matchers | Collection<StringMatcher> | List of strings used in the query |
UsingFieldMatcher
EncodeValueByte
| Field Name | Type | Description |
|---|
| value | Byte | byte value |
EncodeValueShort
| Field Name | Type | Description |
|---|
| value | Short | short integer value |
EncodeValueChar
| Field Name | Type | Description |
|---|
| value | Char | character value |
EncodeValueInt
| Field Name | Type | Description |
|---|
| value | Int | integer value |
EncodeValueLong
| Field Name | Type | Description |
|---|
| value | Long | long integer value |
EncodeValueFloat
| Field Name | Type | Description |
|---|
| value | Float | float value |
EncodeValueDouble
| Field Name | Type | Description |
|---|
| value | Double | double value |
EncodeValueString
| Field Name | Type | Description |
|---|
| value | String | string value |
EncodeValueNull
This object has no fields.
EncodeValueBoolean
| Field Name | Type | Description |
|---|
| value | Boolean | boolean value |
Enumerations
AnnotationEncodeValueType
| Field Name | Type | Description |
|---|
| ByteValue | Enum | Byte type |
| ShortValue | Enum | Short integer type |
| CharValue | Enum | Character type |
| IntValue | Enum | Integer type |
| LongValue | Enum | Long integer type |
| FloatValue | Enum | Float type |
| DoubleValue | Enum | Double precision float type |
| StringValue | Enum | String type |
| TypeValue | Enum | Type type |
| MethodValue | Enum | Method type |
| EnumValue | Enum | Enum type |
| ArrayValue | Enum | Array type |
| AnnotationValue | Enum | Annotation type |
| NullValue | Enum | Null type |
| BoolValue | Enum | Boolean type |
AnnotationVisibilityType
Refer to Visibility valuesopen in new window
| Field Name | Type | Description |
|---|
| Build | Enum | Visible at build time |
| Runtime | Enum | Visible at runtime |
| System | Enum | Visible to the system |
MatchType
| Field Name | Type | Description |
|---|
| Contains | Enum | Contains |
| Equals | Enum | Equals |
NumberEncodeValueType
| Field Name | Type | Description |
|---|
| ByteValue | Enum | Byte type |
| ShortValue | Enum | Short integer type |
| CharValue | Enum | Character type |
| IntValue | Enum | Integer type |
| LongValue | Enum | Long integer type |
| FloatValue | Enum | Float type |
| DoubleValue | Enum | Double precision float type |
OpCodeMatchType
| Field Name | Type | Description |
|---|
| Contains | Enum | Contains |
| StartsWith | Enum | Starts with |
| EndsWith | Enum | Ends with |
| Equals | Enum | Equals |
RetentionPolicyType
This Enum corresponds to java.lang.annotation.RetentionPolicy.
| Field Name | Type | Description |
|---|
| Source | Enum | Source level |
| Class | Enum | Class level |
| Runtime | Enum | Runtime level |
StringMatchType
| Field Name | Type | Description |
|---|
| Contains | Enum | Contains |
| StartsWith | Enum | Starts with |
| EndsWith | Enum | Ends with |
| SimilarRegex | Enum | Regex-like pattern, supporting only ^ and $ |
| Equals | Enum | Equals |
TargetElementType
This Enum corresponds to java.lang.annotation.ElementType.
| Field Name | Type | Description |
|---|
| Type | Enum | Type |
| Field | Enum | Field |
| Method | Enum | Method |
| Parameter | Enum | Parameter |
| Constructor | Enum | Constructor |
| LocalVariable | Enum | Local variable |
| AnnotationType | Enum | Annotation type |
| Package | Enum | Package |
| TypeParameter | Enum | Type parameter |
| TypeUse | Enum | Type use |
UsingType
| Field Name | Type | Description |
|---|
| Any | Enum | Any usage |
| Get | Enum | Get usage |
| Set | Enum | Set usage |