dexsql-release

mcp
Security Audit
Pass
Health Pass
  • License — License: NOASSERTION
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 111 GitHub stars
Code Pass
  • Code scan — Scanned 8 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

SQL for Android apk and dex files

README.md

DexSQL

English | 简体中文

SQL for Android binaries.

Query classes, methods, strings, and call references in APK and DEX files. Connect it to an AI agent through MCP, or use it from the command line.

Playground · Documentation · Download · Install skill · Benchmarks

Why DexSQL?

AI agents can combine signatures, strings and call relationships in one SQL query across DEX files, returning just the structured results they need. Queries can be generated, refined and saved in scripts for reuse.

DexSQL reads DEX directly and reuses loaded datasets, supporting repeated queries with low latency and a small memory footprint. See the benchmarks for measurements.

The built-in MCP server connects directly to agents, with no GUI required.

flowchart LR
    A["AI client"] -->|stdio MCP| D["DexSQL"]
    D --> F["APK / DEX"]
    A -->|stdio MCP| P["JADX-MCP · Python"]
    P -->|HTTP| J["JADX GUI + plugin · JVM"]
    J --> F

Use with an AI agent

Install the setup skill with the Skills CLI:

npx skills add LSPosed/dexsql-release --skill install-dexsql

Then ask your agent to use install-dexsql to install DexSQL and configure its MCP connection. In Codex, invoke it as $install-dexsql.

The skill downloads a compatible binary from Releases, verifies its SHA-256 checksum, adds the MCP configuration, and checks the connection. It can also use a local executable. The command above installs the skill; the agent performs the actual setup when you invoke it.

Manual MCP setup

Download the standalone executable for Windows x64, Linux x64, Linux ARM64, or macOS 13+ on Apple silicon. Rename it to dexsql.exe on Windows or dexsql on macOS/Linux. On macOS/Linux, run chmod +x /path/to/dexsql.

Save LICENSE and LICENSE-AUXILIARY from the same Release alongside the executable, then register its absolute path. For Codex:

codex mcp add dexsql -- /absolute/path/to/dexsql mcp

For clients that use mcpServers JSON:

{
  "mcpServers": {
    "dexsql": {
      "command": "/absolute/path/to/dexsql",
      "args": ["mcp"]
    }
  }
}

On Windows, use dexsql.exe and escape backslashes in JSON, for example "D:\\Tools\\dexsql.exe". Reload the client's MCP connection if needed. See the Codex MCP documentation for client settings.

Once connected, try:

Open /path/to/app.apk. Find methods referencing this log message, list their callers, and show the relevant Smali.

The server provides its schema and documentation through MCP resources. APK parsing runs locally and leaves the input unchanged. The AI client's settings determine which results are sent to its model.

Performance

Eight queries run against the same QQ 9.3.55 APK, about 372 MiB: class and method lookup, string references, direct and two-hop callers, and compound predicates. The comparison includes JADX, zinja-coder's JADX-MCP, ASC, DexDec, ddc, garlic, and droidsaw.

Process startup, preparation and first class lookup across eight tools.

Startup time includes process launch, loading and preparation, and the first exact class lookup; values are medians of three runs. The OS file cache was not flushed.

QQ 9.3.55: class, method-name and string-reference query times across eight tools.

Queries use the median of nine repeats across three prepared workflows. garlic restarts MCP for each call; that cost is included. droidsaw CLI uses three separate invocations, each including loading. Each query uses one linear chart starting at zero. Bars exceeding the axis limit are clipped, marked with an arrow and labeled with their actual time. Hatched bars mean the query did not finish within 60 seconds. Gray entries explain missing comparisons.

Call chains and compound predicates

Direct and two-hop caller queries.

String-and-call intersection, four-fact filtering and complex set queries.

Direct and two-hop queries return 15 and 16 methods. Each compound query returns one method. Every completed, plotted result set is checked. The JADX native adapter reads metadata and DEX instructions directly; it does not decompile the whole APK to find references.

Process-tree memory peaks for class lookup and all executed queries.

Memory uses a 50 ms polling wait across the whole process tree. Light bars cover the common load-and-class-lookup workflow; dark bars cover each tool's executed cases. Summed RSS can count shared pages more than once. Private committed memory and the footprint at readiness are also recorded.

DexDec's reference cache makes its repeated caller query faster than DexSQL in this run. droidsaw's MCP rejects the input under its fixed parse budget, so its CLI is plotted. See the report for first-query and preparation times, interface differences, SQL, result hashes and reproduction scripts.

CLI

dexsql query --input app.apk --sql "SELECT DISTINCT method FROM method_strings WHERE value = 'https://api.example.com'"
dexsql query --input app.apk --interactive
dexsql extract licenses --output THIRD_PARTY_NOTICES
dexsql --help

Repeat --input to query multiple files together. The same executable provides the CLI and MCP server.

License

DexSQL is closed-source software from LSPosed, licensed under the DexSQL Binary License 1.0. Personal and commercial use, integration, and binary redistribution are free under its terms.

The public installation skill, benchmark materials, and documentation use the MIT License.

Third-party materials retain their own licenses. Run dexsql extract licenses to view their notices.

Reviews (0)

No results found