Запуск любых программ через Android Auto. Andrei's Blog (Блог Андрея Крутько)
Авто, Mitsubishi Pajero Sport 3, Гаджеты
by andrei@krutsko.com

Не так давно у себя на канале я опубликовал ролик, где показывал в движении на скорости 120км/ч нагрузку на мотор, тепловой режим двигателя, и прочие параметры в движении.


https://youtu.be/wGJGMb5kXGw


Сделано это было при помощи одной из популярных программ Torque Pro, доступной для всех современных мобильных платформ.

В ролике было видно, что делается это и демонстрируется картинка с экрана головного устройства (ГУ) самого автомобиля.
Аналогично ранее я записывал похожий ролик, где демонстрировал как работает топливная система автомобиля зимой: как идет нагрев и прогрев дизельного топлива чтобы не допускать его парафинизации.
Также я для себя вывожу информацию о давлении в колёсах и прочую полезную информацию в движении.




Разумеется, каждый раз после подобных демонстраций возникает ряд вопросов “а как это сделать”.




Абисняю 😊


Начать конечно надо с того, что само по себе головное мультимедийное устройство автомобиля (ГУ) не умеет ничего подобного. Для сбора информации для отображения информации, и тем более для запуска сторонних программ нужна для начала некая платформа с операционной системой, исполняемая среда, интерпретатор. Стандартное ГУ большинства автомобилей такого не умеет.




Какие есть тут варианты?

1. Большинство ГУ умеют выводить картинку с внешнего устройства по HDMI. В машине имеется соотв. разъем, к которому можно подключить что угодно и просто использовать как монитор. Решение надо сказать уже давно известное и на сегодняшний день признано устаревшим. Но, так действительно можно подключить что либо! - хоть телефон, хоть медиаплейер, хоть ноутбук и выводить картинку. Громоздко, сложно и главное трудоемко из раза в раз проделывать столько манипуляций.
2. Пойти по радикальному пути и демонтировать родную систему, поставить стороннее ГУ, как правило китайского производства, которые изначально базируются на андроиде. Метод рабочий. Так вы получите “открытую” систему, куда можно ставить любой андроид-софт с плэймаркета или вручную. Но есть ряд минусов – как правило такие ГУ работают не стабильно, теряют связь с блоками, перезапускаются, зависают. Не всем это по душе.
3. Вариант использовать Android Auto или Apple Car Play. Для некоторых более современных автомобилей есть возможность подключать ваш телефон даже без проводов. К сожалению, на моем авто придется тыркаться с кабелем, но это все же проще чем шарить картинку по HDMI.

Как вы уже поняли, я использую именно вариант #3. Но тут же большинство из вас воскликнет – “как же так, я тоже пользую Android Auto / Apple Car Play, но у меня там не получается запустить вообще почти ничего кроме стандартных гугло карт карт и звонилки”. Все верно и, на самом деле, список доступного и адаптированного ПО для запуска через Android Auto и вывод картинки на ГУ крайне ограничен. Да! у вас есть полторы программы.



Как же у меня получается так легко запускать сторонние программы картографии, софт автодиагностики: NMPS Diag или Torque Pro? Давайте разбираться.

Для начала, надо пояснить как вообще телефон понимает и работает с вашим ГУ. Что лежит в основе “Android Auto”.

Можно долго и глубоко углубиться в технологии передачи мультимедийного сигнала, загрузить вас всеми тонкостями Android Platform API. Но буду проще! – в глубине Android Auto лежит самый что ни на есть простой механизм, придуманный еще лет 10 назад, примерно в 12м году, под названием Miracast. Это технология, которая фактически позволяет передавать и выводить мультимедийный сигнал на дополнительные устройства по сети, без соединения специальными видеокабелями. Изначально это задумывалось просто как дублирование экрана вашего мобильного телефона на телевизоре или планшете. Но технологию быстро адаптировали к автомобилям и точно также решили, что можно выводить информацию на экраны ваших ГУ, которые по сути мало отличаются от примитивных планшетов.

Фактически, подключение Android Auto для самого телефона означает, что к нему просто подключили второй экран. Внутри ГУ есть небольшая часть программы, ответная часть, которая умеет принимать такой сигнал от телефона и выводить его на экранчик. А в телефоне основная часть Android Auto занимается тем что решает на какой из экранов, собственный встроенный или дополнительный, выводить информацию.
Сразу же возникает вопрос – “а почему же когда я подключаю телефон я не вижу сразу копию экрана телефона на ГУ”. Ну, на самом деле, на первых самых экспериментальных версиях так и было. Но в итоге решили не делать так примитивно. Основная причина в том, что разрешение экрана вашего ГУ очень низкое, а разрешение экрана телефона наоборот очень высокое. Более того, соотношение сторон и также ориентирование (горизонтальное или вертикальное) все это сильно отличается. И если просто “в лоб” отзеркалить картинку – получается очень плохо.

Поэтому, при разработке Android Auto было принято решение не дублировать экраны. Для начала решили, что программы надо “адаптировать” для экранов ГУ и сделать так, чтобы это не пугало пользователей и было удобным. Элементы управления на ГУ должны быть больше, шрифты крупнее, и вообще подход к компоновке информации совсем другим. Благое начинание, но оно привело к тому что 90% программ просто не попали в список разрешенных. Есть там и доля небольшой финансовой жадности и прочих теорий заговора, но главное – гугл решил не заниматься тем “как любую программу вывести на ГУ”, а переложил обязанности по адаптации на плечи каждого из разработчика конкретной программы.

Но! И тут мы, наконец, подходим к самому главному. Быстро появились энтузиасты, которые четко понимали что Miracast это вообще-то не про адаптацию программ, в идее этого метода лежит “вывод любой картинки куда угодно”. И, как только гугл начал закручивать гайки, туже параллельно началось underground движение - как это все обходить и полной мере все же пользоваться всеми возможностями Miracast. Софт подобный Mirrorlink, CarStream, AA Mirror и им подобный появлялся как грибы после дождя. Программы делали главное и то с чего все начиналось – они возвращали методику к истокам и позволяли выводить на ГУ копию экрана телефона. Надо ли говорить, что запустив программу на телефоне вы тоже самое видели и на ГУ. Без присосок, держателей, с работающим тачпадом и так далее.

Гугл бы не был гуглом, если бы мгновенно не запретил подобную самодеятельность. Таким программам просто на уровне телефона ограничили доступ к нужным функциям и запретили их активацию при подключении к ГУ.




Теперь самое главное.
Что мы имеем сейчас и как этим пользоваться.

На момент написания статьи ситуация следующая:

1. Дублировать экран телефона и запускать любую программу на телефоне с отображением этой программы на экране ГУ – МОЖНО! Актуальная и развивающаяся программа на сегодняшний день - Screen2Auto (https://inceptive.ru/blog/20/screen2auto-dublirovanie-ekrana-smartfona-v-android-auto-na-gu) это продолжение AA Mirror (которая уже давно заброшена и больше не поддерживается)
2. Мало поставить на телефон программу Screen2Auto, надо еще обмануть андроид и сделать так чтобы Android Auto “принял” эту программу и разрешил ей запуск и отображение информации на ГУ (разрешил выводить видеокартинку на сторонний экран ГУ)
3. Надо провести ряд настоек самой Screen2Auto, ибо проблема разного разрешения экрана телефона и ГУ никуда не исчезла и программа Screen2Auto отчасти тем и занимается, что подгояет все это таким образом, чтобы этим можно было пользоваться.


Про то как скачать себе Screen2Auto я расписывать не буду.
А вот с то, как это скормить телефону и Android Auto, надо все же сказать подробнее.

В самой Screen2Auto в разделе "Other SettingAA Unlock" есть возможность “патчить” Android Auto на лету, используя скрипт AA Phenotype Patcher (https://github.com/Eselter/AA-Phenotype-Patcher) но! Для этого скрипта требуется root доступ, что есть не у каждого. Способ самый простой, но тем не менее годится только для тех у кого есть root.



Но есть и второй способ – через "подделку названия пакета”, он описан вот тут https://inceptive.ru/blog/50/ustanovka-programm-android-auto-na-telefony-bez-rut.
Методика уже проще, требует лишь включить в телефоне меню для разработчиков и включение отладки по USB в этом разделе для разработчиков. Далее, при помощи вашего компьютера, кабеля и софта adb и при помощи трех незатейливый команд можно поставить на телефон Screen2Auto так, чтобы Android Auto эту программу признал и все ей разрешил.

adb push ver3.3.apk /data/local/tmp/app.apk
adb shell pm install -i "com.android.vending" -r /data/local/tmp/app.apk
adb shell rm /data/local/tmp/app.apk

Надо отметить, что для совсем “ленивых” даже появились программы которые это делают за вас, например Android Auto Apps Downloader. Можете пробовать, но как по мне, метод через adb куда более надежен.

После чего, перезапускаем телефон и проверяем появилась ли s2a в списке доступных программ в настройках Android Auto, в разделе "SettingsCustomize launcher" (просто с телефона, пока ещё не подключая его к ГУ). Не забудьте поставить галочку и передвинуть выше :)


Итог:
Вы видите в меню доступных программ на ГУ Screen2Auto, запускаете ее, а там уже получаете экран вашего телефона и дальше делаете что хотите, список программ у вас будет неограничен. Хотите диагностику авто через Car Scanner или Torque Pro, а хотите ютубчик, мультики, или сериал через VLC, без глупых сообщений что якобы “нельзя видео в движении”.









Sunday, September 19, 2021, 16:50


1999-2024 © krt