CourseExample

Android Internals

This course builds on the foundation established in the Intro to Android Programming course, diving deeper into the Android operating system.

5-Day Course
OS Internals & Security
Native App Development
Cyber Research
Course Overview
Daily Agenda

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.