Activity
тоже подобные мысли посещали, сегодня отлетал три аккумулятора в поле , все в стандарте ,без бустеров конфигов и франкенштейнеров 😃 улетел на 3000 метров , прилетел обратно было 55% , общий налет на одном аккуме примерно 8400 метров. Все вопросы по поводу прошивания , ковыряния отпали сразу. Единственное колпачки куплю на антенны и все.
Во Владовостоке хорошо - наверное, дрон подумал, что он на исторической родине, и решительно врубил ФЦЦ
Вот ещё вариант с модифицированными прошивками: …google.com/…/1dWbmcl_jV0m94UuH1IQ1gJC3yt71xOFW
Отличие от …google.com/…/1fynM3evNpF8Enepljjj4ertNbJxB-stW что в инструкции rcopen.com/forum/f132/topic500402/2000, по сути, тока в варианте с модом 01.03.0700.
Файлы “V01.04.0000_noFC_Mavic_dji_system.bin” (из папки в инструкции) и “V01.04.0000_(w-o 305&306_FC 905_NFZ)_Mavic_dji_system.bin” идентичны по внутреннему содержимому.
w-o в имени файла - это от “without”
а если WinHex`ом каким-неть поменять? по идее не нарушится целостность файла
это влажная мечта всех хакеров мира.
Но против математики не попрешь - если изменить содержимое файла хоть на один бит, у него поменяется контрольная сумма.
Для большей уверенности тогда, можно список файлов, которые должны быть в архиве?
Описание модулей есть где-нибудь?
например, здесь: github.com/MAVProxyUser/firm_cache
- Судя по содержимому файла “wm220.cfg.sig” существуют как минимум 3 модификации мавиков с разным железом
wm220 - это и есть мавик, но вот перечень самих модулей (за исключением базовых) не всегда постоянен - например, в 01.03.0400 нету 0905 (NFZ DB-).
Модуль модулю рознь - какие-то к железу конкретно относятся, какие-то - базы данных вон.
- В том же файле пугает строчка "expire=“2018/09/19"” (или expire=“2018/05/05” для версии .700)
Эту строчку туда DJI вписал, редактирование подписанных файлов (*.sig) недопустимо. Т.е. он(файл)/она(строчка) в любой оригинальной прошивке присутствует (в каждой версии - свой).
DJI, странное дело, не радует пользователей помодульным changelog’ом. Но интуитивно понятно, что с физикой полета, прописанной внутри Flight Controller’a, особо ничего не сделаешь. Разве что - уберешь какие дополнительные параметры из списка доступных для редактирования пользователем.
Посему, есть основания полагать, что код прошивок FC модулей меняется не сильно. А вот прочие вещи, типа режима постобработки изображения, поддержка очков, или там заскриптованных интеллектуальных режимов съемки, могут и кардинально поменяться.
Интересно, а фиксы от новых прошивок, тоже появляются
Есть фиксы, а есть “фиксы” - например, допиливание модуля камеры или подвеса - это фикс, а “повышение безопасности полетов”, с урезанными настройками макс. высоты или НФЗ - это “фикс”.
И кстати для новых полетных режимов нужна последняя немодифицированная джига.
У меня на Франкеншивке с 305&306 модулями из 01.03.0700 и всем остальным, кроме 305, 306, 905 из 01.04.0000, новые интеллектуальные режимы quickshot работают на оригинальной 4.1.10 на андроиде.
Кстати, к выходным отцы со слака обещают выкатить что-то новое интересное для патчинга apk
А Вы сами пробовали такие частичные заливки?
Да, как раз сегодня, когда ваял инструкцию, пересобрал по пути 1.04.0000->1.03.0400->1.03.0700(-905 NFZ)->1.04.0000(-305,-306,-905).
Смущает что такие продвинутые дроноломы не знают что у нескольких батареек прошивка и так обновляется “по быстрому”, без всяких костылей, родной джигой, стоит только выйти на главный экран и дождаться сообщения о несовместимых модулях.
Это не всегда так - не все используют родную джигу. Некоторые используют патченную DJI GO 4, которой запретили лезть проверять обновления и оставили интернеты только для карт и первичного логина. Ну или Flight Mode на телефоне/планшете.
И на мой взгляд эти манипуляции очень рискованны, ведь может случиться что один модуль пошлет другому команду, которая ему неизвестна, либо синтаксис изменился и т.д.
Риск, конечно, есть. Но пока никаких сообщений о таинственных крэшах или улётах от попробовавших не поступало.
Решил тут поделиться с энтузиастами опытом, почерпнутым у дружественных дроноломов.
DJI Firmware Module mixing на примере MavicPro.
Disclaimer - всё на свой страх и риск, а также спасибо товарищам с dji-rev.slack.com за наше счастливое детство, ну и прочий fly safe.
Преамбула.
*.bin файлы прошивки, доступные на странице github.com/MAVProxyUser/dji_system.bin/…/bins , являются, по сути, архивами (.tar), содержащими набор файлов с прошивками индивидуальных модулей железа дрона (пульта управления, очков). Интересующиеся могут ознакомиться с подробностями тут: github.com/MAVProxyUser/firm_cache
Известно, что по мере эволюции прошивок, DJI, с одной стороны, добавлял новые фишки (совместимость с очками, автоматические режимы съемки, и т.д.), а с другой - убирал возможности по редактированию параметров полёта (максимальная высота, NFZ).
Параметры полета используются модулями FlightController - wm220_0305_* и wm220_0306_*, модуль wm220_0905_* содержит базу данных NFZ.
Поэтому, желающим заполучить актуальные “фишки” новых прошивок, но при этом сохранить полный контроль над параметрами полёта, имеет смысл установить прошивку-“франкенштейн”, используя модули 0305 и 0306 из прошивки 1.03.0700 (или 1.03.0400), а прочие модули - из прошивки 1.04.0000 (без модулей 0305, 0306 и 0905). В принципе, удалять модуль 905 наверное, не обязательно, раз уж NFZ редактированием параметров отрубается (на версиях прошивок <=1.03.0700). Но, по слухам, в процессе полетов вылезает меньше назойливых поп-апов (#ноэтонеточно).
К сожалению, нельзя “просто так взять и” сразу создать версию “всё нужное в одном” - в архиве dji_system.bin, загруженном на дрон при помощи DUMLDore, находится файл wm220.cfg.sig. Он содержит информацию о конфигурации для модулей прошивки из архива dji_system.bin для данной версии прошивки. При этом, нельзя заменить модули wm220_0305 и wm220_0306 в прошивке 1.04.0000 на более ранние версии из прошивки 1.03.0700, т.к. информация о “старых” версиях отсутствует в wm220.cfg.sig
Когда файл dji_system.bin загружен на дрон, он распаковывается, дешифруется, подписи модулей сверяются с wm220.cfg.sig, и происходит обновление модулей, прошивки для которых содержались в архиве. Если в архиве отсутствует файл прошивки для определенного модуля, updater-скрипт оставляет текущую установленную версию и продолжает далее по списку.
Амбула.
Алгоритм на примере микса модулей из 1.03.0700 и 1.04.0000 для MavicPro.
-
Убеждаемся, что батарейка полностью заряжена
-
Скачиваем:
-
архиватор 7zip (www.7-zip.org/download.html) - например, 7-Zip 17.01 beta (2017-08-28)
-
нужные версии прошивок (github.com/MAVProxyUser/dji_system.bin/…/bins) - например, V01.03.0400_Mavic_dji_system.bin, V01.03.0700_Mavic_dji_system.bin, V01.04.0000_Mavic_dji_system.bin
-
ZIP архив с github.com/jezzab/DUMLdore , текущая версия 2.0
- Откатываем прошивку дрона на 1.03.0700 (см пункт 4 здесь: dji.maximlord.ru) при помощи DUMLDore.
Процедура с перепрошивкой не всегда проходит гладко, и может напугать зависанием на 86% или 61%, если наблюдать за прогрессом в Assistant2. Важный критерий - передние красные диоды в процессе прошивки мигают, и в этот момент питание дрона ни в коем случае нельзя выключать. Если передние диоды мигать перестали и всё время горят красным, задний диод быстро мигает желтым (дрон пытается связаться с пультом управления), а ассистент2 залип на xx% и/или при перезапуске вообще не видит дрон, помогает включить пульт и подождать установления соединения. В некоторых случаях может потребоваться несколько циклов включения-выключения (#ноэтонеточно).
-
Распаковываем 7-зипом архив прошивки V01.04.0000_Mavic_dji_system.bin
-
Удаляем из директории с распакованной прошивкой файлы модулей wm220_0305, wm220_0306 и wm220_0905, выделяем оставшиеся файлы и тем же 7-зипом упаковываем в архив формата tar с расширением .bin (например, “V01.04.0000(-305_306_905)_Mavic_dji_system.bin”). Пакуем не саму “облегченную” директорию, а именно выделенные файлы!
Также имеет смысл создать версию прошивки V01.04.0000, содержащую модуль wm220_1100 (ну и wm220.cfg.sig, разумеется) - это пригодится людям, у которых несколько аккумуляторов для мавика, т.к. можно будет поочередно по-быстрому обновить прошивку только батареек.
-
Накатываем модифицированную на предыдущем шаге прошивку 1.04.0000 на дрон при помощи DUMLDore
-
Profit!
Возможны другие последовательности шагов - например, откат до 1.03.0400 (в ней вообще изначально отсутствует NFZ модуль wm220_0905), затем апгрейд до 1.03.0700 с удаленным wm220_0905, затем апгрейд до 1.04.0000 с удаленными 0305, 0306, 0905.
Главное - модифицированный архив *dji_system.bin ДОЛЖЕН содержать wm220.cfg.sig и МОЖЕТ содержать меньше (хоть один-единственный, например - для батарейки wm220_1100) либо столько же модулей, как и оригинальная версия, но не должен содержать “неродных” версий прошивок модулей.
В принципе, последовательность обновления прошивок не критична, но могут быть глюки с отображаемой глобальной текущей версии прошивки в DJI Assistant2, поэтому первым шагом рекомендуется откатываться на самую раннюю версию из желаемых.
———————
А вот гражданин со слэка уже сделал кастомы:
Some stripped back fw
- 1.3.400 fc 305 & 306 to load old fc (только модули 305 306 от 1.03.0400)
- 1.4.0000 gim 400 to set version back to 0000 (если ставили то, что в 1) поверх 1.04.0000, общая версия в Assistant2 будет 1.03.0400, а накатив 2), будет 1.04.0000)
- 1.4.0000 nofc -305 & 306 to update to 0000 -fc (1.04.0000 без 305, 306 и, на самом деле, 905)
- 1.4.0000 bat 1100 to update additional batteries (толко модуль батарейки, чтоб по-быстрому обновлять только его, у кого несколько аккумов)