Guides¶
Practical how-tos for common research workflows. These assume you've already completed Getting Started and have at least one instance running.
In this section¶
- Multiple Instances — run several research phones in parallel, understand port allocation, coordinate across instances.
- Examples — copy
default.yaml/stealth.yaml/no-gapps.yaml/with-frida.yamlover a fresh instance, modify YAML, apply changes without rebuilding. Also covers theadb-device.yaml(adb-adopted device) andvm.yaml(QEMU micro-VM,binder: vm) reference configs. - Magisk Modules — flash Shamiko, LSPosed, or custom hooks via URL or local path; verify with sha256.
- Frida — pin Frida versions per instance, get the address with
beetroot frida-addr, attach scripts. - Snapshots — pack instance state into a
.tar.zstarchive withbeetroot snapshot, restore withbeetroot restore, fork an instance into siblings that run concurrently. - Sandbox / CI quickstart (no-KVM TCG) — the end-to-end runbook for booting a real rooted Android instance on a host with no kernel binder and no
/dev/kvmvia thebinder: vmQEMU micro-VM: pick the backend, install prereqs,build --vm-kernel,up, and screenshot. - Running in CI / without kernel access — why redroid needs the host's binder driver, how to load it on GitHub-hosted runners, and how to drive a remote device over ADB when you have no kernel access at all.
- CI integration (reusable workflow) — boot a Beetroot instance in your repo's CI with one
uses:line and run your tests (e.g. a Frida script) against a live rooted Android. - Migration — the index of per-release schema-migration walkthroughs. One guide per version hop that changed a user-visible contract: v0.2 → v0.3, v0.3 → v0.4, and v0.4 → v0.6 (the current hop —
api_version: 3→4, which movedstealth.denylisttomagisk.denylist).