Что такое контрольная сумма прошивки
Контрольная сумма — результат арифметической свёртки блока данных в короткое число. Прошивка ЭБУ хранит такие числа в служебных полях, а программа блока при старте пересчитывает их заново по фактическому содержимому памяти. Совпало — данные считаются целыми, не совпало — блок считает прошивку повреждённой.
Механизм придуман не против тюнинга, а против повреждённой записи: сбой питания при прошивке, обрыв связи, битая ячейка флеш-памяти. Поэтому проверка живёт на нескольких уровнях сразу — в самом ЭБУ, в загрузчике и в программе флешера.
Для мастера это значит простую вещь: файл после правки — уже не тот файл, который вычитали. Пока контрольная сумма не приведена в соответствие с новым содержимым, прошивка формально повреждена.
Какие контрольные суммы встречаются в ЭБУ
В одном дампе обычно живёт не одна сумма, а несколько независимых — отдельно на программную часть, отдельно на калибровки, иногда отдельно на карты конкретных систем. Правка карты наддува задевает сумму калибровок и не задевает сумму программы.
| Тип проверки | Как устроена | Что важно мастеру |
|---|---|---|
| Простая сумма (sum16 / sum32) | Сложение слов области с отбрасыванием переполнения | Частый вариант на старых блоках, пересчитывается просто |
| CRC | Полиномиальная свёртка области, чувствительна к перестановке байтов | Нужны точные границы области и параметры полинома |
| Раздельные суммы программы и калибровок | Отдельные значения для кода и калибровочного набора | Правка карт трогает только калибровочную сумму |
| Криптографическая подпись | Подпись содержимого ключом производителя | На новых поколениях блоков одного пересчёта недостаточно |
| Контроль целостности флеш-памяти | Считается контроллером памяти при записи | К содержимому калибровок отношения не имеет, это задача флешера |
Чем новее блок, тем больше проверок. На поколениях Bosch MG1 и MD1 к суммам добавляется криптографическая защита прошивки, поэтому работа с такими ЭБУ строится вокруг подготовки блока, а не вокруг одного лишь пересчёта.
Что происходит, если сумма не сошлась
Сценарий зависит от того, на каком этапе обнаружено расхождение. Хороший случай — флешер отказывается писать файл и сообщает об ошибке. Плохой — файл записан, а блок обнаруживает расхождение уже на автомобиле.
| Момент обнаружения | Что видит мастер | Чем это грозит |
|---|---|---|
| Проверка в программе флешера | Отказ записи, сообщение об ошибке контрольной суммы | Ничем: файл не записан, блок цел |
| Проверка загрузчиком при старте | Блок не выходит на связь или отвечает только в сервисном режиме | Нужна повторная запись, иногда через bench или boot |
| Проверка программой ЭБУ на работающем моторе | Аварийный режим, ограничение тяги, ошибка внутренней памяти блока | Автомобиль едет, но неправильно — и это заметит клиент |
| Проверка при диагностике на сервисе | Отметка о несоответствии калибровок | Вопросы на официальном сервисе |
Отдельный неочевидный случай — сумма сошлась, но изменена не та область. Блок стартует, ошибок нет, а поведение мотора отличается от ожидаемого. Здесь помогает только сравнение с сохранённым стоком.
Кто пересчитывает сумму: редактор или флешер
Единого правила нет, и это главный источник путаницы. Для части ЭБУ корректную сумму обязан положить в файл тот, кто правит калибровки. Для другой части сумму считает программа-флешер прямо в момент записи, и готовить её заранее не нужно.
| Сценарий | Кто считает сумму | Что делать мастеру |
|---|---|---|
| Редактор отдаёт готовый к записи файл | Сервис правки | Записать результат как есть, ничего не пересчитывать |
| Флешер считает сумму при записи | Программа записи (например, Combiloader или PCMflash) | Не отключать пересчёт в настройках флешера |
| Считают обе стороны | Сначала редактор, потом флешер | Конфликта обычно нет: результат совпадает |
| Не считает никто | Никто | Отказ записи либо аварийный режим — вернуться к стоку |
В ETC tools порядок описан на карточке каждого ЭБУ. Например, для Continental SID208 и Bosch EDC17C57 контрольные суммы пересчитывает флешер при записи, а редактор готовит файл именно под этот процесс. Проверить порядок для конкретного блока можно в каталоге поддерживаемых ЭБУ до загрузки файла.
Как проверить файл перед записью
Проверка занимает несколько минут и снимает заметную часть рисков. Порядок одинаковый и для своей правки, и для файла, полученного со стороны.
- Сравните размер результата с размером исходного дампа — он обязан совпадать до байта.
- Откройте оба файла в программе побайтового сравнения и посмотрите на карту отличий: изменения должны лежать в области калибровок, а не по всему дампу.
- Убедитесь, что области с серийным номером блока и данными иммобилайзера не затронуты.
- Уточните по конкретному ЭБУ, кто отвечает за сумму — файл или флешер.
- Если сумму считает флешер, проверьте, что в его настройках пересчёт включён, а не отключён ради скорости.
- Держите исходный дамп под рукой до конца записи: откат должен быть доступен в любую минуту.
Совпадающая контрольная сумма подтверждает только целостность данных, а не их пригодность для конкретного автомобиля. Если файл пришёл от третьего лица, сумма ничего не говорит о качестве калибровок.
Частые ошибки при работе с контрольными суммами
- Пересчёт по всему дампу, когда блок проверяет несколько независимых областей: одна сумма сходится, вторая нет.
- Правка файла в текстовом редакторе вместо шестнадцатеричного — файл меняет размер и перестаёт быть дампом.
- Запись файла от другой версии прошивки: сумма посчитана верно, но содержимое не соответствует блоку.
- Отключённый пересчёт в настройках флешера, оставшийся с предыдущей работы.
- Потерянный оригинал: без стока откатиться некуда, и любая ошибка превращается в долгий поиск исходной прошивки.
Последний пункт закрывается дисциплиной, а не инструментом. Порядок безопасного чтения и хранения исходника разобран отдельно в статье как вычитать .bin-файл и сохранить сток.
Частые вопросы
Можно ли записать прошивку с неверной контрольной суммой?
Часть флешеров откажет в записи сразу. Если запись всё же прошла, блок может не запуститься или уйти в аварийный режим, поэтому сумму проверяют до записи, а не после.
Пересчёт суммы исправляет неудачную правку калибровок?
Нет. Контрольная сумма подтверждает целостность данных, а не их корректность. Файл с неудачными картами и верной суммой остаётся неудачным файлом.
Почему на одном ЭБУ сумму считает редактор, а на другом флешер?
Это зависит от устройства конкретного блока и от возможностей программы записи. Порядок для каждого поддерживаемого ЭБУ указан в каталоге ETC tools.
Что делать, если после записи появилась ошибка внутренней памяти блока?
Вернуть сохранённый сток, убедиться, что запись прошла полностью, и повторить правку на проверенной версии файла.
ETC tools
Правка и контрольные суммы в одном проходе
Загрузите вычитанный .bin-файл в ETC tools: сервис распознает модуль, покажет доступные операции и подготовит результат по правилам конкретного ЭБУ — вместе с пересчётом сумм там, где он на стороне редактора.
