Skip to content

Quick start

This page shows a short path to a live interception session.

Make sure the host dependencies are installed and frida-server is running on the Android device or emulator. See Installation if this is not ready.

Launch noxen:

Terminal window
noxen

If the shell cannot find the installed command, run:

Terminal window
python -m noxen

The Home tab opens. Select your device, choose a mode (Spawn, Attach by name, or Attach by PID), pick the target app from the dropdown, and press Connect.

noxen waits for the agent’s hook registration report before marking the session connected. If no hook can be registered, connection setup fails and the reason appears in the Log tab. If only some hooks register, the session remains usable but the top bar shows a persistent warning; check the Log tab for the affected methods. The top bar reports how many hooks registered. A registration report does not prove that every hook will fire on a particular Android runtime, so validate important custom hooks with a known test call.

If you want a controlled target while learning or testing changes, use the companion noxen playground app.

When noxen intercepts an intent, the Intercept tab becomes the decision point.

Use Forward to let the app continue, or Drop to suppress the intercepted event. The buttons are the normal workflow; the command bar is only an optional shortcut.

Use the edit controls in the Intercept tab to change action, data, MIME type, categories, flags, or extras. Changes are staged and take effect only when you forward the current intent. The visual editor and command bar always show and modify the same draft; canceling the editor discards all pending changes from both. Selector and ClipData are shown read-only; editing the base Intent does not edit their nested contents. A recorded null Intent can be forwarded or dropped but cannot be edited.

Add Intercept filters from the filter UI when framework traffic produces too many blocks. Filters have their own rule syntax, so they are documented separately with examples:

Filters

Intercept filters decide whether a captured intent is stopped in the Intercept tab. History still records captured intents before Intercept filtering.

Open the History tab to inspect everything captured by the Python side, including intents auto-forwarded by filters or observed while interception was off.

Use a project file when you want the session history and UI state to survive restart. Pass --project or --new-project when launching:

Terminal window
noxen --new-project session
noxen --project session.noxen

Continue with Intercepting and modifying, Filters, or History and projects depending on what you need next.