Skip to Content
Alpha — full Android pipeline + iOS toolkit + live dynamic loop. API still shifting; pin to commits in CI.
Getting StartedRequirements

Requirements

MedusaNexus is local-first and opinionated about its toolchain. This page lists what scripts/setup.sh expects to find or install. Numbers reflect the versions we test against in CI; the installer pins the floor.

Operating system

OSStatus
macOS 13+ (Apple Silicon or Intel)Fully supported. Primary dev target.
macOS 15.7+ / 26.3+ (Apple Silicon)Required for the super-tart-vphone iOS lab.
Debian / Ubuntu (apt-based, kernel ≥ 5.10)Fully supported. CI runs on Ubuntu 22.04.
WindowsUse WSL2 with Ubuntu 22.04. Native Windows is not on the roadmap.

Hardware

ResourceFloorRecommended
RAM8 GB16 GB+ (Ghidra headless eats RAM in parallel runs)
Disk20 GB free40 GB+ (Ghidra projects, decrypted IPAs, MobSF Docker image)
Architecturex86_64 or arm64arm64 for vphone, either for everything else

Runtime

ToolVersion floorWhy
Python3.10+mnexus itself + the engines. 3.13 is the test target.
Node.js18.17+Only needed if you build the docs site locally.
Java JRE/JDK17+jadx + Ghidra need it. Bundled OpenJDK is fine.
Docker Desktop / Engine24+For MobSF and Moxy. Skip if you pass --minimal.
adbplatform-tools 34+The glue. Bundled with --minimal install.
frida16.xStatic + dynamic engines. The installer pulls the latest matching frida-server for your device’s arch.

Engines

Engines are independent — the orchestrator runs whatever it finds. doctor will mark missing engines as MISS instead of failing the run.

Always-on (no external services required)

EnginePurpose
adbDevice control + APK pull.
apkeepDownload APKs from Play Store (when you have an account).
apktoolResource + AndroidManifest extraction, smali decode.
jadxDecompile to Java + Kotlin.
fridaHook injection at runtime.
playintelStream APKs from Google Play, scan for Firebase / credential leaks.

Optional engines

EngineInstall viaWhy you might skip
Ghidrascripts/setup.sh (full mode)Heavy. Skip with --minimal if you don’t analyse native libs.
MobSFscripts/setup.sh (full mode, Docker)Skip if you already have a self-hosted MobSF — point MNEXUS_MOBSF_URL at it.
Burp SuiteManual download + scripts/setup.sh Burp REST extensionPick one of Burp / Caido / Moxy.
CaidoSelf-managedSet MNEXUS_PROXY_FLAVOR=caido.
Moxyscripts/setup.sh --moxyDockerised MITM with auto CA push to device. See Moxy →.
ch0pin/medusaCloned by scripts/setup.shRecipe library; Frida-driven instrumentation.
ch0pin/SthenoCloned by scripts/setup.shPatches APKs so you don’t have to.
super-tart-vphonescripts/setup-vphone.sh (Apple Silicon only)iOS device emulation for the analyst lab.

iOS-only engines

EngineWhat it does
bagbakFairPlay decryption on a jailbroken device.
frida-ios-dumpSame job, classic implementation.
ldidRe-sign IPAs after byte patching.
MachO patcher (built-in)Native LC_LOAD_DYLIB injection + VA→file offset translation.

Install all three iOS helpers with one flag:

scripts/setup.sh --ios-tools

See iOS workflow → for the full pipeline.

Hardware for dynamic analysis

TargetHardware
Android dynamicRooted device or AVD with Magisk. Pixel 7 / 8 are CI references.
iOS dynamicJailbroken iPhone (palera1n / Dopamine) or a super-tart-vphone VM (Apple Silicon Mac).

Frida hooks need root / jailbreak. Plain App-Store-installed iOS apps on a stock device cannot be hooked without re-signing — see the IPA patcher workflow.

Proxy choice

You pick one of Burp / Caido / Moxy. The orchestrator routes traffic through whichever you’ve set MNEXUS_PROXY_FLAVOR to (default: burp).

ProxyBest when
BurpYou already own a Burp Pro licence and want repeater/intruder integration.
CaidoYou want a leaner, scriptable proxy with TypeScript automation.
MoxyYou want zero-friction Docker MITM with auto CA push (CI-friendly).

All three feed the same traffic table — switching between them is one env var, no re-scan needed.

What you can skip

Anything in the Optional engines table can be left out — the doctor will flag it as MISS but the rest of the pipeline still runs. Common skip lists:

  • CI runner: drop Ghidra (--minimal), MobSF (--minimal), Burp (use Moxy instead).
  • Pure static analyst: drop Frida, Moxy, vphone.
  • Pure dynamic analyst: keep Frida + adb + a proxy; everything else is optional.

Next: Installation →.