Прошивка XiaoZhi ESP32 v2.5: обзор — ESP-IDF 6, релиз полной матрицы и усиление безопасности

Прошивка XiaoZhi ESP32 v2.5: обзор — ESP-IDF 6, релиз полной матрицы и усиление безопасности

23 октября 2026 г.

С июля по октябрь 2026 года в upstream-репозитории прошивки 78/xiaozhi-esp32 вышли v2.4.x и v2.5.x. Из всего этого ряда ваши действия на практике меняют лишь три вещи: для сборки из исходников теперь нужен ESP-IDF 6, готовые прошивки публикуются по-другому, а реализации протоколов получили набор проверок. В статье последовательно разбираются релизы; у каждого пункта указан коммит или документ, откуда он взят, так что всё можно проверить самостоятельно.

Версия присваивается по первому тегу, содержащему коммит. Числа взяты из тега v2.5.2 и манифеста этого релиза. Upstream продолжает развиваться, поэтому источником истины считайте официальную страницу релизов.

1. Коротко

Кто выЧто делать
Хотите только прошить готовую прошивкуВыберите вариант своей платы на странице Загрузка прошивки; среда разработки не нужна
Собираете прошивку самиУстановите ESP-IDF v6.0.1 или новее (рекомендуется ветка release/v6.1). ESP-IDF 5.x больше не поддерживается; см. Настройку ESP-IDF
Поддерживаете собственную платуКод платы должен соответствовать ESP-IDF 6; см. Перенос пользовательской платы на ESP-IDF 6
Запускаете свой сервер или пишете клиентДокументы по протоколам обновлены; см. WebSocket и MQTT + UDP

2. Хронология релизов

ВерсияОсновные измененияИсточник
v2.4.0Переход на ESP-IDF 6.0 и последующее усиление3e78cd7 (#2120), 0f6c435 (#2123)
v2.4.2Поддержка плат на ESP32-S313e86f0a (#2151)
v2.5.0Удалена поддержка ESP-IDF 5.x; потоковое воспроизведение notify; проверка длины строк и коды ошибок JSON-RPC в MCP; язык интерфейса — бразильский португальский4a5d446, bb9122a (#2191), acb2fc7 (#1847), d68505f (#2243)
v2.5.2Запускаемый вручную рабочий процесс релиза всей матрицы прошивок; исправления безопасности WebSocket и OTA; драйвер Ethernet IP101 перенесён на ESP-IDF 649b4380 (#2302), d436097, f05adce, d395220

PROJECT_VER в v2.5.2 равен 2.5.2.

3. Сборка: переход на ESP-IDF 6

  • Одна крупная миграция: коммит 3e78cd7 затрагивает 119 файлов, включая заголовки драйверов плат, версии зависимостей и аудиокодеки. Изменения на уровне плат разобраны в статье о миграции.
  • Требование к версии: main/idf_component.yml объявляет idf: '>=6.0.1'; README upstream рекомендует ветку release/v6.1 и сообщает, что ESP-IDF 5.x больше не поддерживается.
  • Одна известная проблема: README предостерегает от релизного тега v6.1, по которому есть сообщения о сбоях инициализации Wi-Fi на ESP32-C3 (issue #2344).
  • Смена SDK: выполните git submodule update --init --recursive, заново загрузите export.sh, затем выполните idf.py fullclean. Подробности — в разделе Настройка ESP-IDF.
  • ESP32-S31: для вариантов под этот чип нужен ESP-IDF 6.1 или новее.

4. Релиз: рабочий процесс для полной матрицы прошивок

Коммит 49b4380 добавил запускаемый вручную рабочий процесс Release Firmware, описанный в docs/releasing.md upstream:

  • он собирает каждый релизный вариант, поддерживаемый ESP-IDF 6.1, командой scripts/build.py <board> --name <variant> --zip;
  • каждый вариант даёт v<version>_<variant>.zip с единственным merged-binary.bin;
  • в релизе есть также release-manifest.json (полный список вариантов) и SHA256SUMS для всех архивов.

В манифесте v2.5.2 записано 154 каталога плат и 188 вариантов прошивки, сборка выполнена на ESP-IDF 6.1.0. Полный список см. в разделе Поддерживаемые платы.

В README upstream по-прежнему написано «138 каталогов плат и 171 релизный вариант» — это старее, чем манифест. Этот сайт следует манифесту. После загрузки сверяйте архивы с SHA256SUMS.

5. Возможности и протокол

  • Потоковый notify: bb9122a добавляет потоковое воспроизведение, чтобы устройство могло асинхронно проигрывать голосовые уведомления, присылаемые сервером вне диалога. См. Асинхронные голосовые уведомления.
  • Glyph Push: сервер может присылать глифы, которых нет в локальном шрифте. См. Glyph Push.
  • Проверки в MCP: сервер MCP на устройстве проверяет max_length строковых аргументов и возвращает коды ошибок JSON-RPC. См. протокол MCP.
  • ESP32-P4: каждая сборка для P4 разделена на вариант для rev < 3 и вариант -p4x (b7dc88f).
  • Языки интерфейса: добавлена локаль pt-BR (d68505f).

6. Усиление безопасности

Вот пункты усиления, названные в сообщениях коммитов upstream:

ОбластьИзменениеИсточник
MQTTПроверяется идентификатор сессии в сообщении goodbyee182471 (#2023)
WebSocketЕсли в hello сервера transport не строка, прежний код вызывал strcmp для нулевого указателя, и устройство паниковало; теперь сначала проверяется типd436097 (#2247)
OTAОтклоняются небезопасные серийные номера eFusef05adce
ШифрованиеШифрование MQTT и BluFi переведено на PSA CryptoREADME upstream, «Recent updates»

Всё это входит в v2.5.2.

7. Изменения в документации

Каталог docs/ upstream теперь в первую очередь английский, китайские версии называются *_zh.md. К новым или сильно переработанным документам относятся custom-board, websocket, mqtt-udp, mcp-protocol, mcp-usage, blufi, glyph-push, notify и releasing. Соответствующие страницы этого сайта переписаны под v2.5.2:

Источники

  • Теги upstream v2.5.2 и v2.5.0: история коммитов, README.md, docs/releasing.md и main/idf_component.yml.
  • Проверено 2026-10-23. Исправления присылайте на [email protected].