| title | Installation |
|---|---|
| description | Full step-by-step breakdown of the OCA installer β what each step does and why. |
The OCA installer is an 8-step modular orchestrator (install.sh):
bootstrap.sh
βββ install.sh
βββ Step 1: Environment Check
βββ Step 2: Platform Selection (OpenClaw)
βββ Step 3: Tools & Features Selection
βββ Step 4: Core Infrastructure (RTXβ‘1)
βββ Step 5: Platform Runtime Dependencies (RTXβ‘2)
βββ Step 6: Platform Package Install (RTXβ‘2)
βββ [6.5]: Env vars + CLI + Marker
βββ Step 7: Optional Tools & Features (RTXβ‘3)
βββ Step 8: Verification
Script: scripts/check-env.sh
Validates: Termux is active, CPU is aarch64, Android version is detectable, wake lock enabled.
Auto-selects the openclaw platform, loading platforms/openclaw/config.env:
PLATFORM_NAME="OpenClaw"
PLATFORM_NEEDS_GLIBC=true
PLATFORM_NEEDS_NODEJS=true
PLATFORM_NEEDS_BUILD_TOOLS=trueInteractive prompts for optional tools. See Quick Start for a recommendation guide.
If `PLATFORM_NEEDS_GLIBC=true`, OCA auto-enables **Homebrew (Linuxbrew)** and the **Go toolchain**. They are treated as part of the glibc-backed Linux userland rather than separate opt-in extras.git, curl, wget, python3, pip3, patchelf, binutils
Installs glibc-runner β provides ld-linux-aarch64.so.1 that Node.js linux-arm64 needs.
Downloads official Node.js v24.x linux-arm64 tarball from nodejs.org. Creates a grun-based wrapper:
exec "$PREFIX/bin/grun" "$(dirname "$0")/node.real" "$@"Also writes the DNS fix ($PREFIX/glibc/etc/resolv.conf) to prevent EAI_AGAIN on Android 12+.
Script: platforms/openclaw/install.sh
- Copies glibc-compat.js and argon2-stub.js patches
- Configures DNS resolver
- Runs
npm install -g openclaw@latest --ignore-scripts - Installs
clawdhub+undicidependency - Runs
openclaw update(builds native modules β may take 5β10 mins)
Installs selected tools: Termux packages via pkg, AI CLIs via npm install -g, and for glibc-based platforms automatically installs Homebrew (Linuxbrew) plus the Go toolchain for extra OpenClaw skill/helper workflows.
For glibc-based platforms, OCA automatically runs the official Homebrew installer into ~/.linuxbrew after the glibc runtime is already in place, then appends:
eval "$($HOME/.linuxbrew/bin/brew shellenv)"to ~/.bashrc.
This means brew commands execute inside the same Linux-compatible environment that OCA uses for:
- the official
linux-arm64Node.js build - OpenClaw native modules
- extra helper binaries that assume glibc instead of Android's Bionic libc
For glibc-based platforms, OCA automatically installs the Termux golang package so go install ... workflows are ready for OpenClaw skills, helper CLIs, and small utilities.
Script: tests/verify-install.sh
Checks: node --version, openclaw --version, oca in PATH, platform marker file.
# Reinstall Node.js only
bash ~/.oca/scripts/install-nodejs.sh
# Reinstall OpenClaw package only
bash ~/.oca/platforms/openclaw/install.sh
# Full reinstall
oca --uninstall
BOOTSTRAP="${TMPDIR:-/tmp}/oca-bootstrap.sh"
curl -fsSL https://raw.githubusercontent.com/PsProsen-Dev/OpenClaw-On-Android/master/bootstrap.sh -o "$BOOTSTRAP" \
&& bash "$BOOTSTRAP"