Цей ретрофіт було реалізовано ще 12 лютого, але руки дійшли написати лише зараз.
Disclaimer!
Цей допис є лише описом мого особистого досвіду і ні в якому разі не є прямою інструкцією до дії. Якщо ви вирішите повторити цей експеримент, то я не несу відповідальності за наслідки.
Із заводу, моє авто вже оснащене переднім радаром, але в комплектації його функціонал обмежений лише функцією попередження зіткнення та екстреним гальмуванням. В інтернеті давно є інструкція, як розширити функціонал радару, а саме додати Адаптивний круїз контроль (ACC). І для цього ретрофіту нічого з додаткового обладнання не потрібно, лише програмні маніпуляції. А я ж у мамки програміст (ну майже), то ж погнали у цю захопливу подорож.
Вхідні дані
Ідентифікатор системи: ACC BOSCH MQB
Версія ПЗ 681
Версія АЗ H10
Кат. номер ПЗ 5Q0907572N
Кат. номер АЗ 3QF907572
Із цікавого, сама запчастина йде під артикулом 3QF907561С, але в діагностичних програмах ідентифікується як - 3QF907572.
У чому суть програмних маніпуляцій з радаром?
Функціонал радару визначається так званими FEC-кодами (Function Enable Code), зокрема цей радар підтримує 4 серії FEC-кодів:
Кожна серія має певний набір кодів, які зі зростанням порядкового номеру збільшують свій функціонал:
10009001 Пакет MRR 1: ACClow (базовий ACC) + FrontAssist включно з CityANB
10009002 Пакет MRR 2: ACClow (ACC FTS) + FrontAssist включно з CityANB
10009003 Пакет MRR 3: ACClow (ACC S&G) + FrontAssist включно з CityANB
10009004 Пакет MRR 4: FrontAssist включно з CityANB (без ACC)
10009005 Пакет MRR 5: CityANB (без ACC)
10009006 Пакет MRR 6: ACChigh (базовий ACC) + FrontAssist включно з CityANB
10009007 Пакет MRR 7: ACChigh (ACC FTS) + FrontAssist включно з CityANB
10009008 Пакет MRR 8: ACChigh (ACC S&G) + FrontAssist включно з CityANB
10009101 Пакет розширення функцій ACC "predictiveACC"
10009102 Пакет розширення функцій ACC "StauAssistent"
10009103 Пакет розширення функцій ACC "predictiveACC & StauAssistent"
10009201 Варіант AWV "AWV1,2 - попередження лише візуально та аудіально"
10009202 Варіант AWV "AWV1,2"
10009203 Варіант AWV "AWV1,2,3"
10009204 Варіант AWV "AWV1,2,3, vFGS"
10009205 Варіант AWV "AWV1,2,3, vFGS, vRFS"
10009301 Пакет розширення функцій AWV "EmergencyAssist"
10009302 Пакет розширення функцій AWV "Асистент повороту"
10009303 Пакет розширення функцій AWV "AWV-зустрічний рух"
10009304 Пакет розширення функцій AWV "Асистент повороту & AWV-зустрічний рух"
10009305 Пакет розширення функцій AWV "EmergencyAssist & AWV-зустрічний рух"
10009306 Пакет розширення функцій AWV "EmergencyAssist & Асистент повороту"
10009307 Пакет розширення функцій AWV "EmergencyAssist & Асистент повороту & AWV-зустрічний рух"
Розшифровка абревіатур:
ACC - Адаптивний круїз-контроль
ACClow - Базова версія адаптивного круїз-контролю
ACChigh - Розширена версія адаптивного круїз-контролю
FrontAssist - Система попередження про зіткнення
CityANB - Автоматичне екстрене гальмування в місті
FTS - Функція слідування за транспортним засобом
S&G - Функція "Старт-Стоп"
predictiveACC - Прогнозований адаптивний круїз-контроль
StauAssistent - Асистент руху в заторах
AWV - Асистент попередження водія
vFGS - Передбачувана функція керування швидкістю - Fußgängerschutz (захист пішоходів)
vRFS - Передбачувана функція регулювання швидкості - Radfahrer-Schutz (захист велосипедістів).
EmergencyAssist - Асистент екстреної допомоги
FGS має повний вигляд , а RFS відповідно
Таким чином, задача зводиться до необхідності залити в радар FEC-код, який відповідає за адаптивний круїз контроль. Заливка FEC-кодів відбувається через спеціальні SWaP (Software as Product) ключі в HEX форматі.
Наприклад SWaP з FEC-кодами 10009008 і 10009204 виглядає наступним чином:
1107FFFFFFFF032B7F41AED03356574335374255324B4D3036353831310067AB2FE6021000900810009204229BBDB78432FD63A5FA71E15F36787291171E0D6174C912E753C47F738177F44A8ED71296B6F1636318DF67F09B801C4C4BCB287C7F02725EDBFA84F39F9D7C30570F3F0C55D3366386442C998B6CCB01B96F4A1478989BD0227A12231B8C20D0B6104F7ECAFC210FDD20AC231296D5128CFD79178B3192394054F371B04072
Окрім самих значень FEC, ключ також містить VIN-код авто та VCRN (Vehicle Configuration Record Number) блоку, в даному випадку блоку радара.
В інтернеті можна знайти у вільному доступі калькулятор SWaP, який виходячи з необхідного вам набору FEC, VIN та VCRN згенерує SWaP-ключ. Але просто так залити його в радар не вийде. Тому переходимо до наступної частини.
Глибоке занурення
Всі наступні маніпуляції виконуються за допомогою програмного забезпечення ODIS Engineer та ODIS Service!
Для того, щоб в радар можна було записати новий SWaP необхідно, щоб він мав певне значення public key.
У випадку радару 5Q0∕3QF значення public key має починатися з: 9C 47 73
КРОК 1: ЗМІНА ЗНАЧЕННЯ ВІДКРИТОГО КЛЮЧА
Перевірити сам ключ можна тут:
13 module > 03.Measured values > Public key for SWaP function
Як бачимо, мій не відповідає необхідному.
Загальновідомий спосіб отримати необхідне значення public key полягає в активації Component Protection на радарі та прошиванням інженерної прошивки FL_5Q0907572M_X720 з наступним зняттям Component Protection. За такої послідовності public key міняється на необхідний.
Найбільш простіше це знайти такого ж дурника відчайдуха як і ви, і просто обмінятися з ним радарами. При підключенні до нового авто, радар понюхає VIN-авто, порівняє з тим, що записаний в ньому, звісно вони не співпадуть, і таким чином він впаде в захист.
Знайти таку людину може виявитися ще тим квестом, то ж є "альтернативний спосіб" за допомогою онлайн-облікового запису ODIS Service.
Треба почати процедуру зняття захисту компонентів для блоку радару, навіть не дивлячись, що помилка Component Protection на ньому зараз відсутня. Щойно ODIS дійде до запиту логіну та паролю — настає момент максимальної пильності. Як тільки введете логін і пароль, рахуйте секунди, 2-3 секунди — і на екрані з’явиться ПЕРШЕ повідомлення "Розблокування IKA" або "IKA Activation". Ось тут і потрібно діяти блискавично: миттєво висмикнути USB-кабель із комп’ютера! Чому це важливо? Бо якщо пропустите перше повідомлення й витягнете кабель пізніше, коли з’являться повторні сигнали, то скоріше за все отримаєте лише тимчасову помилку, яка вам не допоможе. Тож треба стати найшвидшою рукою на дикому заході!
В цьому всьому є одне головне АЛЕ. Обмеження онлайн доступу на зняття захисту компонентів в 10 хвилин. Жодний майданчик не пропонує можливість придбати годинний доступ. А зробити зняття захисту треба мінімум двічі: 1- активація захисту, 2- зняття захисту. Вартість цих 10 хвилин - 30 євро, що погодьтеся, не мало.
Я спробував, і за 10 хвилин мені вдалося виконати процедуру лише двічі і отримав я лише тимчасову помилку:
і це нам не підходить.
Блукаючи закутками інтернету, в англомовному сегменті я знайшов такого ж бідолаху з радаром 3QF907561 H10, і він знайшов вирішення проблеми отримання необхідного значення public key даунгрейдом прошивки.
Тут треба прийняти до уваги те, що після даунгрейду, зворотнього шляху вже нема. Кодування та параметрія радару буде стерта!
Спочатку радар необхідно прошити на версію ПО значно нижче за поточне, public key зміниться, але все ще не на те значення, що нас цікавить:
В блоці буде купа помилок, в тому числі і про втрачені кодування з параметрією:
Далі вже прошиваємо інженерну прошивку FL_5Q0907572M_X720, public key знову зміниться, але вже на те значення, що нас цікавить:
В самому блоці все ще купа помилок:
КРОК 2: ГЕНЕРАЦІЯ SWAP КОДУ
Діємо за наступним алгоритмом:
1) Визначаємо значення VCRN
13 module > 03.Measured values > Individualization characteristic
2) Визначаємося з переліком FEC-кодів.
Модуль підтримує лише 4 (по одному з кожної групи), але в цілому, наш радар і так підтримує тільки 4 групи. Згенерувати всі про запас - не вийде. Зокрема, FEC-коди, що відповідають за предактивний круїз контроль (pACC) вимагають наявність камери асистентів на лобовому, в іншому випадку радар отримає нестираєму помилку (FAULT_TIMEOUT_HCA_01), і круїз контроль працювати не буде, ні звичайний, ні адаптивний!
В моєму випадку були обрані 10009008 та 10009204:
10009008 - Пакет MRR 8: ACChigh (ACC S&G) + FrontAssist включно з CityANB
10009204 - Варіант AWV "AWV1,2,3, vFGS"
3) Генеруємо SWap-код за допомогою тули afcg_swap_generator
КРОК 3: ЗАЛИВКА SWAP КОДУ В БЛОК
Блок 009 — Діагностичний сеанс → Режим при сході з конвеєра (EOL)
Блок 008 — Право доступу → код 20103
Блок 007 — Адаптації → Передача коду розблокування функції SWaP → Введення згенерованого коду в поле "Введення даних"
Блок 005 — Базове налаштування UDS → Розблокування функції SWaP
Блок 003 — Вимірювані величини → Статус усіх функцій SWaP
КРОК 4: ВСТАНОВЛЕННЯ АКТУАЛЬНОЇ ПРОШИВКИ
На сьогодні для нашого радару найсвіжіша доступна прошивка це 5Q0907572S_0780.
Але є думка, що попередня краща: 5Q0907572R_0771. Я зупинився саме на ній.
Неочікувано, допис виявився великим. То ж про параметрію і кодування напишу в окремому дописі.