Реверс апдейтеров + API-карта модуля (172 команды)

RT-4D Upgrade (.NET, DES+RSA) прошивает AT32 (протокол 39 33 05 = загрузчик рации),
НЕ модуль. Полный список 172 ATC/SP-команд модуля (research/module-fw/). У приложения
модуля НЕТ команды дампа flash -> полный дамп NV/RF Firmware только через загрузчик
модуля (download-режим, live). Cal-значения (SPCali_*: FreqOpt/AnaVccn/DigMod) доступны
B-командами. docs/fm100b-firmware-re.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NikMGoqQWWk9wy2ww2vJAr
Этот коммит содержится в:
2026-07-24 04:52:15 +09:00
co-authored by Claude Opus 4.8
родитель 4e93d9a4dd
Коммит 1d196eff89
2 изменённых файлов: 191 добавлений и 0 удалений
+19
Просмотреть файл
@@ -64,6 +64,25 @@ Bootloader | Application | RF Firmware | NET info
снять полный дамп → распарсить EasyFlash ENV (NET info) + разобрать RF Firmware (vocoder/DMR).
Это разблокирует СРАЗУ: NV-настройки, калибровку, и сам DMR-baseband для реверса.
## Апдейтеры: кто что прошивает (реверс .NET)
- **RT-4D Upgrade V3_25** (`Ido_Update`, DES+RSA) прошивает **AT32 (главный CPU рации)**, НЕ модуль:
команды `Send_Connect=39 33 05 10 c9`, `Send_Update=39 33 05 55 0e`, `Send_End=39 33 05 ee a7`
— это протокол **загрузчика AT32** (тот же `39 33 05`, что в `tools/flash_ps.py`). Для дампа
flash модуля НЕ годится.
- **Radio Tuning Software** — калибровка модуля по 0x68 (см. docs/tuning-software-protocol.md).
- Отдельного PC-апдейтера МОДУЛЯ на рабочем столе нет; образы `FM100B_*.bin` = раздел Application
(0x175000 = ровно размер раздела), т.е. из вендорского пакета, не live-дамп.
## API-поверхность модуля (172 команды, research/module-fw/module_api_commands.txt)
Полный список ATC_*/SP*-команд (протокол 0x68 AT32↔модуль). Важное:
- Калибровка (NV): `SPCaliic_FreqOpt`/`SPCaliFreqSetCnf` (частота!), `SPCali_AnaVccnOpt` (VCCN аналог=0x80),
`SPCali_DigMod1Opt` (девиация), `SPCali_ChannelParamOpt`, `SPCali_AnaSQthOpt`, `SPCali_SQRXFreqOpt`,
`SPCali_HeadGQParamOpt`. Это NV-элементы, которые читаются/пишутся B-командами (0xB0–0xBD).
- ⚠️ `ATC_ClearNVdataReq` — СТИРАНИЕ NV (не слать!).
- **Команды дампа flash в приложении НЕТ** → полный дамп NV(«NET info»)/RF Firmware возможен только
через **загрузчик модуля** (download-режим), не через рабочую прошивку. Это живая операция (при владельце).
Сами cal-значения доступны и так — через B-команды (tools/tuning_read.py).
## Реальные следующие шаги (реверс+правка+тест)
1. **API-поверхность:** извлечь полный список ATC_*/SP*-команд (это протокол 0x68 между AT32 и модулем)
— карта того, чем вообще можно управлять. Уже частично в docs/fm100b-commands.md.