Develop AUZM Modules
An AUZM module is a Rust cdylib loaded inside a matching app process. Keep the payload small, prove readiness before action, and expose the final behavior as one MCP tool.
Start From the Template
kam init my-auzm -t auzm_template
cd my-auzm
tools/build.shThe template embeds metadata strings into the .so:
androiduse.auzm.module_id=<module-id>
androiduse.auzm.author=<author>
androiduse.auzm.email=<email>
androiduse.auzm.project_url=<url>
androiduse.auzm.license=<license>Development Loop
- Define
auzm/scope. - Build
payload.so. - Install or hotpush the registry entry under
.config/androiduse/auzm.d/<module-id>/. - Restart the target app.
- Verify through MCP response, logcat, or app-visible proof.
Start With a Probe
The first payload should be read-only. Report:
- active activity or process name
- fragment or object candidates
- target class names
- readiness state
- why the action cannot run yet
Do not report success from "JNI returned", "no Java exception", queued request completion, or a generic byte signal. Report success only after a target-specific app callback, response object, server receipt, or user-visible confirmation.
Verification Gates
tools/closed_loop_local.sh
tools/closed_loop_mcp_http.sh
cargo fmt -- --check
cargo check -p androiduse-cli
cargo check -p androiduse-payload
tools/build_zygisk_module.sh
tools/build_payload_module.shtools/closed_loop_local.sh runs the MCP HTTP loop by default. If a restricted sandbox cannot bind 127.0.0.1, run ANDROIDUSE_SKIP_LOCAL_MCP_HTTP=1 tools/closed_loop_local.sh for the remaining local checks, then run tools/closed_loop_mcp_http.sh again outside the sandbox.
When a device is connected, run the read-only device gate:
tools/closed_loop_device_readonly.shIt checks module files, root access, MCP tools/list, dynamic_tool_status, and Zygisk/payload logs without installing or mutating the device. If more than one authorized ADB device is attached, run it with ANDROIDUSE_ADB_SERIAL=<serial>. The gate fails when logcat has no AndroidUseZygisk or AndroidUsePayload evidence.
