Щиток KMBI_PL2 (HKOML2/BKOML2/DKOML2/KOMBL2), МК
Fujitsu MB90F395HA (F2MC-16LX, flash 0xF80000–0xFFFFFF),
диагностический SGBD KOMB87.prg. Таблица джобов сгенерирована
из docs/research/KOMB87_JOBS.md
скриптом tools/site/build_jobs_data.py — данные не расходятся
с исходником реверса.
Полный список джобов диагностического SGBD KOMB87.prg с
адресами внутри контейнера и официальными комментариями BMW
(BIP 07.01.00, редакция 5.2) в колонке «Описание». Метки
FIRMWARE — группа с challenge-response
аутентификацией и проверкой подписи, CODING
— коддинг NCS Expert (без крипто-подписи, только контрольная сумма).
Колонка «Комментарий» — наш собственный перевод-пояснение на русском
(KOMB87_JOBS_RU.md),
не официальный текст BMW, а наша трактовка, что делает джоб и зачем он нужен.
| Джоб | Адрес | Описание | Комментарий |
|---|
Из KOMB87_SGBD_FINDINGS.md — это официальная документация BMW внутри SGBD, а не наш вывод.
| Джоб | Служба KWP2000 | ID / routine | Фрагмент телеграммы |
|---|---|---|---|
SPEICHER_LESEN | $23 ReadMemoryByAddress | — | 86 FF F1 23 … |
SPEICHER_SCHREIBEN | $3D WriteMemoryByAddress | — | 80 FF F1 … |
AUTHENTISIERUNG_ZUFALLSZAHL_LESEN | $31 StartRoutineByLocalIdentifier | $07 RequestForAuthentication | 83 FF F1 31 07 00 |
AUTHENTISIERUNG_START | $31 | $08 ReleaseAuthentication | ключ в BINAER_BUFFER |
FLASH_SIGNATUR_PRUEFEN | $31 | $09 CheckSignature | 83 FF F1 31 09 02 |
FLASH_PROGRAMMIER_STATUS_LESEN | $31 | $0A | 82 FF F1 31 0A |
FLASH_LOESCHEN | $31 | $02 ClearMemory | 89 FF F1 31 02 00 00 00 06 00 00 00 |
FLASH_SCHREIBEN_ADRESSE | $34 RequestDownload | — | 89 FF F1 34 00 00 00 06 00 00 00 00 |
FLASH_SCHREIBEN | $36 TransferData | — | телеграмма из данных |
FLASH_ZEITEN_LESEN | $22 ReadDataByCommonIdentifier | ID 0x2501 | 83 FF F1 22 25 01 |
FLASH_BLOCKLAENGE_LESEN | $22 | ID 0x2506 | 83 FF F1 22 25 06 |
SPEICHERSEGMENT)Аргумент джобов SPEICHER_LESEN/SPEICHER_SCHREIBEN —
нужны для низкоуровневого доступа к flash в обход coding-слоя.
| SEG_BYTE | Имя | Смысл |
|---|---|---|
0x00 | LAR | linearAdressRange |
0x01 | ROMI | ROM/EPROM, внутренний |
0x02 | ROMX | ROM/EPROM, внешний |
0x03 | NVRAM | NV-RAM (характеристики, память DTC) |
0x04 | RAMIS | RAM внутренний (short MOV) |
0x05 | RAMXX | RAM внешний (x data MOV) |
0x06 | FLASH | Flash EPROM, внутренний — то, что нужно для доступа к 0xFFC000–0xFFFFFF |
0x07 | UIFM | User Info Field Memory |
0x08 | VODM | Vehicle Order Data Memory |
0x09 | FLASHX | Flash EPROM, внешний |
0x0B | RAMIL | RAM внутренний (long MOV / регистры) |
0xFF | ??? | неизвестный сегмент |
SPEICHER_LESEN(SEGMENT, ADRESSE, ANZAHL) принимает имя
сегмента строкой, ANZAHL — 1…254 за один вызов. Для
0xFFC000–0xFFFFFF: SEGMENT="FLASH",
ADRESSE=0xFFC000, цикл по 254 байта.
Из tools/patcher/kombi_patcher.py — конкретные, опробованные на дампах смещения внутри образа flash.
| Адрес | Модуль патчера | Что это |
|---|---|---|
| 0xF83DEE | 8HP shiftlight | глиф пробела (0x20) → глиф цифры «8» (0x38), рендер 8-й передачи на экране |
| 0xFB9958 | 8HP shiftlight | лимит максимальной отображаемой передачи D7 → D8 |
| 0xFB9FF0 | ACC shiftlight | «карман» в прошивке (8 208 Б свободного места) — инжекция собственного F2MC-кода полосок ACC-шкалы |
| 0xFBA060 | Телеметрия | второй «карман» (Pocket H2) — диспетчер страниц мультиплексора (ОЖ, масло, бак, скорость) |
| 0xFDC1CD | Телеметрия | хук в диспетчер нажатия кнопки BC → переключение страниц телеметрии |
| 0xFC2FCA | Needle sweep | подмена вызова на штатную процедуру самотеста приборки при старте (развёртка стрелок) |
| 0xFFC000–0xFFFFFF | — | защищённая область (загрузчик + векторы CPU); не пишется ни одним штатным .0pa/.0ba, требует дампа через SPEICHER_LESEN или UART Boot ROM |
| Тип | Freikennung | LCD | Назначение |
|---|---|---|---|
KOMBL2 | HD | 0.5 pitch (крупный) | Ранний дорестайл Low (2005–2007), нет стрелок ручного режима, потолок софта C05/C06 |
BKOML2 | RP | 0.5 pitch (крупный) | Рестайлинг Low (2007–2015), базовый щиток 4-цил. моторов (E90/E91, X1 E84), индексы C07–C09 |
HKOML2 | RQ | 0.32 pitch (мелкий) | High для 6-цил. моторов (2005–2015), хромированные кольца, буква передачи без рамки |
DKOML2 | VF | 0.32 pitch (мелкий) | High под 7-ступенчатый робот DKG (E92/E93 335i DKG, Z4 35i/35is DKG), буква передачи в рамке |
Источник: HKOML2.DAT / DKOML2.DAT / BKOML2.DAT / KOMBL2.DAT в пакете BMW SP-Daten E89 v69.0. Подробности и методика — BMW_KOMBI_PL2_RESEARCH.md.
Эта страница — концентрат самых используемых таблиц. Полная методика, промежуточные гипотезы и история находок — в markdown-документах репозитория: