GENIVI Android Auto PoC - v1.1
GENIVI Android Auto PoC - v1.1
Architect
October 21 Harman
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
21- Oct-15 This work is licensed under a Creative Commons Attribution-Share Alike 4.0 (CC BY-SA 4.0)
Purpose of this PoC
The purpose of this project was to integrate the Android Auto Projection
(aka AAP or AA) stack into the GENIVI development platform (GDP).
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Why Projection?
• Projection is secure.
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Android Auto
Android Auto is an app that integrates with your car to make it easier for you to use
some of the main features of your Android phone while driving. You can control
things like navigation, music, and your phone's dialer from your car's digital display
so you can stay focused on the road.
Use of Android Auto requires licensing agreement with Google. Please work with
your Google Technical Area Manager (TAM) to secure appropriate licensing
agreement.
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Hardware setup
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
System breakdown
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Data flow
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Internal architecture
USB server – connects to AA phone over
AOAP protocol (on top of USB),
exchanges the raw data with Sink layer
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Implementation: usb-server
• Responsible for initializing USB connection
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Implementation: sink
• Responsible for starting up audio sinks for:
- Navigation
- Music
- System audio
• Starts up audio source for microphone
• Starts up video sink, which displays video data from the phone (the
phone's “display”)
• Starts up input sources:
- Touchscreen input (rotary controller, d-pad etc.)
• Starts up Bluetooth endpoint
• Communicates with the usb-server using pipes
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Implementation: media-server
• Qt/QML app, theoretically enabling addition of UI elements/overlays
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Implementation: Audio Focus Mgr.
• Was created for testing but this should be a system service
• Responsible for keeping track of the app currently holding audio focus
• Informs apps on loss/gain of audio focus
• Supports different kinds of audio focus, such as:
- Transient focus (focus will be held for a short amount of time)
- Media focus (potentially held for a longer amount of time)
- Focus which may be ducked (other apps may cause us to lower
our volume)
• Each application has a different priority level and type, used for
prioritization
• Could potentially be used as a controller plug-in for Audio Manager
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Implementation: Video Focus Mgr.
• Was created for testing but this should be a system service
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Implementation: BlueZ pairing agent
• Was created for testing but this should be a system service
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Implementation: Licensing
• Components developed during this project:
- Open source, most likely under the MPL v.2
• Instructions for combining the two will be available, and “dropping” the
closed component in to the open source code will be made as easy
as possible
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Implementation: Next steps
• Proper integration in to the GDP
- Currently, we use a new layer (meta-genivi-aa-demo), extending
meta-genivi-demo
- We use a custom image (meta-genivi-aa-platform), which extends
meta-genivi-demo
- Most (all?) things already compatible with the GDP, as it was used
as a base
- Integration is mostly a question of maintaining uniformity within
the GDP
• Discussions will follow with GDP maintainers
• Possibly, the layer will be converted in to a package group
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Testing
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Code publishing
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Design Challenges
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1
Questions?
GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
Oct 21, 2015 Copyright © GENIVI Alliance 2015
1