AOSP Embedded and AAOS Training
As part of this training, we dive deep into the functionalities of the AOSP and look at the entire stack, including the Car Services and Vehicle HALs.
					At a glance
General information
- 3-day practical training course
 - Remote or on-premises
 
Target group
- Embedded Linux or Linux system developers
 - Android (system) developers
 - Software tester and integrator with Linux embedded experience
 
Application examples
- AOSP Sourcecode – Download, navigate and build
 - Create new product variants
 - Work with adb, logcat and speed up the development workflow
 - Build System Service, work with AIDL und HAL
 - Create and integrate Android Applications (Apps)
 - Analyse Android Security, permissions und SELinux
 - Work with the AAOS emulator and Vehicle Properties (VHAL)
 
Description
Android is much more than a smartphone operating system. As the core of the Android Open Source Project, it serves as a multifaceted basis for a wide range of applications. AOSP’s key feature is its function as a platform for an open ecosystem
which enables the integration of third-party applications. AOSP already has a mature, comprehensively tested technology stack. It includes everything from connectivity and multimedia right through to highly sophisticated security mechanisms and a protected runtime environment for third-party applications. This means that you can focus on the core aspects of your business model when creating custom developments, instead of on the platform itself. This concept is proving an extremely interesting one, particularly for the automotive industry.
During this training course, we will dive deep into the AOSP functionality and examine the entire stack, including the Car System Service and Vehicle HAL. We will demonstrate how and at which points your own customizations or services can be
integrated, how a custom product variant can be defined, and how you can create your own emulators in order to test your customizations. Through numerous practical examples, inspired by real-life project requirements, this training course provides an
accessible introduction to the complex AOSP system development. Participants will also have plenty of opportunity to exchange information, ask questions, and help to shape the course content.
Prerequisites
- Good knowledge of C and C++
 - Basic knowledge of Java
 - Basic understanding of Linux system internals
 - Sound working knowledge of Linux command line tools and Git
 - Own laptop with Microsoft Windows, MacOS or Linux operating system
 - Wifi or Internet access in the training rooms (if training is not held in the inovex offices)
 
Agenda
Day 1
- Introduction
 - An Overview of the AOSP
- AOSP and Android
 - System Architecture, Apps, Privileged App and System Apps
 - Framework, Runtime, HAL, Kernel, CTS, VTS and Google Mobile Services (GMS)
 - Build files, filesystem layout and partitions
 - AOSP and Android as an ecosystem
 
 - AOSP Build Systems
- build commands and tooling, lunch, lunch targets, build variants
 - core build makefiles, ninja, soong, kati
 - Origins of the Android build system
 
 - A Quick Introduction to AAOS
- Google and Automotive, Android Automotive Operating System (AAOS)
 - Difference between Android Auto, AOSP and AAOS
 - Google Automotive Services (GAS) and alternatives, COVESA
 - AAOS platform benefits, Google dependency
 
 
Day 2
- The Android Framework
- Different types of APIs, public/SDK, @hide, @SystemAPI
 - Android runtime and Activity Lifecycle, Native Development Kit
 - bionic, native services, adb, logcat/logd
 - Binder, AIDL, SystemServer, APIs and Managers
 
 - Android Boot Process
- Booting from SoC/ROM code to the Launcher
 - Verified Boot and Secure Boot, A/B partition layout
 - init system, rc-files and zygote
 
 - The Hardware Abstraction Layer
- HAL, legacy HALs, Project Treble
 - AIDL, HIDL, stableAIDL
 - Generic Kernel Image (GKI) and Vendor Kernel Modules
 - Generic System Image (GSI), SSI
 
 
Day 3
- The Android Automotive OS (AAOS)
- AAOS Architecture, Power States
 - Car Managers, Car Services and Car Permissions, Vehicle Properties
 - Multi User System, Vehicle HAL
 - Vehicle HAL, CarWatchDog, Boot process,
 - Extended View System (EVS)
 
 - Security Mechanisms in Android
- App, Sandboxing, Android Permissions and different types
 - Third-Party, system and privileged Apps and App signing
 - Android Verified Boot (AVB), Secure Boot and Encryption
 - TrustZone and Trusty OS
 - Security Updates
 
 - Integration of new Hardware into the AOSP/AAOS
- Drivers, Products, HAL
 
 - Wrap-Up/Appendix/Questions
 
Typical questions we answer:
- How do you develop your own operating system for your product based on AOSP?
 - What does the development workflow look like?
 - How do you integrate additional hardware components into AOSP and make them available to the application developers using an API?
 - How to use an emulator for development without hardware?
 - How can the AAOS (Android Automotive Operating System) be customized to your own products?
 
- signed certificate of participation
 - experienced trainers
 - small training groups
 
Upcoming trainings
Why inovex Academy?
Our offerThe inovex Academy has set itself the task of passing on knowledge about methods and technologies that we already use successfully in our projects.
Exchange experiences
In our open training courses, we attach great importance to the exchange of experience among like-minded people. Learn from and with other experts.
Curated content
All training content is carefully selected to achieve the best possible learning effect and to convey as much content as possible.
Individual Assistance
Our trainers come from a practical background and have already tested and successfully applied many of the contents taught in their daily work.
Trainers
Our trainers are field-tested experts in their areas of expertise. Through their work in projects, they expand their knowledge day by day and pass on this know-how in their trainings - application-oriented and practice-oriented.
																	Anna-Lena Marx
																	Stefan Lengfeld
Stefan Lengfeld has been an Embedded Linux and Embedded Android developer at inovex since 2017. He is a Linux kernel contributor and has been professionally involved in all topics related to embedded software development since 2015. Even before that, he dived into the depths of Linux and open source. But for the last few years, the Linux and Android graphics stack has been his greatest passion.
																	Stefan Kratochwil
																	Florian Franzmann
																								
																	Florian Münchbach
																	David Zerulla
David Zerulla has been working as a backend and embedded developer for Android and Linux at inovex since 2017. During this time, he has realized a wide range of projects - from the integration of sensor hardware in Android to the development and integration of various services in the AOSP (Android Open Source Project) and the implementation of cloud backends for IoT applications in Go.
																	Matthias Blankertz
Matthias Blankertz has been developing embedded software since 2017, gaining experience with complex Linux systems, real-time operating systems and bare-metal applications, and works as an embedded Linux developer at inovex . His focus is on solving technical challenges, combining his software knowledge with practical hardware-software code design and solid electronics fundamentals to find well thought-out yet efficient solutions.
Frequently Asked Questions
Welche Vorteile bietet das AOSP und was lernen die Teilnehmenden im AOSP Embedded und AAOS Training?
Was ist der Unterschied zwischen AAOS und AOSP?
Wie ist das Training strukturiert und für wen ist es geeignet?
Wer sind die Trainer:innen des Trainings?
Welche Voraussetzungen gibt es für die Teilnahme?
Supplementary information
        Collin Rogowski
Head of inovex Academy