Прошивка XiaoZhi ESP32 v2.5: обзор — ESP-IDF 6, релиз полной матрицы и усиление безопасности
С июля по октябрь 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-S31 | 3e86f0a (#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 6 | 49b4380 (#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. Полный список см. в разделе Поддерживаемые платы.
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 | Проверяется идентификатор сессии в сообщении goodbye | e182471 (#2023) |
| WebSocket | Если в hello сервера transport не строка, прежний код вызывал strcmp для нулевого указателя, и устройство паниковало; теперь сначала проверяется тип | d436097 (#2247) |
| OTA | Отклоняются небезопасные серийные номера eFuse | f05adce |
| Шифрование | Шифрование MQTT и BluFi переведено на PSA Crypto | README 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:
- Руководство по пользовательским платам
- Протокол связи WebSocket
- Руководство по настройке BluFi
- Первый запуск: настройка, активация и привязка
Источники
- Теги upstream
v2.5.2иv2.5.0: история коммитов,README.md,docs/releasing.mdиmain/idf_component.yml. - Проверено 2026-10-23. Исправления присылайте на [email protected].