среда, 5 сентября 2018 г.

Ford SYNC2


Введение

Концептуально SYNC2 состоит из 2х частей. Назовем их условно Основная часть и Навигация. Навигации может не быть, если вы ее не купили. Если купили, поздравляю - вы, впрочем как и я, лажанулись. Потому что официально она стоит бешеных денег и при этом её можно доставить от бесплатно до скромной суммы, скажем, 1000 рублей. Подробнее ниже.

Система Ford SYNC2, о которой тут пойдет речь, выглядит как на картинке ниже слева:


Она еще называется MFT (MyFordTouch). Если у Вас система выглядит как на картинке справа, то у вас так называемый MFD (MultiFunctionalDisplay). Про него здесь речь не идет. Единственное что могу сказать  - карты для него несовместимы с MFT и имеют в названии V  - V1,V2 и т.д, в зависимости от версии карт. Карты для MFT имеют в обозначении F - F1,F2 и т.д. в зависимости от версии карт.

Если система выглядит вот так:
, то у Вас SYNC3. О нем здесь тоже речи не идет.
На SYNC2 нельзя прошить SYNC3, там совсем другое железо.

Основную часть и карты можно обновлять независимо. Рассмотрим детальнее.


Основная часть

Смешно, но Ford не выкладывает в свободный доступ новые версии прошивок. Они не всегда даже есть у дилеров. Но благодаря нормальным людям прошивки можно найти в инторнетах и прошить самому. Естественно вы все делаете на свой страх и риск. Я никакой ответственности не несу. 

Первым делом вам нужно узнать какая у вас прошивка сейчас. SYNC2 ее показывает в системной информации:
На экране выше видно что прошивка 3.08.

Вторым делом вам нужно узнать есть ли новая версия прошивки и скачать ее. Вот список доступных на текущий момент версий со ссылками для скачивания:
Надо ли ставить подряд по возрастанию? Скорее всего нет и можно ставить последнюю, так как в самой прошивке есть указания какие прошивки она может обновить и, если ваша не подойдет, то прошивка просто не будет устанавливаться. Тогда вначале попробуйте поставить более раннюю версию.

Далее скачанный архив нужно распаковать на USB-флэшку. Флэшка должна быть отформатирована в FAT32 со стандартным размером кластера. Распаковывать нужно так, чтобы файл autoinstall.lst и все, что с ним в одной папке, оказалось в корне флэшки. Должно получиться примерно вот так:

После этого идете к машине и:
  1. Заводите машину
  2. В меню бортового компьютера отключаете Автоостановку двигателя 
  3. Вставляете флешку в USB-порт в машине. Если все нормально, начнется обновление прошивки. По ходу придется согласиться с обновлением и в конце процесса также нажать кнопку завершения. 
Самое главное - процесс обновления длится минут 30. Наберитесь терпения, не выдергивайте флешку и  не глушите двигатель. Можете даже ехать, но ни в коем случае не включайте заднюю передачу. Есть случаи, когда в такой ситуации получали "кирпич".

Все, на этом процесс обновления основной части завершен. 

Дополнительно про обновление можете почитать здесь, здесь, здесь  и здесь

ЗЫ. Если после обновления на 3.10 у вас перестал показываться анимированный логотип Ford, накатите сверху обновление отсюда (или отсюда).


Навигация

О-о-о, навигация - это "песня". Я даже не будут особо заострять внимание на том, что в SYNC2 она тупая, как по скорости работы так и по "интеллекту". При этом она стоит больших денег. При этом обновление карт стоит больших денег. При этом это старые карты даже в последних обновлениях.


Немного матчасти.

Карты находятся на отдельной SD-карте. Чтобы их тупо не могли купить один раз, копировать и продавать за копейки есть защита. Суть её такая. Каждая SD-карта имеет так называемый CID(CardID), в котором в частности содержится серийный номер карты (SID, целое число в 4 байта). В идеале CID (и SID) прописывается прямо на заводе, где карта изготовлена, и в дальнейшем не может быть изменен. Поэтому в идеале каждая SD-карта содержит уникальный серийник. Далее по этому серийнику с помощью криптографических алгоритмов генерируется файл SdCard.key, содержащий этот серийник в зашифрованном виде. Файл SdCard.key записывается вместе с картами навигации на SD-карту. При обнаружении SD-карты программное обеспечение авто, ответственное за навигацию, извлекает из SdCard.key серийный номер и сверяет его с серийным номером из самой SD-карты. Если они не совпадают - навигация не работает.

Поэтому, если вы просто скопируете файлы навигации с оригинальной SD-карты на свою, то работать не будет, поскольку SID вашей карты будет другой.
Скопировать новые версии карт на оригинальную карту, сохранив SdCard.key, тоже не получится - оригинальная карта защищена от записи. Причем это не ползунок блокировки на самой карте, это прошито в нее саму.

В итоге для возможности пользоваться новой версией карт остается 2 варианта с разными способами реализации:
  1. сгенерировать свой SdCard.key для своей карты
  2. прописать оригинальный SID в свою карту.
А ну да. Есть же еще вариант купить новую версию карт. Вот пожалуйста, например, актуальная на сегодня F7 всего за 60 евробаксов. За F8 потом еще 60 и так далее. Вот вы бы купили  Яндекс.Навигатор, например, штук за 20 и еще каждый год по 5 штук отдавать за обновления? А тут нам Ford именно это и предлагает примерно. 


Активация навигации

Если навигацию вы купили изначально с машиной, естественно, у вас все активировано, переходите к следующему разделу.
Если навигации изначально не было, то ее можно активировать, поскольку изначально в машине все для нее есть (на машинах с SYNC3, например, это уже не так). 

И тут я хочу вас отговорить её активировать вообще. Причина банальна - результат не стоит затраченных средств и усилий. Как я писал выше, во-первых, она просто тупая. Бесплатный Яндекс.Навигатор на порядок сообразительнее. Банальный пример. Для ЯНавигатора вы можете сказать  "Слушай Алиса, Поехали на ближайшую заправку Лукойл" и она вам ее найдет и также голосом подтвердите "Поехали". Для навигации в SYNC2 Вы нажмете кнопочку, дождетесь сигнала готовности воспринимать ваш вопрос, скажете "Навигация", дождётесь, скажете "Точка интереса", дождетесь, скажете "Заправка", подождете, скажете "Ближайшая" или "По маршруту" или что-то типа, потом на экранчике увидите список заправок, либо  тыкнете, либо скажете "Строка один", потом еще вроде надо сказать "задать как цель" и тогда оно заработает. При указании адреса надо обязательно его начинать с города. И не факт что она поймет ваш чистый или не очень русский с первого раза. Карты как я говорил старые. Если вы хотите задать место по карте, то скроллинг и зумминг будет услужливо медлителен..
Дальше пробки, они естественно актуальнее в яндексовом навигаторе. Короче, все плохо.

У встроенной навигации есть только 2 плюса ИМХО. Первый - она работает в тоннелях, потому что помимо GPS получает данные от самой машины, в частности от колес и после потери сигнала GPS может примерно спрогнозировать местоположение. Сомнительное достижение, учитывая, что в тоннелях редко бывают развязки, и немного можно проехать и без навигации. Второй плюс - ей не нужен интернет, что особенно актуально при поездках за границу ибо жадные ОпСоСы хотят за роуминг много денег. Но этот вопрос тоже решается например бесплатной же прогой Maps.ME, в которую можно нужные карты скачать заранее дома по WiFi. Ну и вообще, прикиньте сколько вы заплатите за интернет на мобиле, а сколько за активацию навигации.

Короче подумайте, но если все таки решите, то вариантов активации собственно 2 - вы либо едете к барыгам  к знающим людям и за 5 штук они Вам ее активируют, либо делаете все тоже самое сами. Естественно, есть ещё вариант официально ее докупить. Вроде бы. 

"Знающих людей" можете поискать на ffclub.rufordexplorernew.ru или на drive2.com. Ну или гуглите. Ну или вот, там кстати половина расписана что сделать самим =) 

Для самостоятельной активации вам понадобиться ноутбук, шнурок для подключения к шине (да еще не всякий, например такой), программы FoCCCus (для новых версий авто/прошивок может не работать) или FORScan (причем нужна Расширенная лицензия), а также файлик NaviPatch.png (или отсюда). 

Очень хорошо процесс активации расписан здесь. Вкратце Вам нужно будет с помощью FORScan поменять первый байт по адресу 7D0-01-02 с 00 на 04. Потом залить NaviPatch.png в SYNC2 как фон рабочего стола и нажать там кнопку Unlock. Как видите, все просто, но можете отдать "знающим людям" 5 штук, если боитесь. Да кабель тоже как бы стоит денег, но во-первых, вы через него еще много чего сможете сделать с машиной, а во-вторых, его можно не надолго у кого-то и одолжить.

Может возникнуть ситуация, что навигация все равно не работает из-за того, что в при прошивке не было установлено ПО для навигации. Например у вас последняя версия прошивки с завода, но навигацию вы не покупали и прошить ее не можете, потому что система не хочет заново ставить ту версию, что уже и так стоит, и SYNC2 выдает сообщение, что обновление не требуется. То есть SYNC смотри на первый пакет из списка и говорит, что такой пакет уже стоит, а то, что за этим пакетом идут другие, которые не установлены - он не знает.
Чтобы его обмануть, нужно первый абзац в файле autoinstall.lst в прошивке привести к следующему виду в текстовом редакторе: 
[SYNCGen2_4.23.11038]
[SYNCGen2_4.23.11063]
[SYNCGen2_4.23.11081]
[SYNCGen2_4.23.11134]
[SYNCGen2_4.26.12023]
[SYNCGen2_4.28.12156]
[SYNCGen2_4.29.12285]
[SYNCGen2_3.08.15128]
Item1 = EA5T-14F657-AE
Open1 = SyncMyRide\EA5T-14F657-AE.zip
Options = AutoInstall

Для 3.10 скорее всего надо еще добавить [SYNCGen2_3.10.16180] после [SYNCGen2_3.08.15128]

После чего сходить к машине и дописать в SYNC файлы отвечающие за навигацию как при обычной прошивке. Вся процедура по времени занимает около минуты.


Генерация своего SdCard.key.

Это путь, который выбирает большинство. Но на этом пути есть одна маленькая засада - получение SID своей карты. Дело в том, что если у вас в компьютере или ноутбуке есть карт-ридер, или он у вас внешний втыкаемый в USB, то получить через него CID (и SID) непосредственно карты не получится. Подключенный таким образом карт-ридер выдает какие-то свои собственные CID/SID, естественно, генерируемые по ним ключи не распознаются потом ПО навигации. Если у вас есть такая экзотика как  карт-ридер, подключаемый к PCI, то скорее всего тогда получится. Но вы уникальный чел =).
Но как решать проблему большинству?
  1. У большинства есть смартфоны на Android, а у большинства этих смартфонов есть слот для карт MicroSD. Таким образом, вместо карты SD используется карта microSD, а в машине она используется через адаптер SD-microSD. Для определения же SID на смартфоне используется, например, программа SD-booster. Также есть программа FordActivator (или тут) - последняя вообще сразу создает файл SdCard.key на вставленной Sd-карте по ее номеру. Минусом данного подхода считается ненадежность адаптера, особенно в зимний период. Но зато это самый доступный способ узнать SID
  2. Если у вас завалялось что-то на Windows CE, например, старый навигатор (или КПК на Pocket PC или смартфон/коммуникатор на Windows Mobile - не путать с Windows Phone), и в нем есть слот для полноразмерных SD-карт, то можно попробовать узнать SID на нем. Для этого есть программа PPC_Card_ID. Проблема только в том, что с последней Windows сложно подружить старушку Windows CE. А также старый девайс может не видеть карты большой емкости.
  3. Вы можете попробовать прочитать SID через Arduino. Штука забавная, если любите мастерить что-то электронное. На алиэкспрессе можно заказать ArduinoUno баксов за 8 и к нему модуль для SD-карт бакса за 2. Опять же если не хотите покупать можно у кого-то одолжить на время. Соединить модуль чтения SD-карт с ArduinoUno  нужно следующим образом:
    Разъем SD-модуляРазъем ArduinoUno
    GNDGND
    3.3V3.3V
    MISO12
    SCK13
    MOSI11
    CS28
    Далее нужно скачать и установить Arduino Studio (либо все делать прямо в Arduino Web Editor), открыть в нем вот этот скетч (архив распаковать в "Мои Документы\Arduino"), присоединить Arduino Uno к компу через USB, залить скетч на Arduino, открыть монитор порта, прога попросит вставить карту и ввести любой символ, вводим, нажимаем кнопку Send и в ответ, если все Ок, должна нарисоваться информация о карте, в том числе серийник (Serial Number на картинке ниже):
Иногда Sd-карта не читается с первого раза. Особенно этим грешат купленные оригинальные SD-карты  с картами. Перевоткните карту в ридере.

Так или иначе Вы получили SID. Далее Вам нужно сгенерировать по нему SdCard.key.
Можете сделать это прямо тут,введя в форму свой SID (вводить можно в десятичноном виде как есть, для 16-ричного нужно добавить перед кодом 0x, чтобы получилось например 0xC0FF8000) . В результате Вам будет предложено сохранить сгенерированный SdCard.key

Либо можете скачать архив, распаковать, запустить GenFordKey.exe, ввести SID и также получить SdCard.key в той же папке. Содержимое архива часто идет вместе с самими картами.


Запись оригинального SID в свою карту.

SID оригинальной карты можно узнать способами 2 и 3 из предыдущего раздела.
Теперь как его прописать, если CID/SID прописывается на заводе при изготовлении и менять его нельзя?  

Во-первых, есть карты, например Samsung Evo, в которых SID можно перезаписать. К сожалению, такое возможно только в относительно старых Samsung Evo (вроде до 2016 года) и шанс, что у Вас будет такая, мал. Подробнее об этом написано здесь.

Второй вариант  - у китайцев можно заказать карту с нужным вам CID. Способ это не дешевый, если брать всего одну. Подробнее можете почитать здесь или здесь .  Причем по второй ссылке автор, судя по его комментарию, научил свою Arduino также разблокировать для записи оригинальные SD-карты.


Ссылки на скачивание карт

После скачивания просто распаковываете карты на свою SD-карту, записываете на нее также файл  SdCard.key, если вы его генерировали и вставляете в слот в машине. Все должно заработать.
Для карт до версии F6 SD-карта должны была быть отформатирована в FAT32, начиная с F6 форматировать нужно в exFAT, потому что FAT32 имеет ограничение на размер файла в 4 гигабайта, а в новых картах есть файлы, превышающие этот лимит.

На некоторых картах имеется обновление ПО навигации,которое происходит при первом включении карты.

Итак ссылки для скачивания (некоторые ссылки типа magnet - их нужно качать torrent-клиентом или DC++ клиентами):


Дополнительная информация

Файлик NaviPatch.png - это на самом деле SWF c другим расширением. Это значит это скомпилированный Flash (помните Масяню? ну вот это тоже самое =). Именно по этому там появляется кнопка и ее можно нажать. Согласно информации отсюда - весь интерфейс SYNC2 написан именно на Flash.

Все манипуляции с кодирование и раскодированием SdCard.key можно выполнять с помощью OpenSSL. На указанном сайте только исходники, которые еще нужно компилить. Вот тут можно найти ссылки на бинарники. Фактически понадобиться только 3 файла из архива:
  • openssl.exe
  • libssl-1_1.dll
  • libcrypto-1_1.dll
Также понадобится файл private_key.pem с приватным ключом (его содержимое также есть в коде данной страницы в комментариях =). Собственно, все что делает GenFordKey.exe это записывает ваш SID в нужном формате и запускает openssl.exe c нужными ключами. Приватный ключ вшит в него.

Например для генерации SdCard.key вы можете положить в папку с openssl.exe и dll-ками файл private_key.pem, записать свой SID в десятичном формате (из 16-ричного можно сконвертировать через стандартный калькулятор Windows) в файл data.txt и запустить такую команду в консоли

openssl.exe rsautl -encrypt -inkey private_key.pem -in data.txt -out SdCard.key

А чтобы из SdCard.key получить обратно SID можно написать так

openssl.exe rsautl -decrypt -inkey private_key.pem  -in SdCard.key -out data.txt

После этого в data.txt будет ваш SID

Ключи кстати генерятся разные для одного и того же SID. Но раскодируется все обратно как положено.