Mira
Mobile runtime detection workbench for AI (iOS and Android)
Links
README
From the repo.
English | 简体中文
Mira
Mobile runtime detection workbench for iOS and Android.
Why follow Mira
Mira turns real runtime cases into reusable workflows, tools, and detection notes.
Research Updates
- [260520] Article: Detecting root, emulators, and scrcpy-like projection through the audit logcat side channel
- [260520] Case: Android high-PID shell proc audit side-channel hints at scrcpy projection
- [260520] Case: Android emulator proc audit side-channel exposes qemu SELinux context
- [260519] Case: Android proc audit side-channel detects Magisk SELinux context
Features
- App sandbox tools: Use shell, PTY, screen capture, and file tools inside the Mira host app sandbox on Android and iOS.
- Frida tasks: Run Java and native hooks with RPC for one-time runtime analysis.
- Relay and MCP: Connect devices through Relay and let AI work in the same sessions through MCP.
Getting Started
- Relay:
PYTHONPATH=. python3 -m mira.relay.server --host 0.0.0.0 --port 8765 --advertise-url http://<your-lan-ip>:8765 - Browser: Open
http://127.0.0.1:8765on your desktop. - Android: Download the latest APK, install it, then enter
http://<your-lan-ip>:8765in the app. - iOS: Verified on a real device running iOS 16.7.10. See
docs/GETTING-STARTED.md. - AI:
PYTHONPATH=. python3 -m mira.mcp.server --relay http://127.0.0.1:8765. MCP config:docs/MCP.md.
The APK's offline Python/Frida runtime requires arm64-v8a and supports Android 10 through 15. Android 16 Java hooks are not supported, and no confirmed official Frida fix is available. See the compatibility notes.
Architecture
- Android application architecture and Java/C boundaries
- Shared native PTY architecture
- Repository layout
Contributing
Mira welcomes issues and pull requests from mobile security researchers, reverse engineers, Frida users, MCP users, and device testers.
- Read
CONTRIBUTING.mdbefore opening a focused pull request. - Use the issue templates for bugs, security hardening, detection ideas, and device compatibility reports.
- For security reports, read
SECURITY.mdfirst. - Scanner-generated hardening PRs are welcome when they include repository-specific reachability reasoning and verification.
Good starting points include native memory-safety review, Android and iOS device testing, Frida workflow examples, MCP client setup notes, and new reusable detection cases.
Live Discovery Examples
| Android Remote Frida | iOS Remote Frida |
|---|---|
Remote shell, runtime inspection, and live Frida execution on Android.
|
Equivalent PTY and Frida workflow adapted to the iOS iSH compatibility layer.
|
| Android LSPosed Trace | iOS Jailbreak Trace |
Construct a Frida path around the app classloader and surface LSPosed traces from runtime state.
|
Ask Claude to roam the live terminal and surface jailbreak-related traces in the device environment.
|
Public Relay Access

With Relay, you can temporarily expose an authorized session beyond the local network for cloud devices, expert review handoff, and fast evidence sharing.
Research Boundaries
- Mira observes and interacts with the Mira host app sandbox.
- Mira does not control unrelated third-party apps.
- Mira does not provide system-wide remote control.
- Mira does not provide root or jailbreak bypass capabilities.
- Mira is not a production SDK or a silent background control channel.
Acknowledgements
- lamda: inspiration for the web workbench interaction model.
- Termux: Android terminal UX and extensible shell ecosystem.
- iSH: iOS-side Linux shell compatibility and syscall translation path.
License
GPL-3.0-only.
Collected info
- ★ 105 stars
- ⎇ 37 forks
- Language: Python
- Source updated: 9/17/2026
Config for your environment
Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "{MCP_ENDPOINT_URL}"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.