Как собрать свой хакерский девайс на базе ESP32 и TentacleOS
Многие из нас засматривались на Flipper Zero или подобные «игрушки» для гиков, но ценник в 200-300 долларов часто заставляет задуматься: а не собрать ли что-то похожее самому? Если у вас в столе валяется пара модулей ESP32, проект TentacleOS (ранее известный как High Boy Firmware) может стать отличным фундаментом для такого самостроя.
Проект сейчас находится в стадии активной беты. Это не готовое коробочное решение, которое заработает по щелчку пальцев, а скорее гибкий фреймворк для тех, кто хочет разобраться, как работают протоколы связи «под капотом».
Что это такое и зачем оно нужно
TentacleOS — это специализированная прошивка для платформы High Boy, построенная на базе ESP-IDF. Автор проекта решил отойти от привычных «простыней» кода в одном файле main.c и реализовал модульную архитектуру. Это удобно: если вам не нужен, например, модуль NFC, вы просто не подключаете соответствующий компонент, не ломая при этом всю логику системы.
Основной фокус здесь сделан на работу с беспроводными интерфейсами. В списке тегов репозитория значатся BadUSB, BLE, IR, NFC и RFID. По сути, это попытка создать открытую операционку для портативного гаджета, который умеет взаимодействовать с окружающим цифровым миром.
Железо и поддержка чипов
Разработчики ориентируются на свежее железо от Espressif. Если старая добрая ESP32 еще поддерживается «постольку-поскольку», то основной упор идет на новые ревизии:
- ESP32-S3: Основная рабочая лошадка проекта. На ней тестируется большая часть функционала.
- ESP32-P4 и C5: Эти чипы пока в экспериментальном статусе. С5 интересен поддержкой Wi-Fi 6, что открывает любопытные перспективы для пентеста современных сетей.
Интересно, что проект поддерживает партнерство с PCBWay. Это намекает на то, что в будущем (или в закрытых ветках) существуют схемы конкретных печатных плат под этот софт.
Архитектура без костылей
Главная ценность TentacleOS для разработчика — это структура проекта. Вместо хаоса из функций автор предлагает четкое разделение на четыре уровня.
- Drivers: Низкоуровневая работа с железом. Экран, кнопки, радиомодули — всё здесь.
- Services: Вспомогательная логика. Тут могут жить менеджеры питания или обработчики протоколов.
- Core: «Мозги» системы, которые связывают драйверы и приложения.
- Applications: Конечные программы. Например, сканер Wi-Fi или эмулятор пульта управления телевизором.
Такой подход позволяет использовать репозиторий как шаблон (boilerplate) для любого сложного устройства на ESP32-S3. Вам не нужно заново изобретать велосипед для организации меню или управления памятью.
Как с этим работать
Чтобы завести TentacleOS, понадобится установленный ESP-IDF. Структура проекта полностью совместима с системой сборки CMake. Типичное дерево файлов выглядит так:
├── CMakeLists.txt
├── components
│ ├── Drivers
│ ├── Services
│ ├── Core
│ └── Applications
├── main
│ ├── CMakeLists.txt
│ └── main.c
└── README.md
Если вы решите добавить свою фичу, например, поддержку специфического датчика, вы просто создаете новую папку в components/Drivers и описываете её в CMake. Это гораздо чище, чем пытаться впихнуть код в стандартные примеры от Espressif.
Стоит ли пробовать
Проект подкупает своей открытостью и попыткой принести порядок в мир прошивок для микроконтроллеров. Однако стоит учитывать, что документация пока довольно лаконична. Вам придется много читать исходники, чтобы понять, как именно реализована та или иная функция.
Кому проект зайдет:
- Тем, кто хочет собрать свой аналог Flipper Zero на ESP32.
- Разработчикам, которые ищут пример грамотной модульной архитектуры на ESP-IDF.
- Энтузиастам информационной безопасности, желающим пощупать работу с субгигагерцовыми частотами или BLE на низком уровне.
TentacleOS — это не про «скачал и пользуйся», а про «разберись и сделай под себя». Если вам близка такая философия, заглядывайте в репозиторий, ставьте звезду и, возможно, ваш Pull Request станет частью этой системы. Только помните про Conventional Commits — автор следит за чистотой истории коммитов.
