Где взять токен робота-пылесоса Xiaomi на Android: все рабочие методы

Роботы-пылесосы Xiaomi и Roborock требуют специального токена авторизации для интеграции со сторонними системами умного дома — от Home Assistant до Alice или Google Home. Без этого 64-значного кода подключение к альтернативным платформам невозможно. Проблема в том, что компания Xiaomi активно скрывает токены в последних версиях приложения Mi Home, а официальных способов их получения не существует.

На Android ситуация осложняется ограничениями операционной системы: unlike iOS, где токен можно извлечь через HTTP-прокси, здесь требуются более сложные манипуляции. В этой статье мы разберём 5 актуальных методов (включая обход защиты 2026 года), их плюсы/минусы, а также дадим чек-лист для безопасного извлечения токена без блокировки аккаунта. Важно: некоторые способы требуют технических навыков — если вы никогда не работали с ADB или MITM-прокси, начните с самых простых вариантов.

Что такое токен робота-пылесоса и зачем он нужен

Токен — это уникальный идентификатор сессии, который приложение Mi Home получает от серверов Xiaomi после авторизации. Он действует от 30 дней до 1 года (зависит от типа аккаунта) и используется для отправки команд устройству через облако. Без токена сторонние системы не могут:

  • 📍 Управлять пылесосом по расписанию (например, через Home Assistant)
  • 🔄 Получать статус (заряд, ошибки, карту уборки)
  • 🛠️ Интегрироваться с голосовыми помощниками (Алиса, Google Assistant)
  • 📊 Создавать автоматизации (например, запуск уборки при уходе из дома)

Официально Xiaomi разрешает управлять пылесосами только через своё приложение, но энтузиасты нашли обходные пути. Главная сложность — токен не хранится в открытом виде в памяти телефона. Его нужно либо перехватить при передаче, либо извлечь из зашифрованных данных приложения.

⚠️ Внимание: Некоторые методы (например, с использованием Packet Capture) могут вызвать подозрения в безопасности аккаунта. Если вы используете один аккаунт Mi Account для нескольких устройств, создайте отдельный аккаунт специально для пылесоса — это снизит риски блокировки.

Способ 1: Извлечение токена через Mi Home (без рута, для старых версий)

Этот метод работал до середины 2023 года и подходит для версий Mi Home 6.. и ниже. В новых версиях (7.0+) токен шифруется, поэтому способ может не сработать. Проверьте версию приложения в Настройки → О программе.

Инструкция:

  1. Установите на телефон Termux (или используйте ADB с ПК).
  2. Подключите телефон к ПК и выполните команду для дампа памяти Mi Home:
    adb shell dumpsys package com.xiaomi.smarthome
  3. В выводе найдите строку token: — это и есть ваш токен. Если строки нет, переходите к следующему способу.

Если терминал возвращает ошибку permission denied, значит, на устройстве включена защита MIUI от чтения данных приложений. В этом случае поможет только рут или альтернативные методы.

📊 Какую версию Mi Home вы используете?
6.x или старше
7.0–7.5
8.0 и новее
Не знаю

Способ 2: Перехват токена через HTTP-прокси (MITM)

Этот метод работает на любых версиях Mi Home, но требует настройки прокси-сервера. Мы будем использовать Packet Capture (Android) или Fiddler (ПК) для перехвата трафика.

Пошаговая инструкция:

  1. Установите Packet Capture и включите SSL-перехват в настройках.
  2. Запустите запись трафика и откройте Mi Home.
  3. Перейдите в раздел с вашим пылесосом и дождитесь загрузки данных (5–10 секунд).
  4. Остановите запись и найдите в логах запросы к домену api.io.mi.com.
  5. В теле ответа ищите поле "token": "..." — это и есть нужный токен.
Инструмент Плюсы Минусы
Packet Capture (Android) Не нужен ПК, работает на телефоне Может не показать токен в новых версиях Mi Home
Fiddler (ПК) Более надёжный перехват Требует настройки сертификата на телефоне
Charles Proxy Поддерживает расшифровку HTTPS Платная лицензия после пробного периода
⚠️ Внимание: При использовании прокси Xiaomi может заблокировать ваш аккаунт за "подозрительную активность". Чтобы уменьшить риски, не перехватывайте трафик дольше 2–3 минут и не используйте этот метод чаще 1 раза в месяц.

☑️ Подготовка к перехвату токена

Выполнено: 0 / 4

Способ 3: Использование утилиты miio extractor (для ПК)

Если предыдущие методы не сработали, попробуйте специализированную утилиту miio extractor. Она анализирует трафик между телефоном и серверами Xiaomi, автоматически извлекая токены.

Алгоритм действий:

  1. Скачайте и установите miio extractor на ПК (требуется Python 3.8+).
  2. Подключите телефон к ПК по USB и включите Отладку по USB (Настройки → О телефоне → Версия MIUI (нажмите 7 раз) → Дополнительно → Для разработчиков).
  3. Запустите утилиту командой:
    python miio_extractor.py
  4. На телефоне откройте Mi Home и дождитесь, пока пылесос загрузит данные.
  5. Утилита автоматически выведет токен в консоль.

Преимущество этого метода — автоматизация: не нужно вручную искать токен в логах. Однако он требует навыков работы с командной строкой и может не сработать на последних версиях Mi Home (из-за изменённого протокола шифрования).

Способ 4: Получение токена через аккаунт Mi Account (облачный метод)

Этот способ не требует доступа к телефону, но подходит только если вы знаете логин/пароль от аккаунта Mi Account, привязанного к пылесосу. Мы будем использовать неофициальный API для извлечения токена.

Инструкция:

  1. Перейдите на сайт account.xiaomi.com и авторизуйтесь.
  2. Скопируйте cookie из браузера (используйте расширение EditThisCookie для Chrome).
  3. Отправьте POST-запрос на https://account.xiaomi.com/pass/serviceLoginAuth2 с параметрами:
    {
    

    "user": "ваш_логин",

    "hash": "md5_пароля",

    "clientSign": "cookie_из_шага_2"

    }

  4. В ответе будет поле ssecurity — это временный токен, который можно конвертировать в постоянный через Python-скрипт.

Для автоматизации процесса используйте скрипт mi_token_extractor. Он преобразует временный токен в постоянный, пригодный для Home Assistant.

⚠️ Внимание: Этот метод нарушает пользовательское соглашение Xiaomi. Если вы используете его слишком часто, аккаунт может быть заблокирован за "несанкционированный доступ". Рекомендуем создавать резервные копии токена и обновлять его не чаще 1 раза в 2 месяца.

Способ 5: Извлечение токена с рут-правами (100% рабочий)

Если у вашего телефона есть рут-доступ, токен можно извлечь напрямую из базы данных Mi Home. Этот метод работает на всех версиях приложения, включая последние.

Пошаговая инструкция:

  1. Установите Root Browser или любой другой файловый менеджер с поддержкой рута.
  2. Перейдите по пути:
    /data/data/com.xiaomi.smarthome/databases
  3. Скопируйте файл miio_device.db на ПК.
  4. Откройте его с помощью DB Browser for SQLite.
  5. В таблице devices найдите строку с вашим пылесосом — токен будет в колонке token.

Если колонки token нет, значит, данные зашифрованы. В этом случае используйте скрипт mihome_decrypt, который расшифровывает базу с учетом ключа устройства.

Что делать, если токен не найден в базе?

Если в таблице devices нет токена, проверьте таблицу miio_devices или device_record. В новых версиях Mi Home токен может храниться в зашифрованном виде в колонке extra. Для расшифровки потребуется ключ, который можно извлечь из /data/data/com.xiaomi.smarthome/shared_prefs/miio_prefs.xml (параметр device_key).

Как проверить работоспособность токена

Перед тем как использовать токен в сторонних системах, проверьте его валидность. Для этого:

  1. Установите DeCONZ или Home Assistant.
  2. Добавьте пылесос как устройство Xiaomi Miio, введя IP-адрес и токен.
  3. Если соединение установлено — токен действующий. Если возникает ошибка Invalid token, повторите процедуру извлечения.

Также можно проверить токен через Python:

from miio import Vacuum

vacuum = Vacuum(ip="192.168.1.100", token="YOUR_TOKEN")

print(vacuum.status())

Если скрипт возвращает данные о пылесосе (заряд, статус) — токен корректен. Ошибка miio.exceptions.AuthenticationError означает, что токен неверный или просрочен.

Частые ошибки и их решения

При извлечении токена пользователи сталкиваются с типичными проблемами. Вот самые распространённые и способы их решения:

Ошибка Причина Решение
Token not found в логах Новая версия Mi Home шифрует трафик Используйте miio extractor или рут-метод
Аккаунт заблокирован после извлечения Слишком частые запросы к API Напишите в поддержку Xiaomi с объяснением ("тестировал интеграцию")
Токен работает 1–2 дня, затем перестаёт Временный токен (не постоянный) Используйте скрипт для конвертации в постоянный
Unable to connect to vacuum Пылесос и телефон в разных сетях Подключите оба устройства к одной Wi-Fi

Если ни один из методов не сработал, проверьте:

  • 🔌 Подключен ли пылесос к той же сети Wi-Fi, что и телефон.
  • 📱 Обновлено ли приложение Mi Home до последней версии (иногда откат помогает).
  • 🔒 Не включена ли двухфакторная аутентификация в аккаунте Mi Account.
  • 🛡️ Не блокирует ли антивирус/фаервол трафик (отключите их на время извлечения).

FAQ: Ответы на популярные вопросы

Можно ли получить токен без root и ПК?

Да, но только на старых версиях Mi Home (до 6.x) через ADB или Packet Capture. В новых версиях без рута или прокси обойти защиту невозможно.

Как часто нужно обновлять токен?

Стандартный срок действия — 90 дней, но некоторые токены работают до года. Если пылесос перестал отвечать на команды, первым делом обновите токен.

Будет ли работать токен после сброса пылесоса?

Нет. Сброс к заводским настройкам аннулирует текущий токен. После сброса нужно заново привязать пылесос к аккаунту и извлечь новый токен.

Можно ли использовать один токен для нескольких пылесосов?

Нет. Каждый пылесос имеет уникальный токен, даже если они привязаны к одному аккаунту Mi Account.

Что делать, если Xiaomi заблокировал аккаунт после извлечения токена?

Напишите в поддержку на английском с текстом: "My account was blocked after testing Mi Home API integration. Please unblock it as I’m the legitimate owner." Обычно разблокировка занимает 1–3 дня.