OpenClaw на Android: установка через Termux и управление через WhatsApp со скриптом автоматизации

OpenClaw на Android: установка через Termux и управление через WhatsApp со скриптом автоматизации

Есть особый кайф в том, чтобы превратить старый смартфон в карманного помощника: вы пишете ему в WhatsApp, а он отвечает, запускает задачи и присылает отчеты. Не “магия”, а аккуратная связка из OpenClaw, Termux и пары команд.

По официальной документации OpenClaw на Android работает как “узел-компаньон”, а сам “шлюз” (Gateway) рекомендуется держать на ПК. Но сообщество уже протоптало тропинку: запускать шлюз прямо на Android через Termux и Ubuntu. Это делает систему полностью автономной.

Ниже — пошаговый гайд с учетом всех подводных камней: от патчей сетевых интерфейсов до борьбы с агрессивным энергосбережением Android.

⚠️ Критически важно для Android 12, 13, 14+
В современных версиях Android работает механизм "Phantom Process Killer". Он убивает дочерние процессы Termux, потребляющие много ресурсов (а Node.js потребляет много), даже если вы отключили оптимизацию батареи в настройках.

Если вы не хотите, чтобы бот падал через час работы, подключите телефон к компьютеру по USB, включите "Отладку по USB" и выполните эту команду через ADB (с компьютера):

adb shell "/system/bin/device_config put activity_manager max_phantom_processes 2147483647"

Без этого шага стабильной работы 24/7 добиться невозможно.


Часть 1. Разворачиваем среду (Termux + Ubuntu)

Нам понадобятся Termux и Termux:API (ставьте только из F-Droid, версии в Google Play безнадежно устарели). Мы не будем запускать сервер в "голом" Termux — это боль с зависимостями. Мы поднимем полноценную Ubuntu внутри контейнера.

1. Установка Ubuntu через proot-distro

Открываем Termux на телефоне и пишем:

pkg update && pkg upgrade -y
 pkg install proot-distro -y
 proot-distro install ubuntu
 proot-distro login ubuntu

Теперь вы находитесь внутри Ubuntu. Дальнейшие команды выполняются здесь.

2. Ставим Node.js 22 и зависимости

apt update && apt upgrade -y
 apt install -y curl git build-essential nano
 
 # Ставим Node.js 22
 curl -fsSL https://deb.nodesource.com/setup_22.x | bash -
 apt install -y nodejs

3. "Заклинание" для сетевых интерфейсов

Это самый важный технический нюанс. В среде proot на Android Node.js часто падает при попытке получить список сетевых интерфейсов (функция os.networkInterfaces). Мы "починим" это, создав JS-заглушку (hijack):

# 1. Создаем JS-файл заглушки
 mkdir -p /root/scripts
 cat <<EOF > /root/scripts/hijack.js
 const os = require('os');
 const originalNetworkInterfaces = os.networkInterfaces;
 os.networkInterfaces = () => {
     try {
         return originalNetworkInterfaces();
     } catch (e) {
         return {}; 
     }
 };
 EOF
 
 # 2. Добавляем его в автозагрузку переменных среды
 echo 'export NODE_OPTIONS="-r /root/scripts/hijack.js"' >> ~/.bashrc
 source ~/.bashrc

Часть 2. Установка OpenClaw и PM2

Вместо обычного запуска мы будем использовать PM2. Это профессиональный менеджер процессов: он умеет перезапускать бота при падении, писать логи и работать с расписанием надежнее, чем cron.

npm install -g openclaw@latest pm2

1. Настройка шлюза

Запускаем мастер настройки:

openclaw onboard
Важно: Когда мастер спросит про привязку (Gateway bind), выбирайте 127.0.0.1 (loopback). Никогда не открывайте 0.0.0.0 на телефоне, если вы подключаетесь к публичным Wi-Fi сетям.

2. Запуск через PM2

Теперь запустим шлюз так, чтобы он работал вечно:

pm2 start "openclaw gateway" --name "claw-gateway"
 pm2 save

Панель управления доступна в браузере телефона по адресу: http://127.0.0.1:18789/.


Часть 3. WhatsApp и Безопасность

Принцип простой: "Сначала закрой двери, потом приглашай гостей".

1. Белый список (Allowlist)

Откройте конфиг ~/.openclaw/openclaw.json (удобно через редактор nano) и настройте доступ только для своего номера:

{
   "channels": {
     "whatsapp": {
       "dmPolicy": "pairing",
       "allowFrom": ["+15551234567"], 
       "groupPolicy": "allowlist",
       "groupAllowFrom": ["+15551234567"]
     }
   }
 }

* Замените номер на свой в международном формате.

2. Привязка (QR-код)

Нам нужно временно остановить PM2, чтобы увидеть QR-код прямо в консоли:

pm2 stop claw-gateway
 openclaw channels login --channel whatsapp
 # Сканируем QR в WhatsApp -> Связанные устройства
 pm2 start claw-gateway

Совет: Если вы используете OpenClaw на том же телефоне, где стоит основное приложение WhatsApp, это создаст "петлю трафика". Идеальный вариант — отдельная SIM-карта или виртуальный номер для бота.


Часть 4. Умная автоматизация с PM2

Допустим, мы хотим каждое утро получать сводку дел. Создадим скрипт, который отправляет запрос агенту.

Создаем файл ~/jobs/daily-brief.sh:

#!/usr/bin/env bash
 set -euo pipefail
 
 # Ваш номер телефона для получения отчета
 TARGET="+15551234567"
 
 # Команда агенту с флагом --deliver (ответ придет в чат)
 openclaw agent 
   --to "$TARGET" 
   --message "Доброе утро. Проверь календарь и дай краткую сводку задач на сегодня." 
   --deliver 
   --channel whatsapp

Даем права на исполнение: chmod +x ~/jobs/daily-brief.sh

Ставим на расписание через PM2

Зачем нам cron, если PM2 умеет всё сам? Заставим его запускать этот скрипт каждый день в 09:00:

pm2 start ~/jobs/daily-brief.sh --name "daily-brief" --cron "0 9 * * *" --no-autorestart

Теперь PM2 управляет и шлюзом (держит его онлайн), и вашими задачами по расписанию. Посмотреть статус всех процессов можно командой pm2 status.


Финальные штрихи

  • Termux Wake Lock. Опустите шторку уведомлений Android, найдите там уведомление от Termux и нажмите кнопку "Acquire wakelock". Это официально разрешит приложению не уходить в сон.
  • Риски бана. OpenClaw использует библиотеку Baileys (эмуляция Web-клиента). Это неофициальный метод. WhatsApp может временно заблокировать номер при подозрительной активности. Для личного ассистента риск минимален, но не используйте это для массовых рассылок.
  • Бекапы. Периодически сохраняйте папку ~/.openclaw. Там лежат ключи шифрования вашей сессии.

Итог: У вас в кармане теперь живет сервер с LLM-агентом, который не требует оплаты за хостинг, всегда под рукой и управляется через привычный чат. Удачной автоматизации!


Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.

Эксплойт без патча? Узнай первым

В реальном времени: уязвимые версии, индикаторы компрометации и быстрые меры. Не читай — действуй.


Николай Нечепуренков

Я – ваш цифровой телохранитель и гид по джунглям интернета. Устал видеть, как хорошие люди попадаются на уловки кибермошенников, поэтому решил действовать. Здесь я делюсь своими секретами безопасности без занудства и сложных терминов. Неважно, считаешь ты себя гуру технологий или только учишься включать компьютер – у меня найдутся советы для каждого. Моя миссия? Сделать цифровой мир безопаснее, а тебя – увереннее в сети.