• v1.5.48 a4c6ee0f2c

    danik released this 2026-07-24 21:02:20 +03:00 | 117 commits to main since this release

    Новый принцип работы с регионом

    Регион теперь сначала читается и пишется только при расхождении — без привязки к какому-либо конкретному исходному значению.

    1. Read-only 07:19 возвращает текущий регион.
    2. Если он равен целевому AU — запись 07:30 не отправляется вообще.
    3. Если отличается любым значением (или не читается) — отправляется 07:30=AU и повторный 07:19.
    4. Пока readback не подтвердил AU, запись повторяется — до трёх попыток. Неподтверждённый результат логируется и не блокирует остальную последовательность.

    Выключение Auto FCC прерывает повторы: новая попытка не начинается.

    Режим Auto FCC — every 5 seconds

    Тик теперь состоит из одного read-only 07:19:

    • регион совпадает с целевым — не отправляется ничего;
    • регион разошёлся — выполняется запись региона и полный fcc.json (17 кадров × 2 раунда).

    В спокойном состоянии нагрузка режима падает с 72 обменов в минуту до 12. Четыре legacy-кадра fcc_keepalive.json рантаймом больше не отправляются — файл остаётся только как reverse-engineering reference.

    Home Point и ручная кнопка

    Оба пути используют тот же read-first flow: если пульт уже сообщает AU, лишняя запись региона не выполняется.

    Лог

    Формат строки: initial= — регион до вмешательства, writes= — сколько записей потребовалось (0 означает, что запись не понадобилась). В периодическом режиме строка пишется только при смене состояния.

    APK подписан тем же сертификатом, что и v1.5.47, поэтому поддерживает обновление поверх предыдущей версии.

    Downloads
  • v1.5.47 8eab1a4878

    danik released this 2026-07-24 20:48:12 +03:00 | 118 commits to main since this release

    Что изменилось

    Режим Auto FCC — every 5 seconds снова переустанавливает регион в каждом тике.

    В 1.5.46 country write 07:30=AU выполнялся только один раз при старте режима, а каждые 5 секунд уходили лишь четыре legacy-кадра (10:58, два 06:72, 10:58). Теперь каждый тик — это:

    1. 07:30 = AU — country write;
    2. 07:19 — read-only readback;
    3. четыре кадра fcc_keepalive.json (10:58, 06:72, 06:72, 10:58).

    Строка о country-тике пишется в лог только при изменении результата (ACK, readback или статус подтверждения), поэтому работающий режим не засоряет вкладку Log.

    Нагрузка режима выросла с четырёх до шести коротких обменов на тик: 72 в минуту вместо 48. Для пультов со слабыми ресурсами по-прежнему предпочтителен event-driven режим Home Point.

    APK подписан тем же сертификатом, что и v1.5.46, поэтому поддерживает обновление поверх предыдущей версии.

    Downloads
  • v1.5.46 74d0ac14b5

    danik released this 2026-07-24 20:39:30 +03:00 | 119 commits to main since this release

    Что изменилось

    • Country/region setup больше не повторяется внутри каждого раунда FCC-профиля. Перед FCC core приложение отправляет ровно одну 07:30=AU, затем одну read-only 07:19 и явно сообщает, подтверждён ли readback AU.
    • После успешного live-теста на RC2 rc331 из fcc.json удалены дубликат 07:30, отдельная 07:18 и слепой 07:19. Core-профиль уменьшен с 21 × 2 до 17 × 2.
    • Home Point, periodic bootstrap, ручная кнопка и LAN fcc_enable используют один общий country flow.

    Доказательная база

    На live rc331 одна 07:30=AU через port 8901 получила ACK 00 01, а последующий 07:19 вернул 00 41 55 00. Изолированная 07:18 не получила matching ACK и не изменила country readback ни на rc331, ни на rc520; на rc520 проверены оба старых маршрута 8901 и 40009.

    Отрицательный результат не переносится на непроверенные DJI-платформы: RC Plus/RM700 остаётся UNTESTED и требует отдельного 07:18/07:30 → 07:19 A/B.

    Документация

    Обновлены DUML_COMMAND_AUDIT.md, LAN_CONTROL_API.md; добавлены LTE_DUML_COMMAND_REFERENCE.md (карта command set 0x18/0x51, активация LTE-dongle) и DRONE_HACKS_MOBILE_APK_ANALYSIS.md.

    APK подписан тем же сертификатом, что и v1.5.45, поэтому поддерживает обновление поверх предыдущей версии.

    Downloads
  • v1.5.45 4cd92277e1

    danik released this 2026-07-23 22:35:43 +03:00 | 131 commits to main since this release

    Что изменилось

    • Устранено второе foreground-уведомление при запуске Auto FCC.
    • Постоянный статус приложения и активный режим теперь используют один канал и один notification ID.
    • Остановка keepalive больше не удаляет основное уведомление.

    APK подписан тем же сертификатом, что и v1.5.44, поэтому поддерживает обновление поверх предыдущей версии.

    Downloads
  • v1.5.44 34c36954a2

    danik released this 2026-07-23 20:20:24 +03:00 | 133 commits to main since this release

    Что изменилось

    • Постоянное уведомление теперь показывает и переключает Home Point, every 5 seconds и Off без открытия приложения.
    • Два Auto FCC режима стали взаимоисключающими слайдерами; оба можно выключить, активный режим подсвечивается зелёным.
    • Home Point режим снова ждёт следующую запись Home Point после применения FCC, поэтому продолжает работать после замены батареи дрона без перезапуска пульта.
    • Основное меню больше не меняется после команды; DJI Fly открывается только отдельной кнопкой.
    • Приложение и выбранный режим восстанавливаются после загрузки RC2.
    • В установке на RC2 больше не требуется 04_Edge Gestures: после первого запуска приложение открывается через постоянное уведомление.
    • Репозиторий переименован в danusha2345/SkylabFCCfree; updater и документация переведены на новый адрес.

    Подписано тем же сертификатом, что и v1.5.43, поэтому APK устанавливается как обновление.

    Downloads
  • v1.5.43 88a304bf52

    danik released this 2026-07-22 13:47:57 +03:00 | 137 commits to main since this release

    Что изменилось

    • Добавлено постоянное foreground-уведомление SkylabFCCfree — App is running; нажатие открывает приложение.
    • Добавлен автоматический запуск foreground-сервиса после загрузки пульта и после обновления APK.
    • Автозапуск не включает FCC, не запускает Auto FCC, не открывает DJI Fly и не отправляет DUML-команды.
    • На Android 13+ приложение автоматически запрашивает разрешение на уведомления при первом открытии.
    • Уведомление Auto FCC остаётся отдельным и показывает Cancel Auto FCC только во время активного автоматического режима.

    Проверка

    • Локально и в GitHub Actions прошли release assemble, unit tests и Android lint.
    • В собранном APK подтверждены BOOT_COMPLETED, MY_PACKAGE_REPLACED, foreground service и notification permissions.
    • APK: com.freefcc.app, versionCode=60, versionName=1.5.43.
    • Сертификат подписи совпадает с v1.5.42, поэтому APK устанавливается поверх предыдущего релиза.
    Downloads
  • v1.5.42 69f879cfe1

    danik released this 2026-07-22 13:25:37 +03:00 | 138 commits to main since this release

    Что изменилось

    • Добавлена защищённая LAN-команда logcat_capture для ограниченного по времени чтения DUSS73, известных OpenFCC.*/OpenFCC-LinkState tags и ошибок AndroidRuntime.
    • Захват работает асинхронно, по умолчанию 60 секунд, не открывает DJI DUML/DUSS-сокеты и ограничен 160 строками.
    • В логах явно показывается, доступно ли приложению protected permission READ_LOGS; нулевой результат не выдаётся за отсутствие активности OpenFCC.
    • В документации зафиксирован live-тест OpenFCC 1.2.30 на Avata 360 + RC2: FCC включается, но встроенный eSIM не активировался и вкладка оплаты DJI не появилась.

    Проверка

    • GitHub Actions: assembleRelease, unit tests и Android lint прошли.
    • APK: com.freefcc.app, versionCode=59, versionName=1.5.42.
    • Подпись совпадает с v1.5.41, поэтому APK устанавливается как обновление поверх предыдущей версии.
    Downloads
  • v1.5.41 b79b78dc37

    danik released this 2026-07-21 22:20:24 +03:00 | 148 commits to main since this release

    Полностью пассивная инвентаризация портов конкретного пульта.

    • Удалены все localhost connect()-пробы
    • Только чтение доступных /proc/net/tcp*, /proc/net/udp*, /proc/net/unix
    • JSON явно возвращает probe_attempted=false и inventory_method=proc_net_passive
    • Добавлены Unix socket type/state/inode/name
    • Документирована отдельная карта RC2: новый 40008, GPS-owned 5744, LTE/liveview и DUSS endpoints
    • Данные RC2 не переносятся на RC Pro 2; второй пульт проверяется отдельным snapshot

    APK подписан тем же сертификатом, что предыдущие тестовые релизы.

    Downloads
  • v1.5.40 a221b2719a

    danik released this 2026-07-21 22:04:28 +03:00 | 149 commits to main since this release

    Ручная полная инвентаризация localhost-портов RC2 без application payload и evidence-карта найденных внешних потоков.

    • Новый LAN command: local_socket_inventory
    • TCP scan 127.0.0.1:1..65535, общий deadline 20 секунд
    • Чтение доступных /proc/net/tcp*, /proc/net/udp*, /proc/net/unix
    • Auto FCC блокирует scan; фонового опроса нет
    • Документирован внешний high-rate stream RC2 на 8902 без преждевременной привязки к 4G/GNSS

    APK подписан тем же сертификатом, что предыдущие тестовые релизы.

    Downloads
  • v1.5.39 e6c5e93ae7

    danik released this 2026-07-21 20:53:38 +03:00 | 150 commits to main since this release

    Экспериментальный 4G flow и интерфейс подготовлены для live-теста Avata 360.

    • Отдельная вкладка 4G сразу справа от FCC.
    • Удалён model allowlist; принимается свежий полный 1581... S/N или корректный WAxxx/WMxxx identity.
    • serial_probe и four_g_activate больше не зависят от внутреннего FCC Connected-флага.
    • Info показывает app version, controller code, aircraft code, factory S/N и LAN bridge без ложного Connected/Disconnected и Version Info.
    • Код модели и factory S/N хранятся раздельно.
    • Новая общая иконка Skylab с дроном и траекторией, без привязки к 4G.
    • Перед релизом Avata 360: 33 валидных frame на 40007, свежий полный S/N в 51:14, /duss/mb/0x205 reachable; activation burst ещё не отправлялся.

    SHA-256 APK: 661c560b7a73b8fb5b1235b19c4bfaff16ce4795a1b8d82347f86d7bcddf9843

    Downloads