🇺🇸 English

DJI Mavic Mini CE FCC хак

Подходит и для Mini SE, но процедура иная. См. FAQ ниже.

Предупреждение

Это эксперимент исключительно в образовательных целях.

Пожалуйста, не пытайтесь повторить это дома, т.к. это может обнулить вашу гарантию и нарушить местные правила по использованию радио частот. Летайте безопасно и ответственно.

На моём дроне и пульте стояла прошивка v01.00.0500, когда я исследовал этот хак.
Позже, на уже хакнутый пульт и дрон я накатил обновление прошивок и того и другого: v01.00.0600 и всё продолжает работать нормально: хак действует по-прежнему, летаю как всегда. Никогда с тех пор не приходилось заново спаривать пульт с дроном.
Летаю на DJI Fly v.1.6.9 под Android v.10


Описание

DJI ограничивает радио частоты и мощность радио сигнала, чтобы соответствовать местным правилам. Этот хак позволяет снять эти ограничения. Например, для Mavic Mini CE в России появится диапазон 5.8 GHz (WiFi каналы 149 — 165) и мощность передатчика возрастёт. После этого хака можно пользоваться дроном как обычно.

План действий:

  1. Шаг 1. С помощью Fake GPS дрон решит, что он находится в США или Боливии и включит оба диапазона и макс. мощность;
  2. Шаг 2. Изменим в пульте настройку, чтобы дрон не переключился обратно в ограниченный режим.

Видео

Я записал видео на английском языке, но добавил субтитры на русском.

Что понадобится для хака

Более ничего. Никаких специальных адаптеров, языков программирования или платного софта. Просто и бесплатно!

* iPhone, iPad

На iOS устройствах, как говорят, тоже легко можно применить этот хак. Использовали 3u tools чтобы подделать местоположение на Боливию. И даже не пришлось понижать версию DJI Fly — всё сработало и со свежей версией приложения.

Шаг 1

На Android телефон установим:

Fake GPS Location

С этим приложением сымитируем, будто мы находимся в США или Боливии. Делать это нужно дома, под крышей, чтобы дрон не поймал спутники GPS.

Установим Android приложение Fake GPS Location из Google Play.

Надо включить режим Разработчика в телефоне. В меню Настройки, О телефоне, найдите "Build number" или "версия MIUI" и коснитесь этот пункт 7 раз. Должно появиться сообщение «Теперь вы Разработчик».

Теперь надо зайти в меню Разработчика, в Расширенных настройках найти «Приложение местоположения»и выбрать там Fake GPS Locaion.

Откроем приложение Fake GPS Location и на карты установим точку где-то в США или Боливии и нажмём кнопку с треугольником. Теперь телефон станет полагать, что находится в том месте на карте. Это можно проверить в любом приложении, где показывается текущее положение, например, Яндекс Картах.

DJI Fly 1.1.2

Удалите с телефона нынешнюю свежую версию DJI Fly. Скачайте старую DJI Fly App 1.1.2 на телефон и установите её. Она понадобится только один раз, сейчас, для хака. Потом вернёте свежую.

Включаем дрон

Подключите пульт к телефону, включите пульт и запустите DJI Fly App 1.1.2
Включите дрон.
Дождитесь, чтобы дрон соединился с пультом.

В приложении должно появиться сообщение типа

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

Это значит, что всё идёт как надо. Нажмите меню три точки справа сверху и зайдите во вкладку «Передача»
Там должно быть видно частоту 5.8 GHz и в графике должны появиться WiFi каналы 1..13 и 149..165. Теперь осталось зафиксировать этот режим, чтобы он не соскочил.
Выключите дрон, пульт и отключите пульт от телефона.

Шаг 2

Поменяем в пульте одну настройку, чтобы выбранный в Шаге-1 режим сохранился.

Понадобится:

  1. Компьютер с любой ОС и браузером: Chrome, Opera или Edge.
    Safari, FireFox не годятся;
  2. ваш пульт от Mavic Mini;
  3. USB кабель, чтобы подключить пульт к компу – он есть в комплекте дрона.

План действий
  1. в браузере включить «экспериментальные возможности» (Experimental features)
  2. подключить пульт к компу кабелем
  3. включить пульт
  4. нажать кнопку ниже
  5. в появившемся меню выбрать пульт

Прокачаем браузер

Чтобы работать с серийным портом, сейчас потребуется включить Экспериментальные возможности. Скопируйте ниже строку, соответствующую вашему браузеру и вставьте её в адресную строку:

chrome://flags/#enable-experimental-web-platform-features

opera://flags/#enable-experimental-web-platform-features

edge://flags/#enable-experimental-web-platform-features
    

Там в странице настроек включите "Experimental Web Platform Features". Браузер попросит перезапустить его.

Хакнем пульт

  1. Подключите ваш пульт USB-кабелем к этому компьютеру.
  2. Включите пульт.
  3. Нажмите кнопку ниже. Появится окно выбора серийного порта – выберите там ваш пульт. У меня на Маке он называется "Gadget Serial v2_4".

Как откатить хак

Чтобы вернуть ваш пульт в его «заводское» состояние:

  1. Подключите пульт к этому компу USB-кабелем
  2. Включите пульт
  3. Нажмите кнопку ниже и выберите в списке серийный порт вашего пульта ("Gadget Serial v2_4"):

После хака

  1. Отключите (и можно вообще удалить) приложение Fake GPS Location
  2. Удалить старую версию DJI Fly App 1.1.2
  3. Установите свежую версию DJI Fly App из Google Play или с сайта DJI

FAQ – часто задаваемые вопросы

Для DJI Mini SE этот хак подходит?
Да. Пульт там тот же, что и у DJI Mavic Mini: модель MR1SD25. Но не подойдёт описанная в видео процедура.
Зато можно хакнуть с помощью iPhone. Хорошие люди записали подробное видео с инструкцией. iPhone понадобится только раз, для применения хака. Летать потом можно с любым телефоном.
Для DJI Mini 2 этот хак подходит?
Нет. Хак только для пульта MR1SD25, который используется с дронами DJI Mavic Mini и Mini SE.
Можно ли после этого обновлять DJI Fly App?
Можно. Старая версия 1.1.2 была нужна только раз, в Шаге 1. После примения хака надо удалить старую версию. Установить и пользоваться самой свежей версией DJI Fly App с Google Play или сайта DJI. Пользоваться дроном как всегда.
Как этот хак работает?
Всё делает фокус с Fake GPS: дрон начинает думать, что он в США или Боливии и включает радио на полную. В других странах, по сравнению с ними, мощность и допустимые радио частоты ограничены. Кнопка на странице отправляет в пульт последовательность байтов, которые запрещают пульту в дальнейшем изменять настройки радио. Это не влияет на определение дроном своего местоположения. Он не улетит в Боливию )
Подробнее, технически, как работает этот хак?
Он изменяет единственную настройку: с disable_country=0 на disable_country=1 в файле конфигурации wifi.conf в пульте. Специальная последовательность байтов отправленая в серийный порт через USB устанавливает эту настройку. Гуглите "DJI DUML" и "0x55 sequences".
Байты, чтобы залочить страну:
0x55 0x0e 0x04 0x66 0x2a 0x1b 0x07 0x27 0x40 0x06 0xfb 0x02 0xac 0x35
Байты, чтобы вернуть заводскую настройку:
0x55 0x0e 0x04 0x66 0x2a 0x1b 0x25 0xf9 0x40 0x06 0xfb 0x03 0x9c 0x37

Благодарности

Идея хака и «волшебные» байты: русскоязычный Telegram чат @mavicminirus

JavaScript-версия хака в браузере, эти инструкции и видео: Сергей Соколов (Telegram @sergiks)