Перейти к содержанию
Проекты

У техногиков обычным делом считается купить умное устройство, вскрыть корпус, подпаяться к плате и…

Опубликовано: Обновлено: Автор: MichaelИсточник: t.me

У техногиков обычным делом считается купить умное устройство, вскрыть корпус, подпаяться к плате и залить на устройство собственную прошивку. И их логика понятна - получить от устройства лучший пользовательский опыт, чем предусмотрел производитель.

ПроектыHome Assistant
У техногиков обычным делом считается купить умное устройство, вскрыть корпус, подпаяться к плате и залить на устройство собственную прошивку. И их логика понятна - получить от устройства лучший пользовательский опыт, чем предусмотрел производитель. Я же в своих проектах стремлюсь избавить пользователей от этого неприятного шага. SonoffLAN, YandexStation, go2rtc - всё работает с оригинальными прошивками устройств и не требует паяльника. А вот с XiaomiGateway3 вышла довольно затяжная борьба. Хаб Xiaomi Multimode Gateway начал продаваться в Китае и на Али в далёком 2019 году. В первых версиях прошивки была возможность открыть доступ к консоли шлюза через обычный протокол Xiaomi, который есть почти на каждом WiFi-устройстве этой фирмы. Команда называлась банально - enable_telnet_service. В июне 2020 года @serrj-sv опубликовал её на форуме HA. И это была просто находка для любопытного исследователя. Полный доступ к операционной системе нового, универсального и довольно бюджетного устройства. Я тут же заказал шлюз из Китая и уже в августе 2020 выпустил первую версию интеграции для HA. Никаких паяльников и прошивок, всё работает "из коробки". В ноябре 2020 года вышла европейская версия хаба, из прошивки которой заветную команду удалили. Новые владельцы не могли пользоваться интеграцией. Через считанные дни тот же @serrj-sv выпустил инструкцию по смене прошивки шлюза через UART. Наступила эра "паяльника", но зато интеграция была снова в строю. Ещё через пару месяцев в сообществе опубликовали способ выполнить любую команду на шлюзе через дыру в команде настройки WiFi - set_ip_info. Просто указываем определённый набор символов вместо пароля, и у нас снова есть доступ к консоли без всяких паяльников и прошивок! В июле 2022 года выходит новая версия шлюза - Xiaomi Multimode Gateway 2. В ней всё ещё есть дыра в команде настройки WiFi. Интеграция не теряет актуальности и поддерживает всё больше и больше устройств. Во второй половине 2023 года компания Xiaomi выпустила обновления прошивок, в которых закрыла заветную дыру. Но мы были к этому готовы! Xiaomi оставила легальный способ выполнить произвольную консольную команду - system_command. Для этого требовался секретный ключ, который хранился в памяти шлюза. Интеграция заранее скачивала этот ключ, пока шлюз работал на "дырявой" прошивке, и использовала его после обновления. Проблема была только у владельцев, купивших шлюзы уже с новой версией прошивки. Без доступа к памяти ключ получить нельзя. Через какое-то время появились инструкции, как с помощью UART вычитать заветный ключ из памяти обеих версий шлюза. Мы во второй раз вернулись в эру "паяльника". И вот вчера @oliver-mee нашёл очередную дыру в прошивке шлюза. С помощью команды сбора логов async_device_feedback_log можно скачать со шлюза любые файлы, в том числе и тот, в котором хранится ключ. К сожалению, эта дыра есть только во второй (квадратной) версии шлюза. На первой (круглой) она не работает. Новая версия интеграции уже всё умеет. Покупаете шлюз, вводите логин/пароль от Xiaomi, и всё работает, без паяльников и смс. https://github.com/AlexxIT/XiaomiGateway3/releases/tag/v4.3.0