• v1.5.71 30189a5ed6

    danik released this 2026-08-06 19:50:13 +03:00 | 42 commits to main since this release

    1.5.71 — 2026-08-06

    • Один борт больше не считается двумя. Шина публикует S/N в двух видах: 51:14
      отдаёт полный 1581FA8JC264600B31QZ, а 03:44 — только хвост
      FA8JC264600B31QZ. Приложение принимало их за разные номера, подменяло
      сохранённый и отправляло в статистику один дрон дважды. Теперь короткая форма
      узнаётся как та же машина, хранится и отправляется полная.
    • Guard, который держит S/N только что отключённого борта, узнаёт его в обеих
      формах.
    • Чтение идентичности уступает дорогу FCC. В одном проходе по экрану Home Point
      теперь обрабатывается первым, а не после чтения S/N: иначе проба успевала
      занять порт 40007 в том же проходе, в котором появлялась «Домашняя точка
      обновлена», и FCC-запись ждала освобождения порта. То же исправлено для
      событий доступности: раньше событие, несущее и название модели, и текст Home
      Point, успевало запустить пробу до обработки Home Point. После срабатывания
      Home Point чтение идентичности молчит 30 секунд и, сверх того, не начинается,
      пока идёт попытка FCC-записи — её повторы могут длиться дольше паузы.
    • Окно чтения больше не может стать непрерывным опросом порта. Пустое окно
      закрывается и отсчитывает паузу, неизвестный S/N перепроверяется не чаще чем
      раз в пять минут, а чередующиеся обрывки названий на экране DJI Fly (DJI Lito X1 2021 / DJI Lito) открывают не больше одного окна в минуту.
    • Смена борта, доказанная кодом модели, отбрасывает серийник прошлого дрона в
      любой из двух форм — раньше короткая форма проходила проверку «тот же борт» и
      записывалась обратно рядом с новой моделью.
    • Каталог моделей пополнен из ресурсов самого DJI Fly: WA151 — DJI Lito X1,
      WA152 — DJI Lito 1, WA020 — DJI Neo 2, WM160 — Mavic Mini, WM161
      DJI Mini 2, WM1615 — DJI Mini 2 SE, WM1617 — DJI Mini 4K, WM163
      DJI Mini 3, WM170 — DJI FPV, WM231 — Mavic Air 2, WM232 — DJI Air 2S.
      Соответствие внутренней нумерации DJI кодам WA…/WM… нашлось в именах
      шрифтовых ресурсов (fly_uav165_wa151).
    • Код модели, оканчивающийся цифрой (WM1615, WM1617, WM2605), больше не
      принимается за серийный номер: шаблон допускал последним символом только
      букву.
    • Добавлен разбор APK DJI Fly — как приложение само получает S/N и модель
      (docs/DJI_FLY_APK_IDENTITY_MAP.md) — и справочник кодов продуктов
      (docs/DJI_PRODUCT_CODES.md).
    • Окно чтения на 40007 открывается ещё и после «Домашней точки». Смена борта,
      при которой DJI Fly не печатает название (а на полётном экране он его не
      печатает никогда), раньше оставалась незамеченной до ручного обновления.
      Домашняя точка появляется через одну-три минуты после старта — к этому моменту
      борт заведомо на связи и шина отдаёт номер. Одна домашняя точка открывает одно
      окно, и не раньше чем через 30 секунд, чтобы FCC-запись прошла первой. Окно
      по-прежнему не длиннее минуты: чтения по 1.2 с раз в 10 с.

    1.5.70 — 2026-08-06

    • Автоматическое пассивное окно чтения S/N на 40007 теперь из тех же
      принятых байтов извлекает product code и название модели. Дополнительный
      сокет не открывается, команды в дрон не отправляются.
    • Свежий DUML-код заменяет код и имя предыдущего борта. Имя с экрана DJI Fly
      сохраняет приоритет, если относится к тому же коду; устаревшее экранное имя
      больше не блокирует переход на новую модель.
    • S/N и модель сохраняются до планирования внеочередного отчёта статистики,
      поэтому snapshot получает актуальные aircraft_model_code,
      aircraft_model_name и aircraft_serial. При доказанной кодом смене борта
      старый S/N не отправляется рядом с новой моделью.
    • Имя без кода, оставшееся от прошлого борта, больше не приписывается новому:
      название, под которым шина знает пришедший код, вытесняет его, а редакция с
      экрана (DJI Avata 360 Enhanced Transmission edition) при том же коде
      сохраняется. Неизвестный каталогу код по-прежнему показывается как есть.
    • Окно чтения на 40007 больше не обрывается на 128-м кадре: шина отдаёт
      примерно столько за секунду, и чтение заканчивалось на пятой части окна,
      снижая шанс поймать S/N.
    • С главного экрана убран блок MODE: строки RF MODE UNKNOWN и No write evidence in this app session не сообщали ничего о реальном режиме радио и
      занимали место.
    Downloads
  • v1.5.69 a2b7919da4

    danik released this 2026-08-06 15:11:19 +03:00 | 44 commits to main since this release

    1.5.69 — 2026-08-06

    • Смену дрона определяет S/N из шины, а не название с экрана. На трёх бортах
      подряд приложение показывало серийник предыдущего: экран DJI Fly выдаёт
      обрывки вроде DJI Lito X1 2021 и DJI Lito, они чередуются, и ни одно
      название не успевает подтвердиться. Теперь смена названия лишь открывает
      короткое окно чтения, а решает прочитанный номер: совпал — скачок названия
      игнорируется, отличается — S/N заменяется сразу.
    Downloads
  • v1.5.68 ea7063253d

    danik released this 2026-08-06 14:46:39 +03:00 | 45 commits to main since this release

    1.5.68 — 2026-08-06

    • Автоматическое чтение S/N дрона теперь ограничено одной минутой после
      появления борта, с попыткой раз в 10 секунд. Раньше при неизвестном
      серийнике попытки шли каждые 30 секунд без конца — для дронов вроде
      Lito X1, которые не публикуют S/N в шине, это был вечный опрос порта
      впустую. Смена дрона открывает новое окно; вкладка Информация
      по-прежнему читает S/N в любой момент и порт не занимает.
    Downloads
  • v1.5.66 2045e19a76

    danik released this 2026-08-06 14:11:14 +03:00 | 47 commits to main since this release

    1.5.66 — 2026-08-06

    • S/N дрона теперь читается сам, без нажатия Connect и без открытия вкладки
      Информация. Пока серийник неизвестен, приложение делает одно короткое
      чтение шины раз в 30 секунд, пока на экране DJI Fly, и полностью прекращает
      попытки, как только номер прочитан. Название дрона триггером служить не может:
      DJI Fly называет его не всегда.
    • Порт 40007 при этом занимается на 1200 мс за попытку, чтобы DJI Fly не теряла
      связь с дроном.
    Downloads
  • v1.5.65 8b0a110caa

    danik released this 2026-08-06 13:46:15 +03:00 | 48 commits to main since this release

    1.5.65 — 2026-08-06

    • S/N дрона теперь читается с экрана Информация в DJI Fly через тот же
      accessibility-поток, что и S/N пульта. Порт 40007 для этого не открывается.
      Это единственный рабочий источник для бортов вроде DJI Lito X1, где кадр с
      серийником появляется в шине только на время открытия этого экрана.
    • Пассивный DUML-пробник серийника больше не полагается на одну попытку.
      Замер на живом DJI Mini 5 Pro: при серийнике, присутствующем в каждом окне
      захвата, одиночное чтение срабатывало примерно в половине случаев, причём
      удлинение окна не помогало — 2500 мс работали не лучше 1000 мс. Теперь
      выполняются три коротких чтения по 1200 мс с переоткрытием сокета; суммарно
      порт 40007 удерживается не дольше прежней единственной попытки.
    • При подтверждённой смене дрона сохранённый S/N сбрасывается. Раньше он
      оставался от предыдущего борта и уходил в статистику вместе с названием
      нового — например, серийник Lito X1 отображался рядом с DJI Mini 5 Pro.
    • Сервер статистики больше не переносит сохранённый S/N на другой дрон: прежнее
      значение удерживается, только если модель совпадает. История всех дронов
      пульта при этом сохраняется.
    Downloads
  • v1.5.64 ab866e5bdf

    danik released this 2026-08-05 15:17:17 +03:00 | 51 commits to main since this release

    Корректное название и код дрона

    • DJI Fly display revision вида V01 больше не считается частью названия модели: DJI Air 3S V01 сохраняется как DJI Air 3S.
    • Для известного названия автоматически заполняется product code. Для DJI Air 3S это WA234.
    • Collector дополнительно канонизирует пару код/название, поэтому старые версии приложения также не смогут повторно записать V01.
    • В приватном viewer название дрона под заголовком карточки сделано крупнее и жирнее; пересобраны Web, Windows, Linux и Android варианты 0.1.4.

    Проверено: полный JVM test suite, Android Lint, CI release-сборка, совпадение сертификата с v1.5.63, production health/integrity и фактическая строка WA234 / DJI Air 3S в SQLite.

    Downloads
  • v1.5.63 31203e4100

    danik released this 2026-08-05 13:48:17 +03:00 | 52 commits to main since this release

    S/N дронов и история по пультам

    • В статистику добавлен автоматически обнаруженный полный S/N дрона. Он читается из уже существующего пассивного DUML identity flow; открывать вкладку Информация и отправлять новые команды дрону не требуется.
    • Первое обнаружение или смена S/N отправляет внеочередной snapshot. Пустое значение означает, что приложение ещё не обнаружило S/N дрона.
    • Сервер накапливает все уникальные дроны по полному S/N пульта: смена дрона больше не затирает историю.
    • Приватный viewer показывает количество дронов на выбранном пульте, их S/N, модель и время последнего обнаружения.
    • Старые snapshots schema_version=1 продолжают приниматься; production SQLite автоматически обновлена до schema v3 без потери прежних данных.

    Статистика остаётся идентифицируемой: полный S/N пульта и обнаруженный S/N дрона не хешируются. Полный состав данных описан в docs/USAGE_STATISTICS.md.

    Проверено: полный JVM test suite, Android Lint, локальная и чистая CI release-сборка, production health/integrity, совместимость подписи APK с v1.5.62.

    Downloads
  • v1.5.62 04126001dd

    danik released this 2026-08-04 17:29:48 +03:00 | 54 commits to main since this release

    Исправление модели дрона и статистики

    • Код WA530 теперь определяется как DJI Avata 360; служебная строка DJI Inc больше не принимается за модель дрона.
    • Код продукта из ответа 00:82 имеет приоритет над общей строкой устройства из 03:34.
    • При неполных данных после события Home Point приложение один раз пассивно дочитывает идентификатор модели, не отправляя команд дрону и не создавая постоянного опроса.
    • При первом получении или изменении модели формируется внеочередной снимок статистики без ожидания суточного интервала.
    • Пассивное чтение отложено относительно Auto FCC, чтобы не мешать применению FCC при запуске.

    Проверено: 174 JVM-теста, Android Lint, подписанная release-сборка и совместимость подписи с v1.5.61.

    Downloads
  • v1.5.61 a857ce832e

    danik released this 2026-08-04 11:00:47 +03:00 | 56 commits to main since this release

    Фоновая статистика использования

    • Добавлен фоновый сбор версии и настроек SkylabFCCfree, версии DJI Fly,
      модели пульта и дрона, а также накопительных счётчиков основных функций.
    • Сбор содержит полный заводской S/N пульта: это идентифицируемая, а не
      анонимная статистика.
    • S/N автоматически читается один раз из системной идентичности пульта;
      окно Информация DJI Fly используется только как fallback.
    • Координаты, Home Point, маршруты, S/N дрона/батареи/камеры, DUML traffic,
      логи, Wi-Fi identifiers и пользовательские файлы не отправляются.
    • Отправка выполняется в фоне не чаще одного раза в сутки. Отдельного экрана,
      уведомления, переключателя или opt-out в приложении нет.

    Подробное описание payload и поведения клиента опубликовано в
    docs/USAGE_STATISTICS.md. Backend source, адрес и deployment-конфигурация не
    входят в публичный репозиторий.

    Downloads
  • v1.5.60 c795dc1415

    danik released this 2026-08-03 18:10:26 +03:00 | 58 commits to main since this release

    Исправление шторки:

    • Все семь подписей и статусов в кастомном блоке уведомления теперь имеют явный непрозрачный белый цвет.
    • До добавления GPS режимы FCC были системными Notification.Action, и светлый цвет назначал SystemUI. После перехода на общий RemoteViews наследуемый цвет на DJI SystemUI становился тёмным.
    • Прозрачные области нажатия, оба ряда FCC/GPS и автоматическая проверка GPS сохранены.

    APK SHA-256: d6f548775fe1efd5d9200c5e76e8655e1c0a8dc0c361eaadf3ed36a1b8fb11f4

    Downloads