The Android Internals course trains the student on the internals of the latest Android OS. Android Internals focuses on the common Android architecture, vendor modules and hardware abstractions using HIDL and AIDL for HAL.
To take this course, you should have a firm understanding of either Java, C++ or both. You should be able to answer most of the following questions:
- What is the difference between a class and an object?
- What is the difference between static and non-static field?
- What is a header file?
- Be able to read and understand Linux shell scripts and be familiar with basic Linux terminal commands
- Familiar with following commands: ls, ps, cp, mv, pwd, cat, chmod, chown, mount, and similar
- Be familiar with users and groups in Linux and r/w/x permissions
5 Days/Lecture & Lab
This Android Internals course is for developers who want to dig deeper than the standard Android SDK. It is for those who want to hack the system a bit in order to add system services and hardware support for non-standard components or port Android to completely new boards.
- Cuttlefish, Android Emulator and a physical device
- Building Android Auto, Android Phone, Android TV
- developer.android.com & source.android.com
- The device folder
- The hmm command
- The Discretionary Access Control (DAC) security in Linux
- The Mandatory Access Control (MAC) - SELinux
- Process Status (ps) and Private Application Files in /data/data
- The Soong Build System
- Generic System Image (GSI)
- Android Dynamic Partitions - super.img
- A/B System Updated and “fastbootd”
- The Android Linux Kernel
- The Generic Kernel Image (GKI)
- binder, vndbinder, hwbinder kernel drivers
- Understanding HIDL Android Modules
- Understanding AIDL for HAL Android Modules
- Vendor Interface Object (VINTF)
- Booting Android - the init process and .rc files
- Java Native Interface (JNI)
- Vendor Java SDK Library
- Dalvik, ART, JIT and AOT
- Signature, normal and dangerous permissions
- Platform certificates and signing
- Activity Lifecycle and intents
- SELinux public policy, macros, avc denials and audit2allow
- The Shared System Image (SSI)
- Android Pony EXpress Files - APEX