Настраиваем Android-магнитолу под себя [Архив] - Форум клуба Chevrolet Cruze

PDA

Просмотр полной версии : Настраиваем Android-магнитолу под себя


Страницы : [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264

Sinka
25.04.2014, 09:38
В этой теме предлагается поиск решений, которые не возможно решить настройками приложений.

Очень прошу - без флуда! Если вам это не надо, то не надо этого нам писать!

В распоряжении у нас голова FAG он же Ca-Fi он же Carit.
На данный момент у меня (на insignia) это выглядит так:
46414457564575745758457594576045761457624576345764 46415
*если хотите повторить см. "использованные приложения" и "разработанные приложения"
Видео (http://www.youtube.com/watch?v=D1PJMmD6YAw)
прошивка с рутом обязательна!


+ Настройка рабочего стола в стиле АМ (Реализуемо средствами ssLauncher)
+ Управление нештатными плеерами с руля (Реализовано посредством установки моего сервиса)
+ Поменять местами кнопки Menu (большая крутилка) и домой (Fav) (Реализовано)
+ Настройка цветовой палитры штатного мультимедиа (Реализовано)
+ Меню выбора предустановленной программы(1-6) радио с руля (Реализовано)
+ Изменение функциональности некоторых кнопок. Сделаю настройки (Не реализуемо для кнопок Home, Back, Menu, Mute/Hang, Vol-/+, Phone) (в частности "назначить кнопку Info на панели для запуска навигационного приложения")
+ Добавление виджета(ов) информации от CAN (Реализуемо, в процессе..., но пока проблемы с автообновлеением)
+ Бортовой компьютер
- Звонок блютуса сделать тише
- USB-хост (монтирование флешек на лету) (Не знаю как)


43560
думаю понятно, что это маленькая часть того что там накручено:)

для примера расскажу как это работает на примере изменение настроек климата.
1. АМ по CAN-шине шлет сигнал о том что кто то покрутил ручку климата
2. CANBOX ловит этот сигнал. (Возможно*) запрашивает данные по CAN о текущем состоянии климата.
3. CANBOX отправляет текущие данные о состоянии климата по I/O на dev\libCanbox.so
4. libCanbox.so сохраняет в памяти настройки климата и вызывает прошитый метод airCallback
5. canbox.java (который и инициализирует libCanbox.so) получает airCallback и переправляет его в пробитую локальную переменную, инициализированную caritService.java
6. caritService.java проверяет кое какие параметры и отправляет post сообщение AirConditionPanel.
7. AirConditionPanel читает посредством последовательных команд SendCanboxCommand() параметры климата из памяти libCanbox.so
8. Отображает окно подсказки с визуальным отображением климата.


Это основной пакет, который содержит практически все, что делает простой андроид машинопригодным. Общается с другими приложениями посредством сервисов. Общается с внешней коробочкой CanBox посредством библиотеки libCanbox.so (которая в свою очередь через stream "dev\canbox")

- Мне удалось подключится к основному сервису CaritApplication и отправлять команды через нее в Canbox. Таким образом я смог прочитать настройки климата и температуру
- Мне удалось добавить свой сервис в CaritApplicaiton, который перехватывает нажатия кнопок (в том числе и климата), посылает broadcast сообщение о нажатии кнопок и умеет эмулировать нажатие кнопок.
- Мне удалось запустить сервис, который будет эмулировать управление с руля как с гарнитуры
- Мне удалось поменять местами кнопки Home и Menu Подробнее... (http://www.chevrolet-cruze-club.ru/forum/showpost.php?p=856106&postcount=64)
- Мне удалось удалить штатный плеер

- Не удается заставить Canbox обновить данные климата (возможно есть какая-то команда). Данные климата он обновляет только после изменения настроек климата вручную.
- Не удается смонтировать USB флешку без перезапуска магнитолы
- не удалось перехватить нажатие кнопки руля "Положить трубку"
- не удалось влезть в управление яркостью камеры ЗадВид (дневной/ночной режимы)
- не удалось влезть в управление гарнитурой для изменения громкости входящего звонка


- ssLauncher (http://4pda.ru/forum/index.php?showtopic=304271) - имеет достаточно богатые возможности для реализации целей, а так же очень быстро работает
Моя тема - http://yadi.sk/d/qiM08eytQmur2
Мой задничек - http://yadi.sk/d/gKLn3lXwQmurk
- PowerAmp (http://4pda.ru/forum/index.php?showtopic=194117) - хороший плеер, умеет перелистывать папки/ Альтернатива - MortPlayer
- Torque Pro (http://4pda.ru/forum/index.php?showtopic=193433) - хорошая утилита для связи с OBD II (нужен дополнительный адаптер). имеет внешний API

- Brightness (http://www.chevrolet-cruze-club.ru/forum/showpost.php?p=864492&postcount=471) - Изменение яркости дисплея
- Reboot (http://www.chevrolet-cruze-club.ru/forum/showpost.php?p=864492&postcount=471) - софт ресет магнитолы
- Trip widget (http://www.chevrolet-cruze-club.ru/forum/showpost.php?p=885111&postcount=1400) - Виджет бортового компьютера по идеологии Opel Astra H.



Финальная сборка для Android 2.2
CaritApplication V13
>>> Синяя (https://yadi.sk/d/BhpocfTAUwAzK)
>>> Красная (https://yadi.sk/d/YsScjO3aUwB3V)
Дополнительный сервис V5e
>>> Синяя (https://yadi.sk/d/7jpWt3WRUny3c)
>>> Красная (https://yadi.sk/d/LymQmNIMUny4F)
- Brightness (http://www.chevrolet-cruze-club.ru/forum/showpost.php?p=864492&postcount=471) - Изменение яркости дисплея
- Reboot (http://www.chevrolet-cruze-club.ru/forum/showpost.php?p=864492&postcount=471) - софт ресет магнитолы

Финальная сборка для Android 2.3
+ Собрано без использования дополнительных сервисов, что повышает устойчивость и скорость дополнений.
+ ещё пара плюшек.
Прошивочки от PRC c Pro V1:
>>> Синяя (https://yadi.sk/d/iuksrebaUMqH9)
>>> Бирюзовая (https://yadi.sk/d/yXmPK4zfUMqHP)
>>> Красная (https://yadi.sk/d/FsmcufT3UMqHK)
*Перед установкой рекомендуется прошиться оригинальной прошивкой 02.03.07 (https://yadi.sk/d/QhaqG75NiVxiC)

Прошивочки от Andi84 02.03.13 + Pro V2:
>>> Синяя (https://yadi.sk/d/oeAVQgNLazWDd)
>>> Красная (https://yadi.sk/d/ZQbf-bX8azbAy)
*Перед установкой рекомендуется прошиться оригинальной прошивкой 02.03.07 (https://yadi.sk/d/QhaqG75NiVxiC)

Прошивочки от Andi84 02.03.11 + Pro V3 (с исправленной температурой):
>>> Синяя (https://yadi.sk/d/UY1j-RfEd3FJe)
>>> Красная (https://yadi.sk/d/-Zwo3Ys0csvqu)
*Перед установкой рекомендуется прошиться оригинальной прошивкой 02.03.07 (https://yadi.sk/d/QhaqG75NiVxiC)

Прошивочки от Andi84 02.03.13 + Pro V3 (с исправленной температурой):
>>> Синяя (https://yadi.sk/d/6BHnI9Qfd3GpD)
>>> Красная (https://yadi.sk/d/SRBbU8CXcsvtv)
*Перед установкой рекомендуется прошиться оригинальной прошивкой 02.03.07 (https://yadi.sk/d/QhaqG75NiVxiC)

Старые версии и оригинальные прошивки будут выкладываться в теме Прошивки и софт для FAG5290 (http://www.chevrolet-cruze-club.ru/forum/showthread.php?t=13994).

- Brightness (http://www.chevrolet-cruze-club.ru/forum/showpost.php?p=864492&postcount=471) - Изменение яркости дисплея
- Reboot (http://www.chevrolet-cruze-club.ru/forum/showpost.php?p=864492&postcount=471) - софт ресет магнитолы
+ Управление с руля любыми плеерами поддерживающими гарнитуру
+ Меню климата в стиле GM
+ Меню попогреек в стиле GM
+ Панелька громкости в стиле GM
+ Меню плеера (расширение управление с руля)
+ Меню радио (расширение управление с руля)
+ Перепрограммирование кнопок
+ Меню SRC (до 6 иконок включая DVD(можно выбрать любой видео плеер) и Карты. Фоновое переключение между радио и плеером в режиме навигации или карт. Интеллектуальная сортировка)
+ Прозрачный виджет климата (температура, кондиционер и рециркуляция)
+ Виджет забортной темепратуры
+ 24 формат времени на экране блокировки
+ Прозрачное окно парктроников
+ Автозапуск нафигации (опционально)
+ Возможность задавать цвет виджета температуры
+ Обновляевый виджет забортной температуры (только с OBDII)(у меня не работает, но оставил если у кого заработает)
+ Автовыключение эквалайзера при включении плеера
+ Перемотка песен в плеерах колесиком
+ Яркость с руля
+ Исправление прочих глюков
Debug mode - не трогаем! это для меня!

Эмулировать гарнитуру - при нажатии кнопок << и >>, а так же на колесико на руле, системе будут посылаться BT команды. левая кнопка, правая кнопка. Большинство плееров воспринимает это как пред/след. трек.
Плей/Пауза плеера при длинном тап SRC на руле - эмулирует команду play/pause BT гарнитуры. Большинство плееров это воспринимает. (не работает если включен пункт "Меню плеера при длинном тап SRC на руле")
Пуск плеера через Плей/Пауза, если Плей не поддерживается - Некоторые плеера (к примеру mortPlayer) не реагируют на команду play. Им приходится давать 2 команды Stop а потом Play/Pause. т.е. если у вас при нажатии кнопки DVD плеер не начитает играть, то попробуйте включить эту опцию
След/Пред папки по длительному нажатию вместо двойного - Подстраиваемся под плеер
Меню климата в стиле Opel - полностью заменяет штатное всплывающее окно климатических настроек на мое
Меню подогрев сидений в стиле Opel - полностью заменяет штатное всплывающее окно попогреек на мое
У меня 6 делений скорости пропеллера - Для тех у кого климат с 6-ю скоростями вентилятора
Меню станций радио при длинном тап SRC на руле - ну тут все понятно, долгий тап SRC в радио будет открывать меню, где колесиком можно будет листать станции.
Меню поиска радио - альтернативное меню с кнопками поиска, приэтом кнопки на руле листают сохраненные станции
Меню поиска радио - альтернативное меню с кнопками перехода на станциям
Меню плеера при длинном тап SRC на руле - - работает в mortPlayer - эмулирует долгое нажатие "левой" и "правой" кнопки. В mortPlayer из можно настроить как переход по папкам. (не работает если включен пункт "Плей/Пауза плеера при длинном тап SRC на руле")
Меню SRC - Выбор пунктов меню по длинному нажатию SRC
интеллектуальная сортировка - наиболее частые пункты будут ближе к выбору
Переключать источник в фоне - Если включена навигация из SRC-меню, то переход с радио на плеер и обратно не будет её закрывать
Переназначение кнопок
Поменять местами длинное и короткое нажатие Src - Мне показалось это очень удобным. Т.е. сделать чтоб короткое нажатие открывало меню радио или плеера, а длинное вызывало меню SRC
Добавить - Назначить приложение на кнопку. Важно! Для штатного плеера и штатной навигации выбирайте мои ярлыки Music link и Navi link
Чтобы переназначить кнопку нажмите кнопку добавить, а затем в течении 5 секунд нажмите аппаратную кнопку. Подождите пока откроется окно выбора приложения. Выбирите программу. После этого появится дополнительный пункт меню, сняв галочку с которого вы можете удалить переназначение
Автозапуск - Что возобновлять после перезапуска системы
Иконки в 3х цветах (https://yadi.sk/d/iK4wHdZpV3Sx8)

Всем кто хоть что то понимает в Android/Java/C++/ASM огромная просьба помочь проекту

PRC
25.04.2014, 12:57
Можно будет попробовать дизасемблировать libCanbox.so, но я сомневаюсь что это что-то даст. Он скорее всего является только переходником и сам ничего не спрашивает.

Sinka
25.04.2014, 15:10
Можно будет попробовать дизасемблировать libCanbox.so
уже, оттуда и знаю как он работает. но до конца не могу понять как он получает данные от canbox (по каким событиям). Потом он, видимо, расскладывает данные в переменную типа struct.
могу выложить ASM код.

Sinka добавил 25.04.2014 в 15:29
Вообщем следующи мой шаг будет - попробовать слать commonCallback при нажатии кнопочек и при airCallback.
Для этого нужно будет перекомпилировать caritApplication.apk и подменить его.

Как вариант можно написать свой music.apk в котором оставить только сервис. Этот сервис сможет отлавливать кнопки.

PRC
25.04.2014, 15:38
Sinka, music.apk в любом случае нужен будет - он стоит на запуск по умолчанию мп3 плеера с клавиатур. И в нем уже прописывать новый плеер. Иначе запускать любой плеер через меню/лончер/кнопки не получится.

dimkadn
25.04.2014, 16:08
Тема очень интересная. К сожалению,программирование для анроид у меня не пошло дальше составления заполняемой таблицы на Эклипсе. А так, если кто разбирается, было бы здорово сделать магнитолу полностью "под себя". Если нужно помочь с графикой (3D, 2D и т.п.) обращайтесь, чем могу, как говориться, а вот программирование пока не очень. По идее, можно вывести всю инфу о ситуации с машиной (горят ли фары, поворотники, стопы, стеклоподъемники и т.д. и т.п.) на экран магнитолы. Если я не прав, то поправьте. А это уже получается полностью замена всем диагностическим приблудам. Хотя может я и фантазирую сейчас

PRC
25.04.2014, 16:41
dimkadn, Можно, но нужна информация что ходит по кан шине в магнитоле и как собственно она там выглядит:)

dimkadn
25.04.2014, 16:48
ну да, ну да, много вопросов возникает, логику мы все примерно представляем и как работать должно в идеале вроде тоже, но как реализовать все это? вот это вопрос

Sinka
25.04.2014, 17:33
music.apk в любом случае нужен будет - он стоит на запуск по умолчанию мп3 плеера с клавиатур
имено так, можно сделать чтоб он стартовал нужный медиаплеер
Хотя может я и фантазирую сейчас
К сожалению всей информации о состоянии автомобиля в коробке нет, он её попросту не получает, но многое можно достать. я в шапке привел коды, которые можно отправлять в canbox и можно подогадываться что может эта коробочка.
но как реализовать все это?
Реализовано все так, что фиг подлезешь:) все плотно завязано друг на друга. используются несколько сервисов, broadcast-сообшения и даже просто post сообщения. Видимо, писалось не одним человеком. Библиотеки мертво сшиты с java файлами. Запуск дублера libCanbox.so ни к чему не привел. Даже если были бы на руках исходники, сделать что-то было бы трудно

PRC
25.04.2014, 21:39
Sinka, Я вот еще чего подумал - карит кроме libCanbox еще в свою версию встроил еще файлы libMub*.so. Может там что есть.
Это я смотрел какие файлы есть у карита и нет в образе андроида от фрискайла.

Sinka
26.04.2014, 09:46
mubRadio - управление модулем радива
mubDVD - управление модулем DVD
mubKeyboard (как я понимаю для стандартных 2-дин магнитол) - callback клавиатурки + туда посылаются кое какие команды

Но надо посмотреть какие устройства хватает библиотека mubKeyboard. если там нет canbox то кнопки с руля в нее попросту не придут

Кста, вчера весь вечер лазил по инету искал как пересобирать system приложения. Можете что нибудь посоветовать? Нужно ли подписывать caritApplication.apk?