Skoda Rapid (1G) (Rapid)

MIB2 STD. Вивід даних Android Auto на приладову панель. Продовження.

Початок тут.

Репо проєкту тут .


Після попереднього поста про навігацію AA на приладовій панелі, мені написали кілька хлопців з MIB2 - InstantCrush з ГП Amundsen та milhen з ГП Delphi (не знаю, як вони у VW називаються). Разом з InstantCrush ми досить швидко змусили мій патч працювати зі штатним меню Navigation у приладці. Водночас я допиляв відображення навігації через меню Media (як у першому пості), а саме:

  • Пофіксив баги, пов'язані з "чорним екраном" після форс-відключення телефона від AA. Раніше для цього доводилося перезавантажувати ГП.

  • Злегка "переграв" стрілкове відображення на приладці в меню Media, бо мої гарні стрілочки приладка малювати там відмовлялася. Тепер так:


  • Використав четвертий рядок (Q4) на приладці в меню Media під рухомий рядок з поточним треком, що грає, а якщо наступна подія по навігації - круговий рух, то в ньому відображатиметься номер з'їзду.


Ось як воно стало виглядати в результаті (тут музика не грає): 



А InstantCrush допиляв функціонал для Amundsen (там працюють обидва меню - Navigation і Media): 



З milhen ми намагалися змусити працювати патчик на MIB2 Delphi з прошивкою MST2_EU_VW_P0883D, але у делфі логіка АА лежить не в libext.google.gal.receiver.so (/tsd/lib/sal/gal/libext.google.gal.receiver.so), як у Technisat/Preh, а в libautoreceiver.so (/extbin/apps/lib/libautoreceiver.so.1). До кінця розібратися з його структурою мені поки не вдалося, зате вдалося домогтися відображення поточного треку з AA у приладці (AID). Складність з Delphi полягала в тому, що для нього немає тулбокса, і всі дії доводилося виконувати через delphi.sh. Під час однієї із "заливок" через delphi.sh, мій кривий sed завалив runHMI.sh, через що ГП впало в бутлуп :( на щастя, milhen'у вдалося його швидко підняти без реєстрації, смс та usb2ttl адаптерів :) Результат по цьому ГП на поточний момент: 



Принцип роботи патча з моменту написання минулого звіту не змінився, і якщо коротко, то полягає він у наступному:

  • Патчимо libext.google.gal.receiver.so, щоб він реєстрував media та nav ендпоінти, брав звідти дані й клав їх у два файлики - /dev/shmem/aa_nav та /dev/shmem/aa_media.
  • Збираємо новий jar, який за аналогією з NavIgnore вантажитиметься поверх стокових класів, читатиме ці два RAM-файли й малюватиме потрібні нам значення на приладці.

Трохи детальніше тут.

Важливо - /dev/shmem на QNX "замонтовані" прямісінько в RAM, тому саме цей розділ я і обрав для розміщення своїх shared-файликів. Кращого рішення я поки не знайшов.


DISCLAIMER: Все описане нижче тестувалося на ГП MIB2 Bolero та Amundsen з 480-ю прошивкою. Попри те, що я намагався робити патч "універсальним", я не можу гарантувати, що все заведеться на інших прошивках. За завалені юніти відповідальності не несу, все на ваш ризик. А ризик є.


Як розкатати на ГП 


  • Встановити нову версію toolbox, яка підтримує AAtoKombi. Поки що вона доступна лише в моєму форку, трохи згодом зроблю PR у репо olli991.
  • Через тулбокс, меню Customisation->navi->Dump files (stock libgal + HMI, for building) скопіювати на SD-картку файли MIBHMI.jxe та libext.google.gal.receiver.so.
  • Склонувати репозиторій проєкту собі на комп'ютер (перед цим перевіривши, що на комп'ютері встановлено Docker)
  • Запустити патчер - ./build.sh /path/to/your/MIBHMI.jxe /path/to/your/libext.google.gal.receiver.so .
  • Скопіювати результуючі файли на SD-картку в custom. ./dist/AAtoKombi.jar у custom/java/AAtoKombi.jar, ./dist/libext.google.gal.receiver.so у custom/sal/libext.google.gal.receiver.so .
  • Вставити SD-картку в MIB, запустити тулбокс, у ньому запустити скрипт Customisation->navi->Enable AAtoKombi.
  • Перезавантажити MIB.

Якщо після перезавантаження щось пішло не так (наприклад, не працює/вилітає AA), то відкотити патч можна через те саме меню, пункт Disable AAtoKombi. Він відновить libext.google.gal.receiver.so з бекапу (бекап лежатиме в /tsd/lib/sal/gal/libext.google.gal.receiver.so.aatokombi.bak), видалить підключення AAtoKombi з /tsd/hmi/runHMI.sh і дропне сам файл /tsd/hmi/HMI/jar/AAtoKombi.jar.


По CarPlay новин поки жодних - не було часу.


Також, патч був випробуваний одним авантюристом з Мексики на Seat з VC, все працює ОК :)



PS Тямущих людей запрошую на "рев'ю" на Гітхаб. У мене досвіду з подібним стеком малувато, міг щось упустити/зайво ускладнити.



Реклама
Ремонт та обслуговування системи кондиціювання
Опубліковано: 09 липня 23:54
0 0 1

Коментарі

Щоб залишати коментарі, потрібно авторизуватись.