Android Internals
This course builds on the foundation established in the Intro to Android Programming course, diving deeper into the Android operating system.Course Description
This course dives deeper into the Android operating system to explore concepts such as the internals of APKs, the Package Manager, the Activity Manager, Zygote, Android Services, RILD, HAL, and WiFi. Students who take this course will learn advanced architectural concepts of the Android operating system as well as develop native applications that interface with many different components of an Android device. Students will also learn how to analyze and reverse engineer APKs.
Prerequisites
• Must have taken our Intro to Android Programming course or have sufficient experience in Android development.
What You Will Learn
Daily Agenda
Day 1: APKs and Core Managers
Decompiling and reverse engineering APKs, understanding their structure, format, and signing process. A deep dive into Package Manager and Activity Manager internals.
Day 2: Process Creation and System Services
Exploring Zygote internals, Android Service architecture, manually spawning APKs, tracing system server requests, and bypassing permission checks.
Day 3: The Boot Process and Security Model
A detailed look at boot internals, including unpacking/repacking the boot image and init internals. Also covers the Android security model in depth, including SELinux.
Day 4: Hardware Abstraction Layer (HAL)
Learn about RILD internals and filtering, HAL internals, WiFi internals, and apply knowledge by creating a custom HAL module for direct WiFi access.
Day 5: In-depth Practical & Final Exam
Apply all concepts from the week in a comprehensive practical exercise, followed by the final exam for certification.