Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который я разрабатываю с друзьями. Предыдущий пост [1].
Много всего произошло с момента первого поста про флиппер. Мы усердно работали все это время и проект претерпел радикальные изменения. Главная новость в том, что мы решили полностью отказаться от Raspberry Pi Zero и делать свою плату с нуля на базе чипа i.MX6. Это значительно усложняет разработку и полностью меняет всю концепцию, но я уверен, что оно того стоит.
Также мы до сих пор не нашли правильный WiFi чипсет, который поддерживает все нужные функции для WiFi-атак, при этом поддерживает диапазон 5Ghz и не устарел на 15 лет. Поэтому я приглашаю всех поучаствовать в нашем исследовании.
В статье я расскажу, почему мы приняли такое решение, на каком этапе находится проект, текущие задачи, и как можно принять участие.
Чем плох Raspberry Pi Zero
Я лично обожаю Raspberry Pi, но в процессе разработки оказалось, что он просасывает по многим причинам. Самая банальная — его тупо нельзя купить. Даже большие дистрибьютеры имеют в наличии не более пары сотен штук rpi0, а магазины вроде Adafruit и Sparkfun продают не более 1 штуки в руки. Да, есть несколько заводов, которые производят rpi0 по лицензии от Raspberry Pi Foundation, но они тоже не могут отгрузить партии по 3-5 тысяч штук. Выглядит это так, что rpi0 продается по цене на грани себестоимости и больше направлен на популяризацию платформы.
Вот основные причины отказа от rpi0
- Невозможно купить в большом количестве. Заводы вроде Farnell предлагают покупать Compute Module. Китайцы с Alibaba врут про наличие больших объемов, когда речь заходит о реальной партии то сливаются. Всем, кто будет писать, что мы плохо искали, попробуйте договориться с кем-то о покупке 5 тысяч штук, так чтобы вам выслали счет на оплату.
- Мало интерфейсов.
- Старый процессор BCM2835, который использовался еще в первой версии rpi. Горячий и не очень энергоэффективный.
- Нет управления питанием, нельзя отправить плату в сон.
- Устаревший встроенный WiFi.
- и много других причин.
Сама Raspberry Pi Foundation для таких задач предлагает использовать RPi Compute Module. Это плата в формфакторе SO-DIMM модуля (как оперативная память в ноутбуках), которая вставляется в материнскую плату. Этот вариант нам не подходит, так как сильно увеличивает размеры устройства.
Raspberry Pi Compute Module — плата в формфакторе SO-DIMM модуля для установки в свое устройство
Тогда мы начали смотреть на разные SoM-ы (System on Module), привлекательнее всего выглядели модули на основе i.MX6. Все наши поиски описаны в теме на форуме https://forum.flipperzero.one/t/raspberry-pi-zero-alternatives/118 . Но нужно иметь в виду, что не все компании будут готовы с вами работать при объемах даже 3-5 тысяч штук в год. Например, израильская Variscite просто перестала отвечать нам, когда узнала планируемые объемы закупок. Судя по всему, им не интересно только продавать SoM-ы без дополнительных услуг в виде поддержки и интеграции. Отдельно хочу отметить русского разработчика Starterkit.ru, которые делают очень интересные устройства, вроде SK-iMX6ULL-NANO. Их почти невозможно нагуглить, и я бы не узнал об их существовании, если бы не рассказали знакомые.
В итоге сравнив все варианты и прикинув экономику, мы приняли трудное решение делать свой SoM с нуля специально для Флиппера на основе чипа i.MX6 ULZ. Это одноядерный Cortex-A7 с частотой 900 MHz с почти такой же производительностью как rpi0, при этом он почти холодный под нагрузкой, в то время как rpi0 раскаляется как печка.
Делая свою плату с нуля, у нас появилась полная свобода в расположении элементов на плате из-за чего мы рассчитываем получить более компактное устройство. i.MX6 ULZ это урезанная версия i.MX6 ULL без некоторых интерфейсов и видеоядра, поэтому для разработки мы используем девборду MCIMX6ULL-EVK с чипом i.MX6 ULZ, просто не используя часть интерфейсов. Эта плата, кстати, поддерживается mainline ядром linux, поэтому на ней загружается Kali Linux с ядром из пакетов.
Вот как выглядит флиппер без одежды в данный момент:
Правильный WiFi
Взлом WiFi одна из главных фич Флиппера, поэтому крайне важно выбрать правильный WiFi-чипсет, который будет поддерживать все нужны функции: инъекцию пакетов и мониторный режим. При этом уметь диапазон 5GHz и современные стандарты вроде 802.11ac. К сожалению, таких чипов сходу найти не удалось
Китайский SiP модуль (system in package) Apmak AP6255 на базе BCM43456
Сейчас мы рассматриваем несколько кандидатов, но все из них требуют допиливания и пока неизвестно какой лучше выбрать. Поэтому я очень прошу всех, кто разбирается в похеке WiFi, присоедениться к нашему поиску здесь: Wi-Fi chip with SPI/SDIO interface that supports monitoring and packet injection
Основные кандидаты:
- Broadcom/Cypress BCM43455 или BCM4345 с патченной прошивкой. Обсуждение в репозитории nexmon.
- Mediatek MT7668 — еще не проверен, но в теории может подходить.
Пожалуйста, прежде чем советовать что-то, внимательно почитайте требования на форуме, в том числе интерфейс подключения. Помните, что я несколько месяцев внимательно изучаю эту тему и перелопатил уже все, что можно найти.
Что уже готово
Вся часть, за которую отвечает STM32 уже работает: 433Mhz, iButton, чтение-эмуляция 125kHz.
Механическая часть, кнопки, корпус, разъемы, компоновка сейчас в активной разработке, на видео и фотографиях ниже устаревший корпус, в новых версиях джойстик будет больше.
На видео простая демонстрация открытия шлагбаума с помощью реплея сигнала пульта.
FAQ
Как купить?
Предположительно краудфандинговую кампанию на Кикстартере запустим в апреле-мае этого года. Готовые устройства надеемся отправить через полгода после завершения сбора. Если вам интересен прибор, я прошу вас оставить свой почту внизу сайта, подписчикам мы будем отправлять предложения, когда будут готовы прототипы и ранние семплы на продажу.
Это законно?
Это инструмент для исследований. Все его компоненты можно купить по отдельности в магазине. Если встроить WiFi адаптер и 433MHz трансмиттер в маленький корпус и добавить туда экранчик, он не станет от этого более незаконным. Устройство не подпадает под определение спец. средства или прибора для негласного сбора информации. Незаконным может быть ТОЛЬКО его использование с целью нанесения ущерба или для незаконных действий. Иначе говоря, я могу делать ножи любой формы и из любого металла, ответственность за использование моих ножей лежит на вас.
Как задонатить?
В данный момент вы можете поддержать меня лично небольшими пожертвованиями на еду через Patreon. Регулярные пожертвования в виде 1$ намного лучше, чем большая сумма за раз, потому что позволяют прогнозировать наперед.
Все заметки по проекту я публикую в свой Telegram-канал @zhovner_hub.
Автор: zhovner