Teardown: Creality Wi-Fi Box
Компания Creality, производитель 3D-принтеров серии Ender, стремится добавить недорогое сетевое управление к своим принтерам, выпустив продукт под названием Wi-Fi Box. Конечно, нам пришлось заказать его, чтобы увидеть, но это определенно не оценка продукта — это оценка продукта, и нам пришлось заказать его, чтобы увидеть. Если вы хотите проверить 3D-принтер по сети, купите Raspberry PI и установите его в этот удивительный GinaHäußgeOctoprint Несмотря на то, что Creality может хотеть убедить вас, ее продукт — эта невероятная плохая имитация проекта с открытым исходным кодом.
Даже если бы вы смогли заставить его работать на вашем принтере, судя по первым признакам, он даже не обеспечит того же опыта. В лучшем случае, это сэкономит несколько долларов по сравнению с импровизированным решением, но ценой потери живого сообщества дополнительных программистов, которые могли бы помочь утвердить Octoprint в качестве решения для удаленной 3D-печати.
Принимая это, сам материал кажется очень интересным. Всего за 20 долларов вы получаете Linux-компьютер размером с ладонь с WiFi, Ethernet, слотом micro SD и двумя портами USB, и все это в очень прочном корпусе. Видеовыход отсутствует, но это вряд ли отпугнет ветеранов-пингвинов. Установленный в углу и потребляющий всего несколько ватт, вы можете представить, для каких задач подходит этот маленький гаджет. Возможно, он мог бы действовать как крошечный MQTT омбудсмен для всех умных устройств в вашем доме, или как удаленный маломощный прибор. Если предположить, что вы в любом случае сможете этим заняться, то возможности практически безграничны.
Так что же находится в коробке Creality Wi-Fi и насколько сложно склонить ее к нашей воле? Давайте разберемся и узнаем.
Surprisingly Elegant
Возможно, это не большой сюрприз, учитывая низкие цены на рынке, но на коробке Wi-Fi изображено не так много; Creality хотела произвести этот продукт как можно дешевле. В упаковке не было ни блока питания, ни необходимой карты micro SD, но, как ни парадоксально, в нее входили два USB-кабеля. Компания явно не хотела вкладывать больше, чем необходимо, в то, что в конечном итоге было экспериментальным продуктом. Экономия средств, безусловно, является проблемой в такой бизнес-модели, некоторые пользователи даже говорили, что получили бесплатную коробку Wi-Fi при покупке 3D-принтера от Creality.
Тем не менее, сами устройства не кажутся дешевыми. На самом деле, наоборот. Пластиковый корпус на удивление толстый и твердый, напоминающий литой корпус электроинструмента. Возможно, это чрезмерно для маленькой мигающей коробочки, которая будет вести легкую жизнь рядом с 3D-принтером, но я, конечно, не буду жаловаться. Интересно также отметить, что корпус представляет собой компактный пластик, а не оболочку; чтобы извлечь плату PCB, необходимо снять переднюю панель и вытащить ее.
Позаботьтесь о дорожках, соединяющих светодиоды с контактами GPIO SOC.
С платой и металлическим экраном RF на внешней стороне корпуса, вы можете увидеть, сколько времени потребуется, чтобы поставить блок Creality Wi-Fi, SOC Mediatk MT7688an, построенный на CPU MIPS 580 МГц и USB, SD, Ethernet и WIFI аудиторы, WINBOND W971GGG6SB обеспечивает 128 МБ DDR2 SDRAM; вы можете видеть, что SOC также имеет некоторые GPIO пины, распределенные на четыре светодиода на передней панели платы. Добавьте магнит к порту Ethernet и фильтр в блоке питания micro USB, и вы получите достаточно способную систему Linux в компактной, энергоэффективной и экономичной платформе.
Конечно, это не совсем демон скорости: даже Raspberry Pi Zero можно обойти вокруг этой маленькой коробочки. Это, в конечном счете, первый признак того, почему Creality не использовала для этого продукта пользовательскую версию Octoprint. Материал, который мог бы эффективно сделать это, слишком дорог. Чтобы достичь желаемой ценовой отметки, нам нужно было найти собственную концепцию упрощенной версии.
Digging In
Таким образом, на данный момент мы знаем, что это Linux 580 МГц с 128 МБ оперативной памяти — не так захватывающе для 2020 года, но и не картонная коробка. Но, конечно, если операционная система недоступна, независимо от прочности материала. Следующий шаг — понять, насколько сильно мы хотим, чтобы нас не пускали.
Наша первая поломка происходит из-за довольно очевидного заголовка последовательного порта в нижней части платы: после подключения USB-адаптера к последовательному порту и натыкания на правильную скорость 57, 600 бод, ядра U-Boot и Linux проходят и, наконец, появляется запрос на подключение. К сожалению, пароль неизвестен.
Теперь любой, кто знаком со встроенным взломом Linux, знает, что здесь пользователь создал модифицированную переменную окружения U-Boot, чтобы запустить систему с поведением пользователя. Однако, как бы я ни старался, я не смог попасть в командную строку U boot. После 30 или 40 попыток прервать работу загрузчика до загрузки ядра мы пришли к выводу, что либо синхронизация очень плохая, либо доступ к U boot отключен.
Куда это нас привело? Ну, прямо рядом с последовательным портом находится SPI 16 МБ флэш-память Byamicro 25q128, содержащая прошивку. Мы можем извлечь чип, прочитать его содержимое, изменить файловую систему и прошить его снова. Если вы планируете много заниматься прошивкой, можно установить микросхему в гнездо и приятно провести время.
К счастью, есть более простой способ. Официальный файл обновления прошивки Creality показывает, что гаджет ищет Bash-скрипт install.sh на карте Micro SD и запускает его при старте. Любые команды, размещенные в этом файле, выполняются от имени root. Это позволяет легко менять пароли без пайки.
#!/bin/sh echo 'root:hacked' >/tmp/pass cat/tmp/pass |chpasswd
Как только этот файл будет размещен на SD-карте, вы можете войти в учетную запись root через последовательный порт и начать исследование.
It’s a Router, Jim
Когда мы впервые услышали об этом устройстве, у нас были большие надежды на то, что мы сможем запустить OpenWrt. К сожалению, на самом деле мы имеем очень минимальную среду Busybox, явно предназначенную для беспроводных маршрутизаторов. Мы знаем это, потому что все функции маршрутизатора остаются нетронутыми. Они закомментированы только тогда, когда это необходимо, чтобы сделать их невидимыми в рабочей веб-среде или чтобы инициировать их автоматически.
Аналогично, в системе есть множество программ и сценариев, которые совершенно не нужны для управления 3D-принтером: от симуляции сервера iTunes и потоков MP3 до торговли 3G-модемом, Creality Wi-Fi box имеет намеренно ограниченную организацию с множеством скрытых функций, запертых за интерфейсом.
Software Freedom
В итоге, есть довольно хорошо документированный SOC, функциональный последовательный порт, официальный информационный файл прошивки для исследований и простой способ получить root-доступ; есть также существующий MT7688 дочерний OpenWRT; есть официальный информационный файл прошивки для исследований и простой способ получить root-доступ. Все части уже здесь, их просто нужно собрать.
К счастью, не нам придется это делать. Программист по имени Джордж Брук, также известный как [figgyc], уже делает эту работу за нас. Перед завершением написания этого материала мы выявили и исправили несколько проблем (например, добавили поддержку чипа Flash Byamicro 25q128), которые мешали нам начать работу с этой платой. Используя механизм инвентаризации информации о прошивке, ветвь популярного встроенного дистрибутива Linux может быть установлена на блоки Creality Wi-Fi без внесения каких-либо существенных изменений. Ему еще предстоит найти способ вернуться к инвентарной прошивке, но, честно говоря, кого это волнует?
После установки OpenWRT Wi-Fi бокс Creality становится по-настоящему универсальным компьютером. Благодаря широкому выбору пакетов и активному сообществу разработчиков, это простое изменение прошивки превращает трюк за 20 долларов в полезный инструмент.
Escaping the Walled Garden
Проведя немного времени с Creality Wi-Fi box, я вспомнил о разведывательном дозоре, о котором думал несколько месяцев назад. Оба устройства на базе Linux представляют собой легко многократно используемую аппаратную платформу, поскольку не было предпринято никаких попыток ограничить возможности пользователя по установке более мощного программного обеспечения. Даже если это скорее случайность, чем действительно альтруистические цели разработчиков, конечным пользователям должно повезти, поскольку существует больше коммерческих устройств, которые можно легко модифицировать.
Однако, в конечном счете, параллели могут быть несколько глубже: Sentinel приносил гораздо больше прибыли, чем цена самого устройства, поскольку он был разработан для того, чтобы обязывать потребителей заключать дорогостоящий контракт на обслуживание. Может ли Creality планировать нечто подобное для своих Wi-Fi боксов? Конечно, мы пока не видели никаких признаков этого, но разумно не предлагать материал по цене или ниже себестоимости, если нет планов заработать на этом деньги в будущем.
Этот пункт можно найти в презентации продукта Wi-Fi box. Creality Cloud» — это «сервис, который обеспечивает активное творческое сообщество, позволяя пользователям загружать бесплатные, неограниченные файлы STL, делиться моделями и, самое главное, предлагать онлайн нарезку & amp; печать». Услуга предоставляется бесплатно. Хотя модели, предлагаемые на сервисе, в настоящее время бесплатны, нетрудно представить, что в дальнейшем можно будет импортировать платные модели.Используя Wi-Fi box, Creality может ожидать, что клиенты будут полагаться на ее собственную экосистему программного обеспечения. Это позволит компании создать 3D-хранилище с окупаемостью. Это то, чего до сих пор не смогли достичь конкуренты на рынке. Только время покажет.
А пока любой хакер или производитель, ищущий новые проекты, остановится на одном из этих дешевых устройств. Немедленно замените собственную прошивку на альтернативу с открытым исходным кодом, которая даст вам контроль над материалом, за который вы заплатили.
Предлагаемые, Linux Hacking, Disassembly Tag Clerity, Embedded Linux, Firmware Hacking, Octoprint, OpenWrt, Serial Port, Wireless Router Posted in