Files
2026-07-13 13:16:30 +08:00

65 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/lib.sh"
ERRORS=0
echo "=== OpenClaw on Android - Environment Check ==="
echo ""
if [ -z "${PREFIX:-}" ]; then
echo -e "${RED}[FAIL]${NC} Not running in Termux (\$PREFIX not set)"
echo " This script is designed for Termux on Android."
exit 1
else
echo -e "${GREEN}[OK]${NC} Termux detected (PREFIX=$PREFIX)"
fi
ARCH=$(uname -m)
echo -n " Architecture: $ARCH"
if [ "$ARCH" = "aarch64" ]; then
echo -e " ${GREEN}(recommended)${NC}"
elif [ "$ARCH" = "armv7l" ] || [ "$ARCH" = "arm" ]; then
echo -e " ${YELLOW}(supported, but aarch64 recommended)${NC}"
elif [ "$ARCH" = "x86_64" ] || [ "$ARCH" = "i686" ]; then
echo -e " ${YELLOW}(emulator detected)${NC}"
else
echo -e " ${YELLOW}(unknown, may not work)${NC}"
fi
AVAILABLE_MB=$(df "$PREFIX" 2>/dev/null | awk 'NR==2 {print int($4/1024)}')
if [ -n "$AVAILABLE_MB" ] && [ "$AVAILABLE_MB" -lt 1000 ]; then
echo -e "${RED}[FAIL]${NC} Insufficient disk space: ${AVAILABLE_MB}MB available (need 1000MB+)"
ERRORS=$((ERRORS + 1))
else
echo -e "${GREEN}[OK]${NC} Disk space: ${AVAILABLE_MB:-unknown}MB available"
fi
if command -v node &>/dev/null; then
NODE_VER=$(node -v 2>/dev/null || echo "unknown")
echo -e "${GREEN}[OK]${NC} Node.js found: $NODE_VER"
NODE_MAJOR="${NODE_VER%%.*}"
NODE_MAJOR="${NODE_MAJOR#v}"
if [ "$NODE_MAJOR" -lt 22 ] 2>/dev/null; then
echo -e "${YELLOW}[WARN]${NC} Node.js >= 22 required. Will be upgraded during install."
fi
else
echo -e "${YELLOW}[INFO]${NC} Node.js not found. Will be installed via glibc environment."
fi
SDK_INT=$(getprop ro.build.version.sdk 2>/dev/null || echo "0")
if [ "$SDK_INT" -ge 31 ] 2>/dev/null; then
echo -e "${YELLOW}[INFO]${NC} Android 12+ detected — if background processes get killed (signal 9),"
echo " see: https://github.com/AidanPark/openclaw-android/blob/main/docs/disable-phantom-process-killer.md"
fi
echo ""
if [ "$ERRORS" -gt 0 ]; then
echo -e "${RED}Environment check failed with $ERRORS error(s).${NC}"
exit 1
else
echo -e "${GREEN}Environment check passed.${NC}"
fi