Исходный код прошивки Flipper Zero полностью открыт и опубликован на GitHub в репозитории flipperdevices/flipperzero-firmware — это первое место, куда стоит идти, если нужно изучить устройство системы, исправить ошибку или написать собственное приложение. Проект распространяется под лицензией GPLv3, что позволяет свободно изучать, модифицировать и распространять код с сохранением условий лицензии.
Прошивка написана преимущественно на языке C и построена на базе операционной системы реального времени FreeRTOS. Открытость кода — одна из ключевых особенностей платформы: сообщество разработчиков создаёт альтернативные сборки, добавляет поддержку новых протоколов и публикует сторонние приложения.
В этой статье разберём, где находится репозиторий, как устроена структура проекта, какие инструменты нужны для сборки и как начать писать собственные приложения для устройства.
Где найти исходный код Flipper Zero
Официальный репозиторий размещён на GitHub под организацией flipperdevices. Основной репозиторий называется flipperzero-firmware — именно там живёт код прошивки, системные сервисы и встроенные приложения. Рядом находятся сопутствующие проекты: загрузчик, инструменты и документация.
Клонировать репозиторий можно стандартной командой git. Рекомендуется скачивать репозиторий вместе с подмодулями, иначе сборка не пройдёт:
git clone --recursive https://github.com/flipperdevices/flipperzero-firmware.git
Если репозиторий уже склонирован без подмодулей, их можно подтянуть отдельно командой git submodule update --init. Пропуск этого шага — частая причина ошибок при первой попытке сборки.
⚠️ Внимание: скачивайте код только из официального репозитория организации flipperdevices. Сторонние зеркала и «готовые сборки» с файлообменников могут содержать вредоносные изменения, которые невозможно заметить без аудита кода.
Структура проекта и языки разработки
Репозиторий организован модульно. Ядро прошивки, драйверы периферии и системные сервисы лежат в каталоге firmware, а пользовательские приложения — в applications. Скрипты сборки и вспомогательные инструменты расположены в каталоге scripts.
Основные компоненты кодовой базы:
- 🔧 Furi — абстракция над FreeRTOS: потоки, очереди сообщений, таймеры и примитивы синхронизации;
- 📱 GUI и системные сервисы — отрисовка интерфейса, управление питанием, хранилище настроек;
- 📡 Драйверы радиотракта — работа с субгигагерцовым трансивером, NFC, RFID, инфракрасным портом;
- 🧩 Приложения — как встроенные (Sub-GHz, NFC, iButton), так и внешние в формате
.fap; - 🐬 HAL-слой — привязка к микроконтроллеру STM32WB55 и его периферии.
Большая часть кода написана на C, отдельные утилиты сборки и генераторы — на Python. Для тех, кто хочет быстро прототипировать идеи без погружения в C, существует поддержка скриптов на JavaScript и MicroPython — они выполняются прямо на устройстве.
Инструменты для сборки прошивки
Система сборки проекта называется fbt — это обёртка на Python, которая сама скачивает необходимый тулчейн компилятора и зависимости. Устанавливать ARM-toolchain вручную не требуется: при первом запуске fbt подтянет всё нужное автоматически.
Минимальный набор для старта:
- 💻 Установленный Python 3 актуальной версии;
- 📦 Git с поддержкой подмодулей;
- 🔌 Драйверы для подключения устройства по USB (зависят от операционной системы);
- 💾 Несколько гигабайт свободного места под тулчейн и артефакты сборки.
Базовая команда сборки прошивки выглядит так:
./fbt
Для сборки и мгновенной прошивки подключённого устройства используется вариант ./fbt flash_usb_full. На Windows вместо ./fbt запускается fbt.cmd. Точный список команд и их параметры может меняться между версиями — актуальный справочник выводится командой ./fbt -h и приведён в документации репозитория.
Перед первой сборкой выполните ./fbt без параметров и дождитесь полной загрузки тулчейна — прерывание этого процесса часто приводит к битому кэшу и странным ошибкам компиляции.
Пошаговая сборка и прошивка устройства
Ниже — общий безопасный порядок действий, который не зависит от конкретной версии прошивки. Перед любыми экспериментами с самосборной прошивкой сохраните резервную копию данных с устройства через официальное приложение qFlipper.
☑️ Сборка и установка своей прошивки
После успешной прошивки устройство перезагрузится с вашей сборкой. Если устройство не загружается или ведёт себя некорректно, вернуться к стабильному состоянию можно через режим восстановления прошивки в qFlipper — он устанавливает официальный релиз независимо от того, что было залито ранее.
⚠️ Внимание: прошивка самосборных образов выполняется на ваш риск и может повлиять на гарантийные обязательства. Кроме того, модификации, расширяющие радиочастотные возможности устройства, могут нарушать законодательство вашей страны — проверьте местные нормы перед экспериментами с передатчиком.
Написание собственных приложений
Разрабатывать приложения для Flipper Zero можно двумя путями: встроенные приложения прямо в дереве исходников или внешние модули формата .fap, которые устанавливаются на карту памяти и не требуют пересборки всей прошивки. Второй вариант удобнее для распространения — пользователи просто копируют файл на устройство.
Для внешних приложений используется инструмент ufbt — облегчённая система сборки, которая работает с SDK конкретной версии прошивки. Она существенно быстрее полной сборки и не требует клонирования всего репозитория.
Типичный каркас приложения включает:
- 📝 Файл
application.fam— манифест с именем, типом и точкой входа; - ⚙️ Основной C-файл с функцией входа и обработкой событий GUI;
- 🖼️ Ресурсы — иконки и изображения в поддерживаемых форматах.
Подробнее про формат .fap
FAP (Flipper Application Package) — это исполняемый файл внешнего приложения. Он собирается под конкретную версию API прошивки, поэтому после крупных обновлений системы старые .fap-файлы могут перестать запускаться и потребуют пересборки под новый SDK.
Альтернативные прошивки и вклад в проект
Открытость исходного кода породила экосистему кастомных прошивок, которые собираются сообществом на базе официального репозитория. Такие сборки обычно добавляют сторонние приложения, расширенные настройки интерфейса и экспериментальные функции. Устанавливая их, вы фактически доверяете авторам сборки — только исходный код, который вы можете прочитать и собрать самостоятельно, даёт реальную гарантию отсутствия скрытых закладок.
Внести вклад в официальный проект можно через стандартный механизм pull request на GitHub. Перед отправкой изменений стоит изучить гайдлайны репозитория: требования к оформлению кода, правила именования и процедуру ревью.
| Задача | Инструмент | Что нужно |
|---|---|---|
| Изучить код прошивки | GitHub / git clone | Браузер или git-клиент |
| Собрать прошивку целиком | fbt | Python 3, репозиторий с подмодулями |
| Написать внешнее приложение | ufbt | Python 3, знание основ C |
| Прототипировать логику | JavaScript / MicroPython | Только само устройство |
| Откатиться на официальный релиз | qFlipper | USB-кабель и приложение на ПК |
Исходный код Flipper Zero открыт под GPLv3: его можно изучать, собирать через fbt и дорабатывать, а внешние приложения в формате .fap позволяют расширять устройство без пересборки всей прошивки.
Частые вопросы
Под какой лицензией опубликован исходный код Flipper Zero?
Прошивка распространяется под лицензией GPLv3. Это разрешает изучение, модификацию и распространение кода при условии сохранения той же лицензии для производных работ.
Нужно ли знать C, чтобы писать приложения для Flipper Zero?
Для полноценных приложений на уровне системы — да, основной язык проекта — C. Однако для простых сценариев доступны скрипты на JavaScript и MicroPython, которые выполняются прямо на устройстве и не требуют настройки тулчейна.
Сборка через fbt завершается ошибкой — что проверить в первую очередь?
Чаще всего причина в незагруженных подмодулях репозитория или прерванной первичной загрузке тулчейна. Выполните git submodule update --init и повторите сборку. Если ошибка сохраняется, сверьтесь с документацией репозитория — требования к окружению периодически обновляются.
Можно ли вернуть официальную прошивку после установки самосборной?
Да. Приложение qFlipper умеет устанавливать официальные релизы и восстанавливать прошивку независимо от того, какая сборка была залита ранее. Данные на карте памяти при этом обычно не затрагиваются, но резервную копию лучше сделать заранее.
Легально ли модифицировать прошивку Flipper Zero?
Сама модификация открытого кода легальна. Ограничения касаются использования радиочастотных возможностей: диапазоны и мощность передатчика регулируются законодательством конкретной страны. Перед экспериментами с передачей сигналов убедитесь, что они не выходят за рамки местных норм.