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
- Bachelor's degree in Computer Science, Computer Engineering, or equivalent experience.
- Must have taken our Intro to Android Programming course or have sufficient experience in Android development.
Program Highlights
OS Internals and Security
Become certified in Android Internals and security topics, including the Android security model, SELinux, and bypassing permission checks.
APK Reverse Engineering
Learn to decompile and reverse engineer APKs, understanding their structure, format, signing process, and manifest files.
Advanced Architecture
Explore advanced concepts like Zygote internals, the boot process, RILD, HAL, and how to create your own custom HAL module.
What You Will Learn
- Reverse engineer and decompile APKs to understand their structure and functionality.
- Explore the internals of core components like the Package Manager, Activity Manager, and Zygote.
- Understand the Android boot process, including unpacking and repacking the boot image.
- Interface with hardware by learning about RILD and WiFi internals and creating a custom HAL module.
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.