Это конфликт логических адресов ченджера в адаптере и штатного ченджера. Всего в системе может быть зарегистрированно два ченджера с адресами 0x43 и 0x63. Попробуйте поменять в файле AVCLanNavi.cpp все строки 0x63 на 0x43.
Чтобы проще было перехватить кнопки на руле, нужно понимать, что происходит в шине при их нажатии. Сами коды кнопок не передаются. Передаются команды головы при нажатии этих кнопок.
Например:
при нажатии кнопки громкости, будут выдаваться команды с текущим уровнем громкости или команда усилку (если он внешний) изменить громкость.
При нажатии кнопки mode, голова будет выдавать по несколько команд: остановить воспроизведение текущему устройству, начать играть следующему устройству.
при нажатии конопки листания треков, голова будет выдать команды только если устройство может листать треки (например если активирован видеовход, голова на эти кнопки реагировать не будет).
Почитайте про структуру команд вот здесь
http://www.softservice.com.pl/corolla/avc/avclan.php
На практике я перехватывал только листание треков (но это может дать целых 4 команды - две листание треков и две перемотки) и нажатие 3х кнопок управления штатной навигацией (правда они на голове были)
Вот примеры команд с приведенного сайта
листание треков
const u08 next_track[] = { 0x4, 0x00, 0x25, 0x63, 0x94 };
const u08 prev_track[] = { 0x4, 0x00, 0x25, 0x63, 0x95 };
переключение дисков, тут прошивка адаптера должна сказать, что в эмулируемом ченджере несколько дисков и правильно отрабатывать переключение дисков. На вашей прошивке это не релализовано, насколько я помню)
const u08 next_cd[] = { 0x4, 0x00, 0x25, 0x63, 0x90 };
const u08 prev_cd[] = { 0x4, 0x00, 0x25, 0x63, 0x91 };
перемотка
const u08 fast_forward[]= { 0x4, 0x00, 0x25, 0x63, 0x98 };
const u08 fast_back[] = { 0x4, 0x00, 0x25, 0x63, 0x99 };