안드로이드 폰으로 AI 에이전트를 돌리고 싶다면 어떨까? 가능하다. 그런데 기존 방식은 지옥이었다. proot-distro로 리눅스를 깔고, 1-2GB를 쓰고, 30분을 기다려야 했다. OpenClaw Android는 이 문제를 근본적으로 다르게 접근한다.
기존 방식의 문제: proot-distro의 무거움
안드로이드에서 리눅스 바이너리를 실행하려면 glibc가 필요하다. 안드로이드는 Bionic libc를 쓰기 때문이다. 그래서 보통은 proot-distro로 우분투나 데비안을 설치하고, 그 안에서 Node.js를 돌린다.
이게 문제다.
┌───────────────────────────────────────────────────┐
│ Linux Kernel │
│ ┌───────────────────────────────────────────────┐ │
│ │ Android · Bionic libc │ │
│ │ ┌───────────────────────────────────────────┐ │ │
│ │ │ Termux │ │ │
│ │ │ ┌───────────────────────────────────────┐ │ │ │
│ │ │ │ proot-distro · Debian/Ubuntu │ │ │ │
│ │ │ │ ┌───────────────────────────────────┐ │ │ │ │
│ │ │ │ │ GNU glibc │ │ │ │ │
│ │ │ │ │ Node.js → OpenClaw │ │ │ │ │
│ │ │ │ └───────────────────────────────────┘ │ │ │ │
│ │ │ └───────────────────────────────────────┘ │ │ │
│ │ └───────────────────────────────────────────┘ │ │
│ └───────────────────────────────────────────────┘ │
└───────────────────────────────────────────────────┘
5개 레이어다. Linux Kernel → Android Bionic → Termux → proot-distro → glibc → Node.js.
각 레이어는 오버헤드다. 저장공간을 잡아먹고, 속도를 느리게 하고, 설정을 복잡하게 만든다.
OpenClaw Android의 접근: glibc-runner
이 프로젝트는 다르다. proot-distro를 건너뛴다.
┌───────────────────────────────────────────────────┐
│ Linux Kernel │
│ ┌───────────────────────────────────────────────┐ │
│ │ Android · Bionic libc │ │
│ │ ┌───────────────────────────────────────────┐ │ │
│ │ │ Termux + glibc-runner │ │ │
│ │ │ ┌───────────────────────────────────────┐ │ │ │
│ │ │ │ glibc ld.so (linker only) │ │ │ │
│ │ │ │ ld.so → Node.js → OpenClaw │ │ │ │
│ │ │ └───────────────────────────────────────┘ │ │ │
│ │ │ OpenCode · code-server · git ... │ │ │
│ │ └───────────────────────────────────────────┘ │ │
│ └───────────────────────────────────────────────┘ │
└───────────────────────────────────────────────────┘
3개 레이어다. Linux Kernel → Android Bionic → Termux + glibc-runner.
전체 리눅스 배포판 없이, glibc 동적 링커(ld.so)만 있으면 표준 리눅스 바이너리가 실행된다. 이게 핵심이다.
비교표: proot-distro vs OpenClaw Android
| proot-distro 방식 | OpenClaw Android | |
|---|---|---|
| 저장공간 | 1-2GB (리눅스 + 패키지) | ~200MB |
| 설치 시간 | 20-30분 | 3-10분 |
| 성능 | 느림 (proot 레이어) | 네이티브 속도 |
| 설치 스텝 | 배포판 설치 → 리눅스 설정 → Node.js 설치 → 경로 수정… | 커맨드 1개 |
| 복잡도 | 높음 | 낮음 |

새로운 옵션: Claw App (Termux 없이)
2026년 3월 기준, Claw App이라는 독립형 안드로이드 앱이 추가되었다. Termux 없이 작동한다.
특징:
- 단일 APK: 터미널 에뮬레이터 + WebView 기반 UI를 하나로 번들
- 원탭 설치: 앱 내에서 Node.js와 OpenClaw를 자동으로 설치
- 대시보드 내장: 게이트웨이 제어, 런타임 정보, 도구 관리를 앱 UI에서
- Termux 독립: 기존 Termux + oa 설정에 영향 없음
APK는 Releases 페이지에서 다운로드할 수 있다. Termux 방식이 익숙하거나 커맨드라인을 선호하면 기존 방식을 쓰면 되고, 앱 형태를 선호하면 Claw App을 쓰면 된다.
설치: 커맨드 하나로 끝
curl -sL myopenclawhub.com/install | bash && source ~/.bashrc
이게 전부다. 설치 과정에서 자동으로 처리하는 것들:
- glibc 환경: pacman의 glibc-runner로 표준 리눅스 바이너리 실행 환경 구성
- Node.js (glibc): 공식 Node.js linux-arm64 다운로드 + ld.so 로더 스크립트 래핑
- 경로 변환:
/tmp,/bin/sh,/usr/bin/env등 표준 리눅스 경로를 Termux 경로로 자동 변환 - 임시 폴더 설정: 안드로이드에서 접근 가능한 temp 폴더 구성
- 서비스 매니저 우회: systemd 없이 정상 동작하도록 설정
3-10분이면 끝난다. 와이파이를 권장하지만 모바일 데이터도 가능하다.
설치 후: oa CLI로 관리
설치가 끝나면 oa 커맨드가 생긴다. 모든 관리를 여기서 한다.
oa --update # OpenClaw 및 안드로이드 패치 업데이트
oa --install # 선택적 도구 설치 (tmux, code-server, AI CLI 등)
oa --uninstall # OpenClaw 제거
oa --status # 설치 상태 및 컴포넌트 확인
oa --version # 버전 확인
업데이트도 커맨드 하나:
oa --update && source ~/.bashrc
이 한 줄이 설치된 모든 컴포넌트를 업데이트한다: OpenClaw, code-server, OpenCode, Claude Code, Gemini CLI, Codex CLI, 그리고 안드로이드 호환성 패치까지.
추가 도구들: 선택적 설치
oa --install로 선택적으로 설치할 수 있는 도구들:
터미널 & 개발 환경
- tmux: 백그라운드 세션 관리
- ttyd: 웹 터미널 - 브라우저에서 Termux 접속
- dufs: HTTP/WebDAV 파일 서버 - 브라우저로 파일 전송
- code-server: 브라우저 기반 VS Code IDE
AI CLI 도구
- OpenCode: AI 코딩 어시스턴트 (TUI)
- Claude Code (Anthropic): AI CLI
- Gemini CLI (Google): AI CLI
- Codex CLI (OpenAI): AI CLI
안드로이드 특화 문제 해결
안드로이드에서 백그라운드 프로세스를 돌리는 건 쉽지 않다. OpenClaw Android는 이 문제들을 명시적으로 다룬다.
Phantom Process Killer 대응
안드로이드 12+는 백그라운드 프로세스를 죽이는 Phantom Process Killer를 돌린다. 이 프로젝트는 ADB로 이를 비활성화하는 가이드를 제공한다.
배터리 최적화
안드로이드는 화면이 꺼지면 백그라운드 앱을 스로틀링한다. 개발자 옵션에서 “Stay Awake”를 켜고, 배터리 최적화에서 Termux를 제외해야 한다.
설정 체크리스트
- 개발자 옵션 활성화
- Stay Awake 켜기
- 배터리 최적화에서 Termux 제외
- Phantom Process Killer 비활성화 (ADB)
이 설정들은 선택이 아니다. 안드로이드에서 OpenClaw를 안정적으로 돌리려면 필수다.
로컬 LLM: 가능하지만 현실적 제약
이론적으로 로컬 LLM도 돌아간다. node-llama-cpp의 프리빌트 바이너리가 glibc 환경에서 정상 로드된다.
하지만 현실적인 제약이 있다:
| 제약 | 상세 |
|---|---|
| RAM | GGUF 모델은 2-4GB 여유 메모리 필요 (7B, Q4). 폰 RAM은 안드로이드와 다른 앱들과 공유 |
| 저장공간 | 모델 파일이 4GB~70GB+ |
| 속도 | ARM에서 CPU-only 인퍼런스는 매우 느림. 안드로이드는 llama.cpp GPU 오프로딩 미지원 |
| 용도 | OpenClaw는 주로 클라우드 LLM API 사용. 로컬 인퍼런스는 보조 기능 |
실험용으로 TinyLlama 1.1B (Q4, ~670MB) 정도는 돌아간다. 하지만 실 사용에는 클라우드 LLM을 권장한다.

Gateway 실행 시 주의사항
Gateway는 터미널을 점유한다. SSH가 아니라 Termux 앱에서 직접 실행해야 한다. SSH 세션이 끊기면 Gateway도 멈춘다.
Termux에서 새 탭을 열어 Gateway를 실행하자:
openclaw gateway
중지는 Ctrl+C. Ctrl+Z는 프로세스를 종료하지 않고 일시정지만 하니 주의.
기술적 세부사항: 왜 —ignore-scripts?
설치 커맨드에서 npm install -g openclaw@latest --ignore-scripts를 사용한다.
이유가 있다. node-llama-cpp의 postinstall 스크립트가 cmake로 llama.cpp를 소스에서 컴파일하려고 한다. 폰에서 30분 이상 걸리고, 툴체인 비호환으로 실패한다. 프리빌트 바이너리는 이 컴파일 없이 동작하므로 postinstall을 안전하게 건너뛴다.
왜 이 프로젝트가 중요한가
안드로이드는 세계에서 가장 많이 쓰이는 OS다. 그런데 개발자 친화적이지 않다. 쉘이 없다. 리눅스 바이너리가 안 돈다.
OpenClaw Android는 이 벽을 허문다. 폰으로 AI 에이전트를 돌릴 수 있게 한다. 그것도 proot-distro의 무거움 없이.
1GB에서 200MB. 30분에서 10분.
단순한 최적화가 아니다. 아키텍처의 재설계다. 전체 리눅스 배포판이 필요없다는 걸 보여준다. glibc 링커만 있으면 충분하다.
🔗 관련 정보
- GitHub: AidanPark/openclaw-android
- OpenClaw 공식: github.com/openclaw/openclaw
- 설치 가이드: myopenclawhub.com
- Stars: 645+ | License: MIT