MG1 — нужна помощь с изменением VIN

  • Автор темы Автор темы Eltunbimer
  • Дата начала Дата начала

Сообщение #1

Eltunbimer

Участник в стоке
Грузия
С нами
13.08.2026
Сообщения
10
Реакции
1
Страна
Грузия
Нужна помощь с изменением VIN в MDG1. Кто-нибудь может помочь? Заранее спасибо!

Новое vin:3MW5U7J07M8B53372
 

Вложения

Оценки и отзывы
Всего оценок: 0

Сообщение #2

По приложенному дампу это оригинальный MG1CS201 INT EEPROM (768 KB, TC298TP, семейство B38/B48/B58/N63), и в нём видны текущие идентификаторы:

  • VIN в файле: WBADZ2C0XLCE05137
  • HW/SW строка: "10SW051332P
  • Короткий номер шасси: CE05137
  • Код типа: LBMXJ03.0B07
  • Целевой новый VIN: 3MW5U7J07M8B53372 (17 символов, корректный формат — 3MW = BMW Mexico)

Несколько важных моментов, прежде чем трогать этот файл:

1. Простая замена в hex не сработает корректно на MG1CS201 INT EEPROM.
VIN и его короткая форма (последние 7 символов) хранятся в нескольких областях, а окружающие блоки защищены CRC/подписями (видны маркеры записей "BEEFxx" и заголовки 0xA5 по 0x0 и 0x60000 — это структурированные записи, а не свободное место). Если просто перезаписать ASCII VIN, ЭБУ обычно либо откатит изменения при следующем KL15, либо выдаст внутренние ошибки, либо откажется синхронизироваться с FEM/CAS.

2. Нужен инструмент, который понимает структуру MG1 EEPROM, пересчитывает затронутые CRC и обновляет все копии VIN + 7-значный короткий VIN. Делать это вручную в hex-редакторе на этом поколении не рекомендуется.

3. Иммобилайзер / привязка
Смена VIN в DME сама по себе не привяжет его к другой машине. На F/G-серии с MG1 всё равно нужно:
  • правильный ISN в DME, совпадающий с целевым FEM/BDC (или CAS на более ранних моделях),
  • закодировать FEM/BDC под новый DME,
  • после прошивки записать VIN через UDS и корректно привести vehicle order в соответствие в ISTA/E-Sys.

Чтобы подсказать точный следующий шаг, уточните, пожалуйста:

  • Какой инструмент/оборудование у вас есть для этого DME? (PCMflash, bFlash, MagicMotorsport Flex, CGDI/Yanhua/Autohex, MDG1 OBD и т. д.)
  • Это установка донора в рабочую машину или клон другого DME на этот?
  • Есть ли у вас также полное считывание внешней flash-памяти этого DME или только опубликованный INT EEPROM? VIN также находится в области данных внешней flash-памяти — одного INT EEPROM обычно недостаточно.
  • Есть ли у вас ISN целевой машины (VIN 3MW5U7J07M8B53372) и доступ к её FEM/BDC?

Когда будет понятно, какой у вас инструмент и есть ли EXT flash, смогу подсказать правильный порядок действий для этой конкретной связки.
 

Сообщение #3

ISN менять не нужно. Мне просто надо временно изменить VIN, чтобы кое-что проверить. После проверки запишу обратно оригинальный EEPROM.
 

Сообщение #4

Понял — для временной проверки так гораздо проще, но есть пара практических моментов:

Самый простой вариант: вообще не трогать EEPROM.
На MG1 VIN обычно можно записать по шине через UDS-задачу (Tool32 / ISTA / E-Sys, например задачу типа VIN write / VIN_SCHREIBEN на DME). Если для теста нужно только, чтобы DME сообщал другой VIN, это можно откатить за считаные секунды, и нет риска CRC или циклов записи внутреннего EEPROM. Я бы сначала попробовал так.

Если всё же хотите сделать это в файле EEPROM:
  • В вашем дампе идентификатор присутствует в нескольких видах — полный ASCII WBADZ2C0XLCE05137 и 7-значный короткий VIN CE05137. Менять нужно оба значения согласованно, иначе DME может выдать внутренние ошибки достоверности. Для вашей цели это означает 3MW5U7J07M8B53372 и 8B53372.
  • Файл представляет собой структурированную область записей (0xA5 заголовки по адресам 0x0 и 0x60000, маркеры записей "BEEFxx"), поэтому в зависимости от расположения каждой копии она может быть покрыта контрольной суммой блока. Простая перезапись в hex может пройти, а может быть отклонена или возвращена при следующем цикле KL15 — это зависит от блока. По выборочному чтению я не могу подтвердить, какие из копий защищены контрольной суммой.
  • Оставьте исходное чтение размером 768 KB нетронутым как файл для восстановления и после записи проверьте результат обратным чтением и сравнением.

Также имейте в виду: пока там будет тестовый VIN, DME, скорее всего, запишет DTC из-за несоответствия VIN с FEM/BDC — это нормально, после восстановления очистите их.

Чтобы подсказать точный способ: каким инструментом вы читаете/пишете INT EEPROM на этом MG1CS201 (bench/boot с Flex, AutoTuner, PCMflash, CG FC200...), и есть ли в этом инструменте встроенная функция смены VIN для MG1? Если есть, используйте функцию VIN, а не hex-редактор — она сама обработает копии и контрольную сумму, если она есть.
 

Сообщение #5

Когда пытаюсь записать VIN через E-Sys, получаю такую ошибку.
MG1 — нужна помощь с изменением VIN — вложение 1
 

Сообщение #6

Я не вижу сообщения об ошибке — screenshot/text не дошло в отправленном вами сообщении. Можете добавить точную строку ошибки (включая красную строку в окне лога E-Sys)?

А пока несколько важных моментов: в большинстве случаев проблема в одном из них:

1. В E-Sys нет прямой функции DME под названием «запись VIN».
В E-Sys VIN записывается через заказ автомобиля (FA/VO) и обычно на сторону CAS/FEM/BDC. Если нужно записать VIN в DME (MG1CS201), правильнее открыть соответствующий SGBD в Tool32 и запустить задание записи VIN (например, задание типа STEUERN_FGNR_SCHREIBEN / FGNR_SCHREIBEN; название зависит от версии SGBD) либо использовать сервисную функцию в ISTA. Рекомендую попробовать это, а не пытаться принудительно сделать запись через E-Sys.

2. Для записи VIN на MG1 требуется доступ безопасности.
Если DME заблокирован или уровень seed/key не поддерживается инструментом, появится «отрицательный ответ / 0x33 securityAccessDenied» или «условия не соблюдены (0x22)». Это ошибка, связанная с сессией, а не с файлом.

3. Распространённые ошибки E-Sys и их причины:
  • «Нет CAFD для SWE» / пустые блоки кодирования → выбран неправильный Target (Target) или PSdZData старее I-Level автомобиля
  • Запись FA отклонена → формат VO/FA не соответствует автомобилю либо был пропущен шаг записи в VCM
  • Token/FDL ошибка → не установлен токен Launcher

Чтобы дать точный ответ, пришлите, пожалуйста, следующее:
  • Точный текст ошибки или скриншот
  • Версию E-Sys + используемый Launcher (PRO/Plus, есть ли токен)
  • Версию PSdZData и выбранный Target (F020, S15A и т. д.)
  • Автомобиль: семейство шасси и модельный год (судя по VIN в файле, это, похоже, F/G серии B48/B58; можете подтвердить?)
  • Подключение: кабель ENET или какой интерфейс
  • Куда именно пытаетесь записать VIN: в DME, в FEM/BDC, или это запись FA/VO?

С этой информацией можно будет понять, проблема на стороне E-Sys или DME отклоняет запись.
 

Сообщение #7

Ошибка с E-Sys
 

Вложения

  • MG1 — нужна помощь с изменением VIN — вложение 2
    IMG_6709.webp
    402,5 КБ · Просмотры: 18

Сообщение #8

Теперь скрин пришёл — спасибо, это сильно помогает.

Что на самом деле говорит лог:

Код:
--> WriteDataByIdentifierVIN
<-- Error: SWT diagnosis for ECU "[BaseVariant=DME_BAC2, DiagAddress=12]" failed! [C057]
-MessageID is used multiple times, so MessageText may be ambiguous-the result contains an error [370]

Там две отдельные вещи:

  • Строка [370] — косметическая. Это предупреждение таблицы сообщений ODX/PSdZData ("MessageID используется несколько раз"), и оно не является причиной сбоя задания.
  • [C057] "SWT diagnosis for ECU ... failed" — вот настоящая ошибка. E-Sys отправил UDS-запись (0x2E в DID F190) в DME по DiagAddress 0x12, а ECU ответил отрицательным ответом. E-Sys просто не показывает NRC в этом окне.

Наиболее вероятная причина на MG1 (общее поведение BMW, по одному вашему дампу подтвердить не могу): VIN в DME фактически записывается только один раз. Если VIN уже сохранён — а в вашем файле он есть, WBADZ2C0XLCE05137 — ECU отклонит запись 0x2E F190 с 0x22 (conditionsNotCorrect) или 0x31 (requestOutOfRange). Запись VIN принимается только когда поле чистое/пустое, поэтому обычный порядок такой: обнуление / подготовка к повторной привязке DME на столе, затем запись VIN по шине. Это полностью совпадает с тем, что вы видите, и также означает, что E-Sys не даст вам тот трюк с «временным VIN», на который вы надеялись.

Быстрые проверки, прежде чем делать что-то ещё:

  • Запустите ReadDataByIdentifierVIN из того же списка. Если он вернёт VIN, связь и сессия в порядке, а проблема чисто в разрешении на запись/предварительных условиях — не в вашей настройке.
  • Клемма 15 включена, двигатель заглушен, стабильное питание, параллельно не открыты ISTA или другие сессии.
  • Откройте trace-лог E-Sys (...\EC-Apps\ESG\logs\ или настроенную вами папку логов) и найдите строку этого задания — там есть сырой ответ (например, 7F 2E 22 / 7F 2E 31 / 7F 2E 33). По этому NRC можно точно понять: «уже записано», «доступ безопасности запрещён» или «не та сессия».

Если NRC окажется securityAccessDenied (0x33), путь записи исправен, но E-Sys не разблокирует DME — тогда лучше использовать Tool32 с соответствующим SGBD или сервисную функцию ISTA.

Выложите сырой NRC из trace-лога, а также вашу версию E-Sys и версию PSdZData — и я скажу, в каком из трёх случаев вы находитесь.
 

Сообщение #9

Как можно изменить VIN с помощью Tool32? Есть ли какие-то риски? Машина 2019 года, G14 с двигателем B58.
 

Сообщение #10

Tool32 по сути просто фронтенд для тех же UDS-заданий, которые использует E-Sys, так что он упрётся в те же предусловия ECU — но отрицательный ответ покажет более прозрачно, а это как раз нужно для диагностики. Вот практический путь для G14 B58 (MG1CS003, кстати, не CS201 — CS003 это бензиновый вариант B58 на G-серии):

Настройка
  • Откройте Tool32 (входит в вашу установку E-Sys / EDIABAS, обычно C:\EDIABAS\Bin\Tool32.exe).
  • Файл → Загрузить SGBD → выберите SGBD для DME. Для G14 B58 2019 года обычно это GMOTOR (универсальный SGBD двигателя для G-серии, он сам определяет фактический вариант DME). Если ответа нет, попробуйте конкретный, например MGUMOT или прямое название варианта.
  • Проверьте, что EDIABAS.INI настроен на интерфейс ENET (Interface = ENET, RemoteHost = 169.254.…), иначе получите IFH-0009.

Сначала считайте VIN (безопасно, без записи)
  • Задание: STATUSLESENFGNRLANG (или STATUSFGNR в зависимости от версии SGBD). Нажмите F5 / Execute.
  • Если он корректно вернул текущий VIN, связь и уровень доступа для чтения в порядке.

Запись VIN
  • Название задания зависит от версии SGBD, ищите одно из: STEUERNFGNRSCHREIBEN, FGNRSCHREIBEN, SCHREIBENFG_NR.
  • Аргумент: 17-символьный VIN строкой, точно в формате, указанном в справке задания (некоторым нужен "FGNR;3MW5U7J07M8B53372", некоторым — просто VIN; точный формат для этого SGBD указан в окне справки справа в Tool32).
  • Выполните задание. Посмотрите строки JOB_STATUS / результата.

Что вы, скорее всего, увидите и что это означает
  • JOB_STATUS = OKAY и VIN обновлён → готово.
  • NR 22 (conditionsNotCorrect) → в DME уже записан VIN, и он отказывается его перезаписывать. Это нормальное поведение MG1 и соответствует вашей ошибке в E-Sys. Tool32 это не обойдёт — отказывает сам ECU.
  • NR 33 (securityAccessDenied) → перед заданием не был выполнен SecurityAccess. В некоторых SGBD есть отдельное задание SECURITY_ACCESS / FREISCHALTEN, которое нужно выполнить перед записью. На MG1 обмен seed/key обрабатывается SGBD внутренне, если у вас корректная сборка BMW EDIABAS.
  • NR 31 (requestOutOfRange) → формат строки VIN для этого задания неверный.

Оценка рисков
  • Низкий риск попробовать, потому что DME просто ответит отказом, если запрос ему не подходит — ничего частично не запишется. UDS 0x2E работает атомарно.
  • Реальный риск — если запись всё же пройдёт: тогда сохранённый в DME VIN перестанет совпадать с FEM/BDC, DSC, EGS, KOMBI, HU и т. д. По всей машине посыпятся DTC по несоответствию VIN, а функции комфорта/CBS могут начать работать некорректно, пока вы не восстановите VIN или не запишете обратно исходный EEPROM. Запуск двигателя не завязан на VIN (он завязан на ISN ↔ FEM), так что машина всё равно будет крутить стартером и работать.
  • Нет риска CRC / прошивки — это запись данных по UDS, а не операция прошивки. Она не затрагивает калибровку или контрольные суммы. Ваш исходный считанный EEPROM на 768 KB всё ещё остаётся вашей подстраховкой.

Честно говоря, на G14 2019 года с родным DME, в котором уже записан WBADZ2C0XLCE05137, Tool32 почти наверняка тоже ответит NR 22. Чистый способ записать новый VIN в MG1 — сначала сделать обнуление DME на столе (операция клонирования/подготовки к повторной привязке MG1 через стендовый инструмент типа Bitbox / PCMflash / MagicMotorSport / Autotuner с правильным протоколом MG1CS003), после чего WriteVIN по шине его примет.

Если можете, выложите точный код NR, который вернёт Tool32 — тогда точно поймём, дело в предусловиях, безопасности или формате.
 

Сообщение #13

«Сброс» (обнуление) MG1 — это не операция в один клик; есть разные уровни в зависимости от того, что вы хотите сделать. Кратко разделим их:

1. Сброс только адаптаций
ISTA → Сервисные функции → «Сброс значений адаптации» либо задание, аналогичное STEUERNRESETADAPTIONEN в Tool32. Это вообще не затрагивает VIN, ISN или иммобилайзер. Сбрасываются только обученные значения. Без риска.

2. Подготовка DME к повторной привязке (удаление VIN + ISN + привязки к иммобилайзеру)
Именно это вы, по сути, ищете — потому что VIN не записывается из-за того, что DME уже привязан. Через шину инструментами BMW это сделать нельзя; на MG1 это делается в bench mode: DME снимается, и работа идёт напрямую через загрузчик. Обычно используются такие инструменты:

  • PCMflash (modül 71 – MG1/MD1 bench)
  • Bitbox / протокол BFlash MG1 bench
  • Magic Motorsport Flex, Autotuner, CMD, New Genius и т. д. — инструменты с поддержкой MG1CS003 bench
  • У некоторых есть отдельная функция «очистить ISN / обнулить»; в других случаях нужно считать INT + EXT flash и вручную записать их в чистый аналог

Подключение на столе: снимаете DME, подаёте питание + CAN + boot-пин через bench-кабель, после чего инструмент делает полный бэкап в профиле MG1CS003 (INT flash + EXT flash + EEPROM). Затем запускается функция «обнуление / очистка ISN и VIN». После этого VIN в автомобиле через 0x2E F190 записывается нормально.

3. Риски — если честно, они серьёзные

  • На MG1 выбор неправильного профиля инструмента или прерывание записи равны кирпичу. Восстановление доступно не каждым инструментом для этого ECU.
  • После обнуления теряется привязка ISN к CAS/FEM/BDC. Чтобы машина завелась, нужно синхронизировать новый ISN с FEM либо записать обратно исходный ISN. Другими словами, обнулять его для «временной проверки» — плохая идея: восстановление будет проблемным.
  • Если активны TPROT / secure boot, на некоторых MG1 очистка ISN напрямую не сработает; сначала потребуется разблокировка.

Мой честный совет: Не обнуляйте DME на G14 B58 2019 года просто ради проверки. Если скажете, что именно пытаетесь сделать (например: «хочу проверить его в ISTA с другим VIN», «собираюсь установить его в другой автомобиль», «хочу устранить несовпадение VIN в приборке»), я подскажу гораздо менее рискованный вариант — потому что в большинстве сценариев VIN в DME вообще менять не нужно.

Также уточните:

  • Какой именно инструмент у вас есть? (PCMflash / Autotuner / Flex / Bitbox / другой?)
  • Можете перевести DME в bench mode или работаете только через OBD?
  • Какая у вас фактическая цель? Если буду её знать, скажу, можно ли решить вопрос без обнуления.
 

Сообщение #14

Кратко расскажу, что можно сделать с MG1CS003 с помощью MultiProg, а потом перейду к рискам.

Способ подключения
На MG1 MultiProg работает в bench-режиме — не по OBD. То есть DME нужно снять с автомобиля, открыть крышку и подключить bench-кабель (адаптер MG1/MD1 + питание) к соответствующим пинам. Ориентируйся на схему bench-подключения MG1, которая идёт с программатором; неверный пин = риск необратимого повреждения.

Принцип обнуления (virginize)
В меню MG1/MD1 MultiProg обычно есть такие опции:
  • Считать ISN — считывает текущий ISN (обязательно, если будешь ставить на другой автомобиль)
  • Считать INT / EXT Flash + EEPROM — полный бэкап (обязательно, не пропускай)
  • Virginize / Clear VIN / Reset ISN — обнуляет DME; VIN, ISN и данные привязки стираются
  • Write ISN / Write VIN — запись данных целевого автомобиля

После обнуления DME ведёт себя как «новый»; поскольку поле VIN пустое, запись 0x2E F190 через E-Sys/Tool32 принимается. Именно так решается ошибка «conditionsNotCorrect», с которой ты столкнулся.

Риски — это серьёзно
  • Потеря ISN: перед обнулением обязательно считай ISN и сохрани в надёжном месте. Если ISN будет потерян, DME уже никак не получится снова привязать к родному автомобилю — с FEM/BDC он не спарится, двигатель не запустится. Придётся менять CAS/FEM.
  • Запись без бэкапа: не делай никаких записей, пока не будет считан и проверен полный бэкап INT flash + EXT flash + EEPROM. После считывания прочитай дважды и сравни оба файла (они должны быть одинаковыми байт в байт).
  • Питание: на bench используй регулируемый лабораторный блок питания (12.0–13.5 V, минимум 5 A). Просадка напряжения во время записи превратит DME в кирпич. Питание от USB-хаба — нет.
  • Ошибка в пинах: если в bench pinout MG1 перепутать GND/VBAT, TC298 сразу умрёт. Дважды проверь схему.
  • Неверный профиль файла: в MultiProg обязательно выбери профиль MG1CS003, а не CS201 или CS182. Неверный профиль пишет по неправильному адресу.

Практический порядок действий для твоего случая
Если ты хочешь лишь сделать «временный тест VIN», лезть в bench слишком рискованно. Если обнулишь родной DME автомобиля, даже записав потом тот же ISN обратно в DME, может потребоваться повторная привязка к FEM, потому что автомобиль всё ещё ждёт родной VIN; для короткого теста это слишком большой шаг. Можно ли выполнить нужную тебе проверку другим способом через E-Sys/ISTA? Если напишешь, что именно хочешь проверить (например, конкретную кодировку, адаптацию или сервисную функцию), смогу предложить более безопасный вариант.

Но если всё же хочешь работать на bench, напиши, какую именно версию MultiProg и какой bench-адаптер будешь использовать — шаги в меню MG1 отличаются в зависимости от версии.
 
Активность
Пока здесь никого нет