AlikDrone
الذهاب إلى القناة على Telegram
Делюсь знаниями о дронах, обсуждаем полезное для пилотов, пилим классный софт и реверсим DJI дроны) @kila0822
إظهار المزيدلم يتم تحديد البلدالفئة غير محددة
1 218
المشتركون
+124 ساعات
+127 أيام
+14430 أيام
أرشيف المشاركات
1 219
Хотелось бы выразить благодарность @disrcD
за предоставленные файлы для данной платы
кому нужно срочно, можете начинать самостоятельную сборку
кому тяжело будет самостоятельно разобраться, чуть позже я выпущу видеоинструкцию по сборке
Бонусом я думаю будут полезны для данной платы stl от @Lyutik04
Еще отозвался @DosTresIrokez и сказал поделиться своей разработкой в течении 1-2х недель
У кого есть чем дополнить, буду признателен
1 219
https://ozon.ru/t/l1fzeBw
Я хз как это работает
Озон делает акции за мой счет, пока я разбираюсь с этим…
Можете успеть закупиться😂
1 219
Вторая часть (увлекательного) путешествия в мир АКБ от м4т😰
Дальше я начал бить непосредственно по proprietary-слою.
Писал ноль в
0xDD. Заливал в 0x90 полный блок от исправной батареи. Повторял с PEC и без, через selector 0x23, через адрес 0x61, после ключей и сразу после reset. Транспорт отвечал ACK, read-back оставался прежним.
Полностью прогнал диапазон 0x1000-0x13FF, это 1024 значения. Нашлось семейство команд, которые реально роняли контроллер с шины: 0x1001, 0x1017, область 0x102B-0x1032, 0x10F6, 0x110D, 0x1320. Стойкой команды очистки в проверенном формате не нашлось.
Но эти reset-команды дали самую интересную находку за весь реверс😭
После reset батарея на короткое время возвращалась с нулевым 0xDD и чистым 0x90. Раньше это принимали за ремонт. Я снял переход с точностью до миллисекунд и увидел настоящую последовательность.
Сначала приходит пустой boot-cache с нулевым напряжением, нулевыми банками и температурой -273.15°C. Потом батарея уходит в NACK. После возврата первым устанавливается 0xDD=2. Затем 0x90 проходит стадии 00 00, 00 02, 01 01, 01 02. Полное восстановление плохого состояния иногда занимает десятки секунд.
То есть батарея не исправляется🚬 Контроллер просто ещё не успел загрузить сохранённый запрет из persistent source.
Я пытался поймать этот момент. Писал healthy-состояние в окно. Подавал заряд заранее. Делал WINDOW COMMIT. Запускал reset на FF-транзиенте. Трогал предполагаемое NVM-окно. Гонял циклы сериями. Удерживал внешнее питание. Зарядный FET не открывался, ток оставался нулевым, состояние всегда восстанавливалось.
Параллельно разобрал линию SIG. Проверил больше 30 вариантов декодирования. UART, PWM, Manchester и ранняя гипотеза 55 AA не сошлись с сырыми фронтами.
Рабочая модель: FM/edge-in-cell, ячейка около 29.5 мкс, LOW break около 11.7 мс, внешний цикл 50 Гц. У исправной батареи 147 кадров из 147 уникальны. У больной 170 из 170 тоже уникальны. Это stateful или rolling-канал, возможно MAC-подобный, но доказанной аутентификацией я его пока не называю. Одного постоянного байта ошибки там точно нет.
Отдельно поднял открытый реверс WA341 DUML, воспроизвёл framing, CRC, handshake и команды батареи. Проверил UART/DUML на всех доступных комбинациях SDA, SCL и SIG, с handshake и без. Ответа не получил. Значит публичный WA341-путь на контакты M4T напрямую не переносится.
Когда SMBus-команды закончились, я пошёл через прошивку.
Из официального пакета DJI размером 665 800 202 байта извлёк battery-модули .54. Из dev-пакета нашёл BA03 .25, PTL .47 и GY0 .47. Текущую версию пациента 29.02.01.54 доказал двумя независимыми способами: прямым чтением C2FULL с правильным PEC и совпадением с заголовком официального BAT1-модуля.
Все WA345-модули оказались UFIE-encrypted. Я проверил 26 опубликованных симметричных ключей DJI. Сравнил 18 уникальных WA345-образов по ESK. Провёл differential .47/.54, проверил повтор keystream, known-zero padding и несколько вариантов неправильной упаковки ключа. Просканировал 158 ZIP и 34 945 вложений в поисках готового plaintext. Ничего....
Потом разобрал штатный updater DJI. Проследил negotiate, размер блока, sequence, transfer, finalize и MD5 через DUML, системные библиотеки, USB bulk и ICC до неизвестного MCU receiver. Нашёл OP-TEE TA, UUID, команды dji_fw_verify и secure key repository. Написал отдельный extractor с жёсткой проверкой размера, MD5 и add32. Он проходит 9 из 9 тестов, но на серийном M4T нет доступного ADB. По USB есть RNDIS, Mass Storage и закрытый DJI bulk, но процесса, который даст вызвать TEE и забрать plaintext, нет.
После этого я полез в UBRT😃
Разобрал нативный UBRT-2300.exe, формат xEP, их собственный SHA1 с little-endian words, feedback-шифрование, TCP-протокол, custom base64, серверную запись <EP_key>, проверку ключа и логическую state machine записи через 0x35/0x36. Полным перебором 2^32 отдельно закрыл гипотезу простого четырёхбайтного EP key.
И тут выяснилось главное: нужный EP key приходит с сервера и в клиенте не хранится. Публичный UBRT содержит контейнеры для старых DJI, но WA345/BPX345 там нет. Закрытая серверная поддержка остаётся неизвестной. Старый WM260 xEP нельзя просто залить в WA345, а ранний тест 0x36 вообще был сформирован неправильно и ничего не доказывал о настоящем loader.
Я также перелопатил dji-firmware-tools, профильные issues, Battery Killer, bqStudio, NLBA, KNN, 4PDA, Elektroda, laptopu.ro, китайский MyDigit с разбором Z2401 и русские, английские, китайские, украинские, вьетнамские и тайские ремонтные материалы. Иногда внешний ресерч давал не команду, а убивал очередную гипотезу. KNN оказался курсом по старым BQ. NLBA не имеет Z2401 в публичном списке поддержки. Публичного WA345 xEP я не нашёл.
На этом реверсе ушёл парк из 61 батареи. Ещё раз: «убита» означает, что SDA/SCL мёртвые и данных нет. Я не утверждаю без вскрытия, что у всех физически сгорел входной каскад. В части случаев могла умереть связь, в части контроллер мог остаться в закрытом состоянии. Но для моего стенда и штатной эксплуатации результат одинаковый: ни одного байта с BMS.
Сервисный программатор пока не получился.😰
Зато получился полноценный исследовательский инструмент😃, который отличает фантомный ACK от реальной батареи, читает SBS и vendor-слой, проверяет PEC, называет точную версию, ловит reset и загрузочные стадии, сравнивает исправный и плохой пак, пишет SIG и строит временную диаграмму возврата блокировки.
Я начал с неизвестной распиновки и предположения, что внутри обычный DJI BQ. Закончил точной границей проблемы.1 219
Итак, благодаря вашей активность осталось всего 100-120 штук у меня
Удалось выпросить сделать у производителя больший размер от 35км и 50км при толщине оптики 0.25
Я предложил помощь и завтра я думаю мне пришлют перечень уточняющих вопросов, которыми я поделюсь с вами.
Вопросы по типу размеров, допусков, массы и тп, чтобы выбрать золотую середину для производства
1 219
Приехала первая посылка
Спасибо за обратную связь и за платы которые вы предоставили на реверс✊
1 219
+3
Не раз уже убеждался в необъятной силе тех кто читает меня, обращаюсь сегодня к электронщикам.
Украинцы летают используя такие платы и как я понимаю это управляющая плата питания которая служит защитой от высокого и низкого напряжения. Чтобы защитить АКБ дронов от ухода в блок.
Я более чем уверен среди тех кто читает этот пост есть те кто смогли бы дать совет и помочь в создании подобной платы. Все затраченные ваши силы и мои пойдут на благо, схема, компоненты и трассировка платы + запишу видео по сборке я хотел бы опубликовать, чтобы каждый мог собирать себе такую плату и сохранять жизнь АКБ.
Рад каждому кто откликнется✊
1 219
😕Пришло время опустить руки или как я 128 дней подряд хакал аккумуляторы DJI Matrice 4T BPX345.
В цифрах это выглядит так: 686 страниц официальных TI datasheet и TRM, около десятка профильных GitHub issues, несколько чужих кодовых баз, минимум 86 стендовых логов на 67 564 строки, 1024 проверенных сервисных значения, 26 опубликованных ключей DJI, 18 зашифрованных образов WA345, 158 архивов и 34 945 файлов, просмотренных в поисках plaintext.😰
Финальный результат: ни одной стойко восстановленной батареи. По моему учёту убито 61 АКБ, 32 новые и 29 б/у. Под словом «убито» здесь конкретный критерий: SDA и SCL больше не дают данных, 0x0B и 0x61 молчат, это мёртвый SMBus.
Исходных проблем было две. Первая появлялась после работы с допкой 5S на штатной системе 4S. Вторая после глубокого разряда. Для 5S удалось поймать нормальный технический след:
CHGV, SU и IN, то есть перенапряжение, suspend и запрет заряда. Момент глубокого разряда в сохранённые логи не попал, поэтому придумывать ему отдельный байт ошибки я не буду.
Когда всё начиналось, я даже не знал точно, что сидит на девяти контактах батареи. SMBus, UART, отдельный boot-интерфейс или что-то полностью своё. Пришлось восстановить распиновку GND×3, SDA, SCL, SIG, B+×3, перебрать ориентации SDA/SCL, все адреса, гипотезы 0x0B и 0x55, проверить фантомные ACK, clock stretching и альтернативные способы пробуждения.
Под каждую гипотезу писалась отдельная проба. Поиск пэдов, полный SBS dump, MAC через 0x00, 0x44 и 0x23, прямые статусы, DataFlash, карта доступного в sealed, UART sniff, DUML probe, ROM mode и boot signatures.
Дальше пошла авторизация. Архивные, полевые и стандартные ключи TI. Разные byte order, обратный порядок слов, разные задержки, запись word и block, с PEC и без. Отдельно реализовал SHA1/HMAC challenge-response с TI default, нулевым ключом, FF и составными кандидатами. Проверил ROMMode 0x0F00, старый 0x0033, чтение SecurityKeys и шесть вариантов boot-входа на двух адресах и четырёх частотах.
Отдельная засада была с SEC=3. На WA345 он остаётся таким же и после рабочей сервисной авторизации, потому что уровень защиты задаёт сама прошивка. Поэтому доступ проверялся не по смене SEC, а по поведению сервисных команд. Команды начинали работать, но защищённое хранилище DJI это всё равно не открывало.
Я побайтово разобрал софт KNN, Battery Killer и подобную кучу софта от Украины до Китая. Но никакие старые методы и попытки сброса флаги ошибок не актуальны и никак не модернизировать под новую серию акб.
У исправной 0xDD=0. У заблокированных пакетов стабильно встречался 0xDD.bit1. Регистр 0x90 оказался 22-байтным многостадийным вектором состояния. На одном пациенте он доходил до 01 02, на другом плохом пакете выглядел иначе. Поэтому 01 02 не является универсальным кодом 5S или глубокого разряда.
Ещё важнее другое. На части больных батарей стандартные TI SafetyStatus, ChargingStatus и PFStatus уже были полностью чистыми, а DJI-защёлка оставалась. Я впервые увидел точную границу: обычная защита gauge уже отпустила событие, но поверх неё прошивка DJI продолжала запрещать работу.
Часть 1/2 чуть позже напишу более интересные детали иследования
Но итог готов дать уже сейчас, я не смог сейчас победить акб от м4т, у меня закончились силы и золото на иследование😰1 219
https://ozon.ru/t/9ofxNGn
Теперь тоже можно заказать через OZON )
Не выкладывал ссылку, ждал пока доедет на склад в Ростов
Планирую еще отгрузить на МСК
1 219
https://ozon.ru/t/j7WBnyn
Теперь доступно для заказа и на OZON)
Как я понял большинству комфортнее и проще заказывать с озон, чем писать мне в личку.
1 219
Всем доброго дня 👋
Раз были те кому понравились посты разборы, то выкладываю свои старые наброски)
🔥 Что DJI спрятала за фразой «Fixed some known issues» в свежей прошивке wm260?
10 июля DJI выпустила для обычного Mavic 3 и Cine прошивку 01.00.1600. Предыдущая, 01.00.1500, вышла почти два года назад.
В описании, как обычно, одна полезная строчка: Fixed some known issues.
Решил посмотреть, что именно они там исправляли.
Внутри прошивки аппарата лежит 7 отдельных модулей. Между 1500 и 1600 реально поменялись только два:
E1E с версии 10.01.01.29 до 10.01.01.44
E2 с версии 10.01.01.29 до 10.01.01.39
Остальные пять модулей совпадают побайтно. Это LCPU, контроллер питания, батарея и ESC.
То есть логику батареи, питания и управления моторами в этой прошивке не трогали.
Основные изменения находятся внутри двух бортовых Android-систем.
В E1E заметно переделали полётные, камерные и vision-компоненты. Изменения есть в dji_flight, dji_perception, dji_rcam и библиотеках внутреннего протокола DUML.
В E2 изменений меньше. Сильнее остальных поменялась libmedia_fly_assistant. Судя по месту этой библиотеки в системе, часть исправлений может относиться к работе камер и медиапотока. Но без проверки на живом аппарате придумывать конкретные исправленные ошибки не буду.
Ещё один интересный момент. При обычном сравнении видно несколько сотен изменённых файлов с моделями perception. Можно подумать, что DJI обновила сами нейросети.
После распаковки вложенных контейнеров оказалось, что данные моделей старые. Изменилась подпись и упаковка, а содержимое осталось прежним.
С DSP-прошивками примерно такая же история. У E2 расшифрованный код совпадает полностью. У E1E отличаются только даты сборки, сам исполняемый код тот же.
Ядра Linux тоже практически не менялись. Версии и коммиты старые, отличия в основном находятся в датах сборки и служебных идентификаторах.
Новых и удалённых файлов в системных разделах нет. DJI взяла старое дерево и точечно заменила отдельные компоненты.
По итогу 01.00.1600 больше похожа на ремонт perception, камеры, медиатракта, DUML и защищённых компонентов. Полётную платформу, ESC и батарейную часть не обновляли.
Официальные примечания DJI:
https://terra-1-g.djicdn.com/6189933d30024fc1b331bffe4fe41837/mavic-3/RN/20260710/DJI_Mavic_3_Release_Notes_EN.pdf
Если вам интересно читать подобное - ставьте реакции, так я пойму что нужно писать чаще подобные посты. 🙏
1 219
А что вообще делать с FPV на оптике?
Последнюю неделю потратил на изучение того, как эту проблему формулируют не телеграм-эксперты с диванов, а инженеры и военные аналитики НАТО.
В 2025 году NATO ACT организовало отдельный конкурс по противодействию оптоволоконным FPV.
На него поступило 162 инженерных решения из 20 стран, 42 — от украинских команд.
И вот что действительно интересно.
Задача звучала не как «чем заглушить оптику».
Она была разбита на последовательность, которая с точки зрения инженерии и физики выглядит абсолютно логично:
обнаружить → сопроводить → нейтрализовать.
Требования тоже были вполне приземлённые: обнаружение с 500 метров, работа ночью и в плохую погоду, масса комплекса менее 100 кг и, что особенно важно, адекватная стоимость.
Из девяти финалистов большинство пришли примерно к одной архитектуре:
радар + оптика/тепловизор + иногда акустика + объединение всех данных программным обеспечением.
То есть появления одной «антиоптики» в виде чудо-машины, похоже, ждать не стоит.
Есть ещё один интересный момент.
RUSI пишет, что Украина только на 2025 год ставила цель производства 4,5 млн БПЛА, после более 2 млн FPV в 2024 году.
Это уже не борьба с редкими высокотехнологичными целями.
Это борьба с промышленно массовой угрозой.
А против массовой угрозы нужен такой же массовый и дешёвый ответ.
И вот здесь, как мне кажется, находится главная проблема.
Сегодня вопрос уже не в том, можно ли уничтожить FPV на оптике.
Можно.
Вопрос в другом:
сколько стоит один предотвращённый удар?
Если для уничтожения аппарата стоимостью условные сотни долларов каждый раз приходится применять решение стоимостью в десятки или сотни тысяч, то в условиях массового применения такая математика очень быстро перестаёт работать.
Именно поэтому мне кажется, что мы наблюдаем не конец эпохи РЭБ, а начало новой инженерной гонки.
Оптоволокно не сделало FPV неуязвимыми - оно лишь убрало одну привычную точку воздействия и заставило напрячь извилины.
Теперь побеждать, скорее всего, будет не тот, кто создаст очередную «волшебную таблетку за миллионы», а тот, кто раньше обнаружит цель и сможет делать это массово, автоматически и экономически эффективно.
Именно за этим направлением я бы сейчас следил внимательнее всего.
Если вам интересно читать подобное - ставьте реакции, так я пойму что нужно писать чаще подобные посты. 🙏
1 219
Молодые инженеры-бойцы Военно-технического центра "Царские волки" с учетом боевого опыта применения БПЛА "доводят их до ума". Подразделениям территориальных и добровольческих батальонов Донбасса готовы предоставить необходимую помощь и консультации.
Ждем вас в гости в нашем защищенном "Логове" - Командно-наблюдательном пункте Добровольческой ударной бригады.
1 219
Ух скинули мне тут видос со мной из далекого 2023, как будто в другой жизни было :D еще такой молодой и зеленый, вот уж проблемы тогда были, я уже и забыл что такое аэроскоп)
1 219
+1
Продолжаем активно отгрузки
Доставка в любое место
Коробки на фото уезжают сейчас в Донецк 🫡
1 219
Суета)
Продолжаем отгружать ваши заказы
Осталось около 100шт незабронированных, следующая поставка через 7 дней)
Скоро сможем отгрузить на склады озон, чтобы заказать было еще удобнее, нооооо с учетом всех налогов и комиссий цена буде на озон около 2400 против 1500+доставка через ТГ
Кому нужны чеки для финки, можем сделать без проблем 🤝
Всем мир
