Application Framework: Apertis Hands-on 2016-04-28 Robert Bosch Car Multimedia GmbH Collabora Limited
2 Apertis
Apertis Free and open source, GNU/Linux-based platform for infotainment in automotive vehicles End-to-end implementation of an application centric solution for IVI Aiming at providing secure yet flexible environment that satisfy automotive OEM requirements and application developers' needs 3
Apertis GNU/Linux distribution derived from Debian/Ubuntu Product-specific images for ARM and Intel x86 SDK virtual machine with full developer tools Developer portal and App Store for distribution 4
Release early, Release often While staying as stable as possible: Release every 3 months Rebase every 6 months 5
Apertis Managed Applications Apps, e.g. Commercial Music Services Weather Social Networks... E.g. Vehicle Functions Climate (HVAC) Navigation Radio... System User Interface Application Manager Web App Runtime Java App Runtime Prog. framework/abstraction (Qt and others) Native Applications Legend Requirements or purpose description (likely Placeholder Component) Business Logic / Platform Adaptions (optional, dep. on circumstance) Full-featured Interfaces Defined (likely Abstract Component) Shared Implementation (likely Specific Component) Not specified application framework The colors are a close approximation sometimes each box will be broken down into detailed components in a full architecture. overlaps GENIVI boxes 6 Initial Bootloader Generic libraries (libc, etc.) Drivers, BSP, Linux Kernel Low-level system libraries (libusb etc.)
Applications 7 Distinctions between applications Built-in applications: Core applications (required to run) Pre-installed applications (selected by OEM, can not be uninstalled) Applications coming from the application store Native and web applications APIs currently primarily cater to proper C applications Services / Libraries Provide functionalities to others
Application framework for developers Leverage APIs from open source community Focuses on lowest common denominator for improving performance and memory consumption Roadmap items: Adding JavaScript bindings for HTML5 applications is on the roadmap Additional languages bindings (Python, C++, etc.) Additional toolkits support 8
Application development framework App Developers Download SDK Install and Configure Install Develop Tutorials and API reference Develop app Simulator Development target GDB Test Package Package creation Publish on portal SDK HTTPS Image & packages community support Publish Developer Portal Deployment Validation Validation 9 Apertis Maintainers APPSTORE Application security profile creation. Appstore versioning. App upload to store App gesture verification App memory and CPU usage App s UI integrity User privacy verification
Security cgroups provide resource control polkit provides policy decisions for services which talk to multiple applications AppArmor provides mandatory access control (MAC) 10
Architecture D-Bus Compositor systemd (user session) Application manager (Canterbury) User System Application sandbox Application / Agent SDK APIs polkit AppArmor cgroups Application installer & general manager (Ribchester) 11 Linux
Architecture Application sandbox GStreamer Application UI libmildenhall liblightwood Clutter GLib Agent Agent System bus (proxy) Session bus (proxy) connman ofono GeoClue 12
13 Communication with the automotive domain
SDK virtual machine Your virtual machine image Eclipse IDE with plugins Offline documentation Sample code Target simulator Packaging for App Store 14
Application development support On-line resources Populated wiki API documentation Developer portal for app publication Developer forum, mailing lists,... 15
16 Application development support
Application development portal SDK download Latest documentation Upload applications for validation App revenue management Developer forum 17
18 Application development portal
Application validation License compliance Ethical and legal compliance Robustness checks UI/design compliance Version compatibility Security checks Backwards compatibility checks 19
Updates to applications Updated versions can be uploaded through the development portal Updates through full validation as for first upload Deployed to App Store as soon as validation passes 20
21 Apertis
Hands-on session 1) Set up virtual machine in VirtualBox 2) Create your first Apertis application 3) Deploy application to simulator for testing 4) Deploy application to target for testing 5) Upload application to App Store 22
Hands on demo Download SDK from appdev.apertis.org https://appdev.apertis.org 23
24 Apertis
Apertis Thank you 25