Gateway Q

Ура! Наконец-то я подружил свою приборку и магнитолу с машиной.

Что такое Gateway?
Это шлюз CAN (Controller-Area-Network) — шин автомобиля, посредством которого разное оборудование общается между собой. Passat в частности имеет насколько таких шин (отдельно на двигатель, на блоки комфорта и т.д.).
У меня стоял гейт C, я поменял на Q. Грубоговоря новый гейт имеет бОльшую пропускную способность, может передавать больше информации за единицу времени.
Зачем менять? Что это даёт?
В моём случае, когда была установлена приборная панель и магнитола от рестайлового пассата, они не до конца понимали где очутились. Часть информации была недоступна, что-то работало некорректно банально из-за того, что они передавали информацию не так как этого ожидала машина (Чаще передавали пакеты, или пакеты были большего объема; я точно не знаю но факт в том, что они как-бы говорили на разных, пускай и очен похожих языках).
Это выливалось в различного рода проблемы:
1) На руле не было информации про магнитолу, я мог регулировать только громкость, но не менять треки и смотреть информацию.
2) Блок #17 (это приборка) был банально недоступен, я не мог до конца адаптировать приборку под машину
3) Разряд аккумулятора. Магнитола не засыпала, даже когда вынимаешь ключи. На самом деле магнитолой можно пользоваться и без ключей в обычном режиме, но как только вы её отключаете, она полностью засыпает и не просаживает аккум.
Процесс замены
До того как всё начать, нужно запомнить настройки старого блока Gateway. Этот парень должен знать про всё установленное в машине оборудование, иначе обрежете себе комплектацию, в лучшем случае 🙂
19 Блок CAN шины Gateway, платформа А5 1K0 907 530 E can v 1,6
Чтобы между блоками управления автомобиля происходил беспрепятственный обмен данными, они объединены в сети различными шинами данных.
Диагностический интерфейс шины данных связывает между собой следующие шины:
— CAN-шина привод
— CAN-шина комфорт
— CAN-шина Infotainment
— CAN-шина Kombi
— CAN-шина диагностика
Диагностический интерфейс шины данных J533 находится, под комбинацией приборов над педалью газа.
Внешний вид блока:

Расширеная индификация блока:









данный блок gateway поддерживает CAN шину версии 1.6, поэтому при замене на магнитоллы III поколения (RCD 310, RCD 510, RNS 510, RNS 310. ), которые поддерживают протокол CAN шины 2.0, будьте готовы к глубокому разряду аккумулятора за ночь.
Из-за этой несовместимости, появляется ошибка и блоки управления не переходят в спящий режим. При этом ток потребления может достигать 2 А.
Чтобы избежать разряда аккумулятора, нужно в длинных кодах исключить радио из списка CAN. В этом случае, будет все равно появляться ошибка о неправильности кодировки магнитоллы, но аккумулятор будет жить.
Еще один минус данного метода, магнитолла перестанет автоматически включаться или выключаться, т.к. это делается по шине.
Корректно проблема с несовместимостью версий CAN шины решается заменой на gateway 2.0
Цитата из Росстеча.
По ней видно, что с индекса L выпускается can-gateway 2.0
Так же данный блок поддерживает блок парктроника с визуализацией в штатных магнитоллах III поколения и даже адаптивный круиз контроль:

Coding
Coding (through Index F)
Byte 00 Bit 0 [01] Engine Electronics
Byte 00 Bit 1 [02] Transmission Electronics
Byte 00 Bit 2 [03] Brake Electronics (ABS)
Byte 00 Bit 3 [00] Steering Angle Sensor (G85)
Byte 00 Bit 4 [15] Airbags
Byte 00 Bit 5 [44] Steering Assist
Byte 00 Bit 6 [55] Xenon Range
Byte 00 Bit 7 [22] All Wheel Drive
Byte 01 Bit 0 [09] Central Electronics
Byte 01 Bit 1 [46] Central Convenience
Byte 01 Bit 2 [42] Door Electronics (Driver)
Byte 01 Bit 3 [52] Door Electronics (Passenger)
Byte 01 Bit 4 [62] Door Electronics (Rear Left)
Byte 01 Bit 5 [72] Door Electronics (Rear Right)
Byte 01 Bit 6 [36] Seat Memory (Driver)
Byte 01 Bit 7 [65] Tire Pressure Monitoring
Byte 02 Bit 0 [16] Steering Wheel Electronics
Byte 02 Bit 1 [08] Climate Control
Byte 02 Bit 2 [76] Parking Aid
Byte 02 Bit 3 [7D] Auxiliary Heating
Byte 02 Bit 4 [18] Auxiliary Heater
Byte 02 Bit 5 [26] Auto Roof
Byte 02 Bit 6 [69] Trailer
Byte 02 Bit 7 [06] Seat Memory (Passenger)
Byte 03 Bit 0 [3D] Special Function
Byte 03 Bit 1 [47] Sound System
Byte 03 Bit 2 [75] Telematics
Byte 03 Bit 3 [37] Navigation
Byte 03 Bit 4 [57] TV-Tuner
Byte 03 Bit 5 [0F] Radio (digital)
Byte 03 Bit 6 [56] Radio (analog)
Byte 03 Bit 7 [77] Telephone
Byte 04 Bit 0 [17] Instrument Cluster
Byte 04 Bit 1 [25] Immobilizer
Byte 04 Bit 2 [19] CAN-Gateway
Byte 04 Bit 3 [1C] Position Sensing
Byte 04 Bit 4 [5D] Operations
Byte 05 Manufacturer/Model
Byte 06 Options
Coding (from Index F through Index K)
Byte 00 Bit 0 [01] Engine Electronics
Byte 00 Bit 1 [02] Transmission Electronics
Byte 00 Bit 2 [03] Brake Electronics (ABS)
Byte 00 Bit 3 [00] Steering Angle Sensor (G85)
Byte 00 Bit 4 [15] Airbags
Byte 00 Bit 5 [44] Steering Assist
Byte 00 Bit 6 [55] Xenon Range
Byte 00 Bit 7 [22] All Wheel Drive
Byte 01 Bit 0 [09] Central Electronics
Byte 01 Bit 1 [46] Central Convenience
Byte 01 Bit 2 [42] Door Electronics (Driver)
Byte 01 Bit 3 [52] Door Electronics (Passenger)
Byte 01 Bit 4 [62] Door Electronics (Rear Left)
Byte 01 Bit 5 [72] Door Electronics (Rear Right)
Byte 01 Bit 6 [36] Seat Memory (Driver)
Byte 01 Bit 7 [65] Tire Pressure Monitoring
Byte 02 Bit 0 [16] Steering Wheel Electronics
Byte 02 Bit 1 [08] Climate Control
Byte 02 Bit 2 [76] Parking Aid
Byte 02 Bit 3 [7D] Auxiliary Heating
Byte 02 Bit 4 [18] Auxiliary Heater
Byte 02 Bit 5 [26] Auto Roof
Byte 02 Bit 6 [69] Trailer
Byte 02 Bit 7 [06] Seat Memory (Passenger)
Byte 03 Bit 0 [3D] Special Function
Byte 03 Bit 1 [47] Sound System
Byte 03 Bit 2 [75] Telematics
Byte 03 Bit 3 [37] Navigation
Byte 03 Bit 4 [57] TV-Tuner
Byte 03 Bit 5 [0F] Radio (digital)
Byte 03 Bit 6 [56] Radio (analog)
Byte 03 Bit 7 [77] Telephone
Byte 04 Bit 0 [17] Instrument Cluster
Byte 04 Bit 1 [25] Immobilizer
Byte 04 Bit 2 [19] CAN-Gateway
Byte 04 Bit 3 [1C] Position Sensing
Byte 04 Bit 4 [5D] Operations
Byte 04 Bit 5 [14] Suspension Electronics
Byte 04 Bit 6 [4C] Tire Pressure Monitoring II
Byte 04 Bit 7 [11] Engine Electronics II
Byte 05 Bit 0 [10] Park/Steering Assistant
Byte 05 Bit 1 [63] Easy Entry Driver Side
Byte 05 Bit 2 [73] Easy Entry Passenger Side
Byte 06 Manufacturer/Model
Byte 07 Options
Coding (from Index L)
Byte 00 Bit 0 [01] Engine Electronics
Byte 00 Bit 1 [11] Engine Electronics II
Byte 00 Bit 2 [02] Transmission Electronics
Byte 00 Bit 3 [03] Brake Electronics (ABS)
Byte 00 Bit 4 [53] Parking Brake
Byte 00 Bit 5 [04] Steering Angle Sensor (G85)
Byte 00 Bit 6 [44] Steering Assist
Byte 00 Bit 7 [15] Airbags
Byte 01 Bit 0 [55] Xenon Range
Byte 01 Bit 1 [22] All Wheel Drive
Byte 01 Bit 2 [13] Distance Regulation
Byte 01 Bit 3 [14] Suspension Electronics
Byte 01 Bit 4 [4C] Tire Pressure Monitoring II
Byte 01 Bit 5 [10] Park/Steering Assist
Byte 01 Bit 6 [32] Differential Locking
Byte 01 Bit 7 [17] Instrument Cluster
Byte 02 Bit 0 [25] Immobilizer
Byte 02 Bit 1 [09] Central Electronics
Byte 02 Bit 2 [46] Central Convenience
Byte 02 Bit 3 [42] Door Electronics (Driver)
Byte 02 Bit 4 [52] Door Electronics (Passenger)
Byte 02 Bit 5 [62] Door Electronics (Rear Left)
Byte 02 Bit 6 [72] Door Electronics (Rear Right)
Byte 02 Bit 7 [36] Seat Memory (Driver)
Byte 03 Bit 0 [65] Tire Pressure Monitoring
Byte 03 Bit 1 [16] Steering Wheel Electronics
Byte 03 Bit 2 [08] Climate Control
Byte 03 Bit 3 [76] Park Assist
Byte 03 Bit 4 [7D] Auxiliary Heating
Byte 03 Bit 5 [26] Auto Roof
Byte 03 Bit 6 [69] Trailer
Byte 03 Bit 7 [06] Seat Memory (Passenger)
Byte 03 Bit 0 [3D] Special Function
Byte 04 Bit 1 [6D] Trunk Electronic
Byte 04 Bit 2 [63] Easy Entry Driver Side
Byte 04 Bit 3 [73] Easy Entry Passenger Side
Byte 04 Bit 4 [47] Sound System
Byte 04 Bit 5 [75] Telematic/Emergency Call
Byte 04 Bit 6 [37] Navigation
Byte 04 Bit 7 [57] TV-Tuner
Byte 05 Bit 0 [0F] Radio (digital)
Byte 05 Bit 1 [56] Radio (analog)
Byte 05 Bit 2 [77] Telephone
Byte 05 Bit 3 [18] Auxiliary Heater
Byte 05 Bit 4 [1C] Position Sensing
Byte 05 Bit 5 [5D] Operations
Byte 05 Bit 6 [6C] Rear View Camera
Byte 05 Bit 7 [59] Tow Protection
Byte 06 Bit 0 [4F] Central Electronics II
Byte 06 Bit 1 [19] CAN-Gateway (Standard)
Byte 06 Bit 2 [3C] Lane Change Assist
Byte 06 Bit 3 [5C] Lane Maintenance Assist
Byte 07 Manufacturer/Model
Byte 08 Options
Гейтвей на колесах
В данной статье пойдет речь о применении автомобильных гейтвеев на примере Toyota RAV4 4-го поколения. Этот автомобиль выбран неспроста: гейтвей на нем появился в середине жизненного цикла, поэтому можно провести наглядное сравнение до/после в рамках одной модели. Также данный блок оказался сравнительно простым, без экзотических интерфейсов: CAN и только CAN.
Статья поможет ответить на следующие вопросы:
- Мешает ли гейтвей прослушивать трафик через разъем OBD2?
- Как внедрение гейтвея повлияло на процедуру диагностики?
- Как внедрение гейтвея повлияло на загрузку данных, например, обновление калибровок?
Что же такое автомобильный гейтвей?
Гейтвеем в автомобиле называют центральный узел сети, который отвечает за надежный и безопасный обмен данными между функциональными доменами автомобиля:

Протоколы при этом могут быть самыми разными: CAN, LIN, FlexRay, Ethernet и т.д.
К основным возможностям гейтвея относят:
- фильтрация трафика (изолирование сетей от уязвимых или избыточных данных, например изоляция диагностического разъема OBD2 от прикладных данных);
- маршрутизация прикладных данных (обеспечение обмена «рабочими» данными между блоками автомобиля, например: обороты коленвала, состояние подушек безопасности и т.д.);
- маршрутизация диагностических данных (обеспечение надежного соединения между диагностическим оборудованием и диагностируемым блоком);
- трансляция протоколов (например, преобразование и передача данных из CAN в LIN и наоборот).
К расширенным возможностям можно отнести:
- обнаружение вторжения (например, появление подозрительного трафика на CAN-шине двигателя с целью обхода иммобилайзера);
- обновление блоков (например, с помощью OTA, с последующей перезагрузкой и проверкой состояния блока);
- хранение сертификатов и ключей автомобиля (например, для безопасной работы телематики).
Гейтвеи становятся умнее с каждым новым поколением автомобилей и выполняют все больше функций, поэтому этот список постоянно растет.
До появления гейтвеев в явном виде, часть их функций по организации работы сети могли брать на себя другие модули, например блок комфорта. Кроме того, даже при наличии гейтвея в автомобиле могут существовать участки сети, недоступные ему напрямую, а, например, только через блок управления двигателем.
Конкретный пример: Toyota
Чтобы перейти от общего к частному, изучим главного героя статьи поближе. Это деталь с партномером 89111-42020, компактная пластиковая коробочка с одним разъемом на 24 пина. Произведем вскрытие, чтобы увидеть, что у нее внутри:

На борту оказались микроконтроллер uPD70F4178 фирмы Renesas и high-speed CAN трансиверы TJA1049 фирмы NXP Semiconductors. Согласно информации из даташита, uPD70F4178 может использовать до 6 CAN шин. И действительно, на плате можно насчитать все 6 трансиверов, что многовато, т.к. RAV4 использует только 4 из них, но позже мы поймем, почему их столько.
Пинов у блока не так много, поэтому на основе электросхем можно быстро восстановить распиновку гейтвея:

Пины CAN с буквенным индексом — терминирующие, там просто резисторы.
Пользуясь распиновкой и остатками проводки, запитываем гейтвей на столе и пробуем поговорить с ним по диагностическому протоколу. Чтобы это сделать, нужно знать два адреса: по какому отправлять запрос и по какому получать ответ. На это ушло некоторое время, т.к. ни один адрес из распространенного диагностического диапазона 0x700 — 0x7FF не подходил, блок продолжал упорно молчать. Все остальные возможные 11-битные адреса тоже не давали результатов. Ну раз это гейтвей, то может быть он использует расширенные 29-битные адреса для диагностики? Можно попробовать перебрать, но и адресов там гораздо больше.
Чтобы не тратить время на перебор, провернем следующий трюк — притворимся автомобилем и пообщаемся через CAN шину с диагностическим ПО Techstream. После нескольких попыток узнаем, что правильный адрес запроса — это 0x750 и 0x5F в нулевом байте, то есть обмен выглядит так:
ID: 750 DLC: 8 5f XX XX XX XX XX XX XX ID: 758 DLC: 8 5f XX XX XX XX XX XX XX
где 0x758 — это адрес ответа. Один байт полезных данных всегда занят значением 0x5f, снижая полезную нагрузку кадра.
Это любопытный момент, потому что обычно утилиты для обнаружения диагностируемых блоков не предполагают наличие дополнительного байта адресации.
Они работают следующим образом: в пределах выбранного диапазона адресов рассылаются UDS запросы DiagnosticSessionControl (0x10) с переключением в defaultSession (0x01), т.к. это самый базовый и относительно безобидный запрос, и ожидается ответ. Далее предполагаются три варианта развития событий: 1) блок откликнется подтверждением операции (0x50), 2) блок откликнется отказом (0x7f), 3) блок не откликнется совсем. В случаях 1 и 2 адрес отклика может потенциально скрывать за собой искомый блок, ну а в случае 3 адрес инкрементируется и поиски продолжаются.
Наконец-то заполучив адреса, переберем все возможные значения сессий для запроса DiagnosticSessionControl (0x10) и посмотрим на отфильтрованный результат:
ID: 750 DLC: 8 5f 02 10 01 00 00 00 00 ID: 758 DLC: 8 5f 01 50 00 00 00 00 00 ID: 750 DLC: 8 5f 02 10 02 00 00 00 00 ID: 758 DLC: 8 5f 03 7f 10 22 00 00 00 ID: 750 DLC: 8 5f 02 10 5f 00 00 00 00 ID: 758 DLC: 8 5f 02 50 01 00 00 00 00 ID: 750 DLC: 8 5f 02 10 60 00 00 00 00 ID: 758 DLC: 8 5f 03 7f 10 22 00 00 00 ID: 750 DLC: 8 5f 02 10 70 00 00 00 00 ID: 758 DLC: 8 5f 03 7f 10 22 00 00 00
где 0x01 — defaultSession, 0x02 — programmingSession; 0x5f попадает в диапазон vehicleManufacturerSpecific, а 0x60 и 0x70 — в диапазон systemSupplierSpecific.
Проделаем тоже самое для сервиса SecurityAccess (0x27):
ID: 750 DLC: 8 5f 02 27 3b 00 00 00 00 ID: 758 DLC: 8 5f 10 12 67 3b XX XX XX . ID: 750 DLC: 8 5f 02 27 4f 00 00 00 00 ID: 758 DLC: 8 5f 10 12 67 4f XX XX XX . ID: 750 DLC: 8 5f 02 27 51 00 00 00 00 ID: 758 DLC: 8 5f 10 12 67 51 XX XX XX
Обнаружены 3 действующих варианта запроса, каждый из который возвращает seed длиной в 16 байт. Посылка рандомных ключей разной длины дает понять, что длина ключа тоже 16 байт.
Что скрывается за этими сессиями и уровнями доступа — пока неинтересно, но мы ими еще займемся.
Занимательная картография
А как выглядит гейтвей в естественной среде обитания, в автомобиле?
Настоящего, физического RAV4 у нас нет, поэтому окунемся с головой в электросхемы Toyota. Как упоминалось в начале статьи, RAV4 4-го поколения пережил внедрение гейтвея приблизительно в середине своего существования. Этот переход хорошо видно, если сравнить электросхемы для автомобилей выпущенных до и после октября 2015 года.
Примечание: изначальные схемы упрощены для наглядности; изображены все возможные блоки, некоторые из которых не устанавливаются вместе.
Начнем с анализа исходной системы (до октября 2015 года):

На схеме видно, что большинство блоков автомобиля подключены к одной шине, которая ведет к диагностическому разъему DLC3 (Data Link Connector), он же OBD2. Есть несколько изолированных участков сети, например, соединение между блоком управления двигателем (ECM) и трансмиссией. За блоком Main Body ECU спрятана еще одна небольшая сеть, отвечающая за комфорт и камеру заднего вида. Правый блок контроля слепых зон (Blind Spot Monitor Sensor RH) изолирован от основной шины и общается с ней через левый блок контроля слепых зон (Blind Spot Monitor Sensor LH).
Переходим к следующей схеме, уже с гейтвеем (после октября 2015 года):

Теперь сеть разбита на 4 отдельных домена, каждому из которых можно присвоить свое имя, на основании его функций:
- диагностический (черного цвета), к которому подключается диагностическое оборудование через разъем OBD2;
- основной (синего цвета), внутри которого находятся критически важные блоки управления двигателем, трансмиссией и кузовной электроникой;
- ассистентов (желтого цвета), объединяет сенсоры, радары и камеры, которые помогают водителю;
- инфотейнмента (красного цвета), содержит в себе навигацию, головное устройство, и модуль телематики.
Поменялась не только общая структура сети, но и количество ее узлов. Был добавлен блок телематики и целая группа блоков помощи водителю, которые устанавливались только при наличии гейтвея, и у этого есть веские причины.
Телематику и головное устройство обычно изолируют, так как они подвержены удаленной атаке, которая потенциально может привести к контролю над некоторыми функциями автомобиля. Пример, ставший уже классическим — взлом Jeep Cherokee в 2015 году.
А вот системе ADAS (Advanced Driver Assistance System) отводят отдельный домен, поскольку ее основные узлы — это камеры и разнообразные датчики, генерирующие большой поток данных, который нужно обрабатывать в реальном времени. Большинству модулей автомобиля этот трафик не нужен и только нагружает сеть, поэтому его можно без проблем вынести «за скобки».
В принципе, на этом можно было бы переходить к следующему этапу, но не помешает вспомнить о двух «лишних» трансиверах, которые были обнаружены в прошлом параграфе. Как оказалось, блок с такой же начинкой можно найти и в других автомобилях производителя.
Например, в Lexus RX 4-го поколения, где модуль гейтвея заведует уже всеми 6-ью шинами. Разнообразной электроники там тоже побольше — люкс, все-таки:

Сегменты сети, по порядку:
- диагностический (красного цвета);
- двигателя (зеленого цвета);
- инфотейнмента (голубого цвета);
- рулевого управления, ходовой части и тормозов (синего цвета);
- комфорта и кузовной электроники (черного цвета);
- ассистентов (бежевого цвета).
При этом за кадром осталась подсеть головного устройства «AVC-LAN», которая имеет отдельную схему в документации Lexus.
Обычно автопроизводители считают каждый цент и выгрызают все опциональные компоненты, но конкретно в этом случае Toyota не экономила и запаивала их даже там, где они не используются. Скорее всего в целях унификации или упрощения технологии производства.
Таблицы фильтрации: дубль первый
Результаты первых экспериментов показали, что модуль относительно несложный и просто выполняет фильтрацию на основе адреса принятого сообщения.
Теперь, когда известна распиновка гейтвея и подключаемые к нему домены, можно приступить к нудному, но любопытному процессу — перебору всех адресов для всех возможных сочетаний доменов. Так мы получим искомые таблицы фильтрации.
Всего имеется 4 домена, которые образуют 12 возможных пар:

Примечание: далее ради компактности обозначения доменов будут применяться сокращения: DIAG — диагностический, MAIN — основной, ASSI — ассистентов, INFO — инфотейнмента.
Для каждой пары нужно перебрать все 2048 (0x800) возможных адресов, это число обусловлено размером 11-битного CAN ID. Для каждого сочетания подключаем два CAN-интерфейса, один из которых будет передавать сообщения, а второй — принимать. Адреса «просеянных» сообщений вынесем в результирующую таблицу.
Первая таблица справедлива для всех сочетаний, в которых есть домен DIAG , то есть для всех случаев, когда к автомобилю подключено диагностическое оборудование через разъем OBD2: ASSI->DIAG , MAIN->DIAG , INFO->DIAG , DIAG->ASSI , DIAG->MAIN , DIAG->INFO .

Пропускаются только определенные сообщения с адресами из диагностического диапазона (0x700 — 0x7FF). Таблица содержит адреса и запросов и ответов, то есть может работать в обе стороны, и одинакова для всех доменов. Гейтвей не мешает диагностическим сообщениям, он для них прозрачен.
Остальные таблицы спрятаны под спойлер, чтобы не перегружать статью.
Дальнейшие таблицы регулируют обмен только собственных модулей автомобиля, без какого либо оборудования, подключенного к разъему OBD2.
Но что интересно, они все равно содержат диагностический диапазон, причем без пробелов. Любой модуль может отправлять в любой домен диагностическое сообщение и беспрепятственно получить ответ.
Выглядит это не очень безопасно. Давайте представим, что хакер смог заполучить контроль над модулем телематики из домена INFO . Поскольку правила фильтрации никак не ограничивают рассылку диагностических запросов из этого домена во все остальные, у потенциального злоумышленника открываются широкие просторы для творчества. Например, он может начать рассылать команды hard reset по всем адресам, погружая электронику автомобиля в хаос.
Таблица для пары MAIN->ASSI :

Таблица для пары INFO->ASSI :

Таблица для пары ASSI->MAIN :

Таблица для пары INFO->MAIN :

Таблица для пары ASSI->INFO :

Таблица для пары MAIN->INFO :

Пока все выглядит очень гладко, если бы не один момент: отсутствие адресов 0x001 и 0x002 при работе с диагностической шиной (самая первая таблица параграфа).
Дело в том, что для заливки калибровочных данных Toyota использует свой очень специфичный протокол, подробно описанный в популярной работе Adventures in Automotive Networks and Control Units.
Краткая выдержка протокола из этой работы
# ask PIDs supported 0000323409 [8] 02 09 00 00 00 00 00 00 0000323457 [8] 06 49 00 15 40 00 00 00 # ask calibration ID ( < 16 ASCII chars) 0000323617 [8] 02 09 04 00 00 00 00 00 0000323649 [8] 10 23 49 04 02 33 34 37 0000323656 [8] 30 00 00 00 00 00 00 00 0000323665 [8] 21 31 35 32 30 30 00 00 0000323683 [8] 22 00 00 00 00 00 00 41 0000323697 [8] 23 34 37 30 31 30 30 30 0000323717 [8] 24 00 00 00 00 00 00 00 0000323733 [8] 25 00 00 00 00 00 00 00 0000334785 [8] 06 49 00 15 40 00 00 00 # ask seed 0000934292 [8] 02 27 01 00 00 00 00 00 0000934326 [8] 06 67 01 01 BB 8E 55 00 # send key 0000935970 [8] 06 27 02 01 DB EE 55 00 0000935991 [8] 02 67 02 00 00 00 00 00 # some sort of warning for other ECUs 0000937634 [8] 02 A0 27 00 00 00 00 00 0000939275 [8] 02 A0 27 00 00 00 00 00 0000940915 [8] 02 A0 27 00 00 00 00 00 # switch to reprogramming session 0000942564 [8] 02 10 02 00 00 00 00 00 0000942663 [8] 01 50 00 00 00 00 00 00 # Toyota's proprietary protocol 0000950636 [8] 01 00 00 00 00 00 00 00 0000950641 [8] 01 00 00 00 00 00 00 00 0000950648 [8] 06 20 07 01 00 02 00 00 0000950655 [8] 02 07 00 00 00 00 00 00 0000950663 [8] 04 EF 6F 1F BC 00 00 00 0000950676 [8] 01 3C 00 00 00 00 00 00 0000950680 [8] 10 10 38 39 36 36 33 2D .
Адреса 0x001 и 0x002 должны быть указаны в правилах фильтрации, иначе было бы невозможно калибровать автомобили через диагностический разъем, например, во время отзывных кампаний.
Но где же они в таблицах?
Погружение в CUW
Чтобы разобраться с этим вопросом, вернемся к обнаруженным ранее сессиям и уровням доступа, вполне вероятно, что среди них кроется ответ. Сами по себе номера этих сервисов ничего не говорят, поэтому пришло время расковырять утилиту для калибровки CUW в поисках подробной информации.
CUW (Calibration Update Wizard) - это отдельная программа, входящая в состав диагностического комплекса Techstream от Toyota. Ее основная задача - это загрузка калибровочных данных в блоки автомобиля через диагностический интерфейс Toyota или другой J2534-совместимый интерфейс. Размер исполняемого файла программы всего несколько мегабайт и беглый просмотр показывает наличие большого количества текстовых символов и отладочных строк.
Открываем дизассемблер Ghidra и скармливаем ей CUW.
После пристального поиска находим некую сущность CCentralGWModeChanger в состав которой входят функции CollateSeedKey() и ChangeMode() , которые вызывают особый интерес. Давайте посмотрим, что у них внутри:

Хорошо видно, как буфер подготавливается к отправке, сначала в него загружаются идентификаторы сервиса - 0x27 для запроса seed и 0x10 для смены сессии, а далее мы видим уже знакомые байты 0x02/0x60 и 0x4f/0x51 соответственно. Выбор между этими байтами происходит по определенному условию.
Дальнейший поиск привел к двум функциям-оберткам ChangeToReprogMode() и ChangeToReprogGWMode() , которые и контролируют это условие, передавая флаг в качестве аргумента в CollateSeedKey() и ChangeMode() :
В стремлении к совершенству выбираешь лучшее. AS8 Клуб - сделавшие свой выбор.

Какой блок отвечает за защиту компонентов
9 сообщений • Страница 1 из 1

Demon25 Сообщения: 25 Зарегистрирован: Пн окт 03, 2011 11:48 am Репутация: 0 Модель: Audi A6 4F Мотор: BDW 2.4 Город: Moscow Имя: Дмитрий
Какой блок отвечает за защиту компонентов
Сообщение Demon25 » Ср ноя 23, 2011 10:56 am
У меня вопрос к знающим людям.
4 месяца назад менял блок MMI с FBAS заказывал с Германии б/у защиту компонентов не снимал поставил и все работает. При диагностики показывает блок MMI встал в защиту компонентов, но все работает. Теперь суть вопроса сейчас меняю Gateway с индексом 4L0 блок встал в защиту. Какой блок отвечает за защиту компонентов
Demon25
Andryuxa Почетный член Клуба Сообщения: 3721 Зарегистрирован: Пн фев 15, 2010 3:05 pm Репутация: 145 Модель: Audi Q8 Мотор: CJG Город: Москва Имя: Андрей Контактная информация:
Re: Какой блок отвечает за защиту компонентов
Сообщение Andryuxa » Ср ноя 23, 2011 12:28 pm
Каждый блок который ты меняешь встает в защиту. Снимай защиту у дилера.
不要紧,这是你的车是什么,主要的东西 — 在烤架上的四个环…
Andryuxa
Demon25 Сообщения: 25 Зарегистрирован: Пн окт 03, 2011 11:48 am Репутация: 0 Модель: Audi A6 4F Мотор: BDW 2.4 Город: Moscow Имя: Дмитрий
Re: Какой блок отвечает за защиту компонентов
Сообщение Demon25 » Ср ноя 23, 2011 12:51 pm
Хорошо а почему блок ММИ не встал в защиту. И у вас на форуме говорилось что Gateway может встать может не встать, от каких параметров это зависит
Demon25
Andryuxa Почетный член Клуба Сообщения: 3721 Зарегистрирован: Пн фев 15, 2010 3:05 pm Репутация: 145 Модель: Audi Q8 Мотор: CJG Город: Москва Имя: Андрей Контактная информация:
Re: Какой блок отвечает за защиту компонентов
Сообщение Andryuxa » Ср ноя 23, 2011 12:59 pm
Demon25 писал(а): Хорошо а почему блок ММИ не встал в защиту. И у вас на форуме говорилось что Gateway может встать может не встать, от каких параметров это зависит
да одному Богу это известно. Мой усилитель Bose тоже при замене не встал в защиту. А по идее должен был встать.
不要紧,这是你的车是什么,主要的东西 — 在烤架上的四个环…
Andryuxa
Demon25 Сообщения: 25 Зарегистрирован: Пн окт 03, 2011 11:48 am Репутация: 0 Модель: Audi A6 4F Мотор: BDW 2.4 Город: Moscow Имя: Дмитрий
Re: Какой блок отвечает за защиту компонентов
Сообщение Demon25 » Ср ноя 23, 2011 3:49 pm
Хорошо поменяю Gateway как это отразится на машине. Пробывал на панели приборов выскачило SAFE, но ММИ работало все это я пробывал в течении 1 минуты не трогаясь с места. Посмотрел в ELSA разъем Gateway 3-контакт (Функция автоматической активизации Wake-up Комби) что это такое
Demon25

Vladl Почетный член Клуба
Сообщения: 1261 Зарегистрирован: Вс июн 21, 2009 10:29 pm Репутация: 40 Модель: RR 2011 Мотор: 4,4 дизель Город: Москва Имя: Влад Откуда: Москва
Re: Какой блок отвечает за защиту компонентов
Сообщение Vladl » Ср ноя 23, 2011 4:52 pm
Насколько я знаю, некоторые блоки гейтвея, например, не требуют снятия защиты, некоторые - требуют.
Vladl
Demon25 Сообщения: 25 Зарегистрирован: Пн окт 03, 2011 11:48 am Репутация: 0 Модель: Audi A6 4F Мотор: BDW 2.4 Город: Moscow Имя: Дмитрий
Re: Какой блок отвечает за защиту компонентов
Сообщение Demon25 » Чт ноя 24, 2011 5:57 pm
При защите компонентов можно обновление ММИ делать ?
Demon25
Akin Президент Клуба Сообщения: 27193 Зарегистрирован: Пн авг 27, 2007 2:01 am Репутация: 603 Модель: ___ Мотор: ___ Город: Королев Имя: Владислав Откуда: Москва
Re: Какой блок отвечает за защиту компонентов
Сообщение Akin » Чт ноя 24, 2011 6:03 pm
Я делал - все обходилось.
Но не факт, что можно
Akin
JORAGREK Сообщения: 587 Зарегистрирован: Пн ноя 25, 2013 5:00 pm Репутация: 13 Модель: Красаучек А8D3 Мотор: 4.2 BFM Город: Подольск-Донецк Имя: Жора Контактная информация:
Re: Какой блок отвечает за защиту компонентов
Сообщение JORAGREK » Ср ноя 18, 2015 8:20 pm
Хлопцы,как снять защиту с ММИ?Сколько это у дилера стоит?Есть кто это делал не у дилера?
Живи, люби, кради, гуляй, купи весь мир, потом продай! Всегда ты помни вещь одну-не забывай свою братву.
Любви достойна только Мать и Гелендваген пять и пять.
JORAGREK
9 сообщений • Страница 1 из 1
- ОБЩЕНИЕ
- ↳ О САЙТЕ
- ↳ правила
- ↳ Правила Форума
- ↳ ВСЕ ОБО ВСЕМ - ОБЩЕНИЕ
- ↳ Клубная жизнь
- ↳ Встречи Клуба
- ↳ Клубные поздравления
- ↳ Увлечения
- ↳ Нехорошие люди
- ↳ География Клуба
- ↳ Беларусь
- ↳ Украина
- ↳ Казахстан
- ↳ Евросоюз
- ↳ ПМР и Молдова
- ↳ Наши автомобили
- ↳ Представление новичков
- ↳ Отчеты владельцев БОРТЖУРНАЛ
- ↳ Опросы
- ↳ Ауди А8 и S8 - обсуждение, покупка
- ↳ Audi A8 D2 4D
- ↳ Audi A8 D3 4E
- ↳ Audi A8 D4 4H
- ↳ Audi A8 D5 4N
- ↳ Audi Q7
- ↳ Прочие авто
- ↳ Правовые вопросы
- АВТОСОФТ, ДИАГНОСТИКА
- ↳ ETKA
- ↳ ELSA
- ↳ VAG-COM, VCDS
- ↳ VAS и ODIS
- ↳ Инструмент для ремонта
- ↳ КАТАЛОГ ССЫЛОК
- РЕМОНТ AUDI A8/S8 D2 4D 1994-2002
- ↳ Техподдержка
- ↳ Помощь в расшифровке ошибок
- ↳ ФАК по ремонту
- ↳ Двигатель, питание и выпуск
- ↳ TDI 2.5, 3.3
- ↳ V6 2.8 механика
- ↳ V8 3.7, 4.2 механика
- ↳ V6 2.8 питание, зажигание, управление
- ↳ V8 3.7, 4.2 питание, зажигание, управление
- ↳ W12 6.0 AZC
- ↳ Топливная система
- ↳ Комплекс проблем
- ↳ Система охлаждения и кондиционера
- ↳ система
- ↳ Webasto
- ↳ Климат-контроль
- ↳ Охлаждение двигателя
- ↳ Трансмиссия
- ↳ Привода, кардан
- ↳ Масло АКПП
- ↳ Ремонт АКПП
- ↳ Механическая КПП
- ↳ Рулевое управление и подвеска
- ↳ Рулевая рейка, насос ГУРа
- ↳ Подвеска
- ↳ Тормоза и колеса
- ↳ системы
- ↳ ABS, ESP, ASR
- ↳ Суппорта, колодки/диски
- ↳ Колесные диски, покрышки
- ↳ Кузовной ремонт
- ↳ Салон и опции
- ↳ система
- ↳ Аэрбег
- ↳ Люк
- ↳ Сиденья
- ↳ Руль
- ↳ Зеркала
- ↳ Стекла
- ↳ Парктроник
- ↳ Омыватель/очиститель
- ↳ Электрика и диагностика
- ↳ системы
- ↳ Иммо, ключи, сигнализация, ЦЗ
- ↳ Фары и фонари
- ↳ Электропроводка
- ↳ Панель приборов
- ↳ Генератор и аккумулятор
- ↳ Стартер
- ↳ Подсветка в салоне
- ↳ Круиз-контроль
- ↳ Музыка, TV, DVD, Navi, телефон
- ↳ Телефон
- ↳ Запчасти и обслуживание
- ↳ Номера деталей
- ↳ Техническое обслуживание
- РЕМОНТ AUDI A8/S8 D3 4E 2003-2009
- ↳ Техподдержка
- ↳ Помощь в расшифровке ошибок
- ↳ ФАК по ремонту
- ↳ Двигатель, система питания и выпуска.
- ↳ TDI 3.0 4.0 4.2
- ↳ V6 MPI 3.0 BBJ/ASN
- ↳ V8 MPI 3.7 4.2 BFL/BFM
- ↳ V6 FSI 3.2 BPK
- ↳ V8 FSI 4.2 BVJ
- ↳ V10 FSI 5.2 BSM
- ↳ W12 6.0 BHT/BTE/BSB
- ↳ Система охлаждения и кондиционера, подогрев, Вебасто
- ↳ Трансмиссия
- ↳ Рулевое управление и подвеска
- ↳ Рулевая рейка, насос ГУРа
- ↳ Ходовая часть
- ↳ Пневматическая подвеска
- ↳ Тормоза
- ↳ ABS, ESP, ASR, ручной тормоз
- ↳ Суппорта, колодки/диски
- ↳ Кузовной ремонт
- ↳ Салон
- ↳ MMI - мультимедийный интерфейс
- ↳ MMI
- ↳ TV
- ↳ Аудиосистема
- ↳ Телефон
- ↳ Навигация
- ↳ CD/DVD AMI
- ↳ Электрооборудование
- ↳ Фары и фонари
- ↳ Подсветка
- ↳ Парктроник
- ↳ Стартер
- ↳ Генератор и аккумулятор
- ↳ Щиток приборов
- ↳ Сигнализация, замки, доводчики
- ↳ Стеклоочиститель, омыватель
- ↳ Память, регулировки
- ↳ Аэрбег
- ↳ Система давления шин
- ↳ Обслуживание и запчасти
- ↳ Номера деталей
- ↳ Техническое обслуживание
- РЕМОНТ AUDI A8/S8 D4 4H 2010-2017
- ↳ Техподдержка
- ↳ Помощь в расшифровке ошибок
- ↳ Двигатель, система питания и выпуска.
- ↳ hyb AT 2.0
- ↳ TDI 3.0 V6
- ↳ TDI 4.2 V8
- ↳ TFSI 3.0 V6
- ↳ FSI 4.2 V8
- ↳ TFSI 4.0 V8
- ↳ W12 6.3
- ↳ Система охлаждения и кондиционера, подогрев, Вебасто
- ↳ Трансмиссия
- ↳ Рулевое управление и подвеска
- ↳ Гидроусилитель руля
- ↳ Электроусилитель руля
- ↳ Ходовая часть
- ↳ Пневматическая подвеска
- ↳ Тормоза
- ↳ Кузовной ремонт
- ↳ Салон
- ↳ Электрика, электроника
- ↳ ТО Техническое Обслуживание
- РЕМОНТ AUDI A8/S8 D5 4N 2018-
- ↳ Техподдержка
- Колеса диски покрышки
- ↳ для D2 (4D)
- ↳ для D3 (4E)
- ↳ для D4 (4H)
- ↳ для Q7
- ↳ Ремонт дисков
- Техподдержка по родственным моделям VAG
- ↳ Техподдержка
- ТЮНИНГ
- ↳ Тюнинг двигателя, подвески и тормозов.
- ↳ Тюнинг D2
- ↳ Тюнинг D3
- ↳ Тюнинг D4
- ↳ Тюнинг кузова и салона
- ↳ Тюнинг D2
- ↳ Тюнинг D3
- ↳ Тюнинг D4
- Клубный Техцентр
- ПОКУПКА-ПРОДАЖА
- ↳ Продажа запчастей
- ↳ Куплю запчасти
- ↳ Колесные диски, покрышки
- ↳ Продажа автомобилей
- ↳ Куплю автомобиль
- ↳ РАЗНОЕ
Создано на основе phpBB® Forum Software © phpBB Limited
