Which of the following best describes the Android software stack from bottom to top?
- A.App Framework → ART → HAL → Linux Kernel → Apps
- B.Bootloader → Apps → ART → HAL → Linux Kernel
- C.Linux Kernel → HAL → Android Runtime (ART) + Core Libraries → Application Framework → Applications
- D.Application Framework → HAL → Linux Kernel → ART → Applications
Why C is correct
The canonical Android stack (bottom to top): Linux Kernel (drivers, security) → HAL (hardware interfaces) → Android Runtime / ART + Core Java Libraries → Application Framework (Activity Manager, PackageManager, etc.) → Applications. Understanding this layering is essential for understanding where security controls like SELinux, TEE access, and permission enforcement operate.
Know someone studying for Mobile Security Fundamentals? Send them this one.