• No products in the cart.





Course Duration

Unlimited Duration


June 10, 2022

The Android Internals course trains you 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.
Profile Photo
Ernesto Lee
4.67 4.666666666666667




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.

In this Android Internals course, you will be able to:

  • Build and run Android Cuttlefish VM, a configurable virtual Android device representing the current state of the AOSP development
  • vnc to cuttlefish VM in the cloud
  • Build and update the Android kernel; understand what is the Generic Kernel Image (GKI)
  • Navigate the Android source code and correlate running processes to their original source code
  • Open intermediate files to understand data marshalling for binder transaction
  • Use intermediate files for method signature lookup
  • Understand Android blueprint files
  • Understand dynamic partitions - super.img
  • Understand the purpose of the Generic System Image (GSI) and system_ext image
  • Understand & customize Android, Linux and SELinux security policy & enforcements
  • Understand how to create an OTA and what is A/B Updates
  • Understand binder architecture - binder, hwbinder, vndbinder and their corresponding service managers
  • Understand boot - init, zygote, system_server
  • Use debug tools, dumpsys, strace, gdb, line2addr
  • Use reverse engineers tools: dex2jar, jd-gui
  • Create a vendor HIDL Service, a native daemon  (introduced in Android 8, still in-use)
  • Create a vendor HIDL Native client
  • Create a vendor Java SDK Library (introduced in Android 10)
  • Create a persistent app with control UI
  • Create a vendor HIDL Java client
  • Upgrade an HIDL to AIDL (hidl2aidl) (introduced in Android 11)
  • Create a vendor AIDL service
  • Create a vendor AIDL Java client
    • 1. What is AOSP Unlimited
    • 1.1 Lab Pre-Requisites Unlimited
    • 1.2 Virtual Machine / Linux Unlimited
    • 1.3 Customize Virtual Machine Unlimited
    • 1.4 Install Linux Binaries Unlimited
    • 1.5 Install the Repo Launch Tool Unlimited
    • 1.6 Pull Android 12 Unlimited
    • 1.7 Devices Unlimited
    • 1.8 Cuttlefish Unlimited
    • 1.9 Hmm Unlimited
    • 1.10 Cuttlefish Build (6 hours) Unlimited
    • 1.11 Cuttlefish Build Output Unlimited
    • 1.12 Setup Cuttlefish with acloud Unlimited
    • 1.13 Boot Cuttlefish with acloud Unlimited
    • 1.14 Boot Cuttlefish without acloud Unlimited
    • 1.15 Developer Options Unlimited
    • 1.16 Tips and Troubleshooting Unlimited
    • 2. Authorizing a real device for an adb connection Unlimited
    • 2.1 UIDs and Discretionary Access Control Unlimited
    • 2.3 SELinux Unlimited
    • Private Application Files and Process Status Unlimited
    • Lab Unlimited
    • 3. Android Make Build System Unlimited
    • 3.2 Product.mk and COMMON_LUNCH_CHOICES Unlimited
    • 3.3 Product Makefiles and Inheritance Unlimited
    • 3.4 Generic System Image Unlimited
    • 3.5 Android Partitions Unlimited
    • 3.6 Dynamic Partitions, “super.img”, A/B System Updates and “fastbootd” Unlimited
    • Build and Replace Cuttlefish, GKI & Kernel Objects Unlimited
    • HIDL Interface Unlimited
    • Android Makefile in Cuttlefish Unlimited
    • Extending ICpu Unlimited
    • HAL Implementation Unlimited
    • HAL Implementation Wrapper Unlimited
    • Service executable cc_binary Unlimited
    • Vendor Interface (VINTF) Object Unlimited
    • Init Daemon Unlimited
    • Device framework compatibility matrix file Unlimited
    • dmesg & sepolicy Unlimited
    • hal_cpu_default.te & avc denied Unlimited
    • audit2allow AND property_contexts Unlimited
    • hwbinder_use macro Unlimited
    • hal_cpu_hwservice & add_hwservice macro Unlimited
    • CpuTester Unlimited
    • Enable Access Permissions to the kernel driver (DAC) Unlimited
    • Enable Access Permission to the kernel driver (MAC) Unlimited
    • Thin Native HIDL Client Unlimited
    • JNI_OnLoad Unlimited
    • cc_library_shared Unlimited
    • Java Wrapper for Native Calls Unlimited
    • Java sdk library Unlimited
    • The Application Class Unlimited
    • Receiving set Scaling Governor Broadcast Unlimited
    • Persistent Android App Unlimited
    • Strings Resources File Unlimited
    • Android app Unlimited
    • SE Linux Unlimited
    • Test the App Unlimited
    • Cpu Control Layout Unlimited
    • Cpu Control Activity Unlimited
    • Adding Cpu Activity Unlimited
    • HIDL Vibrator on AOSP Unlimited
    • Adding HIDL Java Libs Unlimited
    • Adding New TextViews Unlimited
    • Instantiating a Java HIDL Proxy Unlimited
    • Adding Java HIDL Proxy Calls Unlimited
    • Moving the App from the Vendor to the System_ext Partition (SSI) Unlimited
    • dex2jar & jdgui Unlimited
    • AIDL for HAL Unlimited
    • Service Holder Template Unlimited
    • Cpu service Unlimited
    • Running the Service as a Native Daemon Unlimited
    • Defining a New vintf AIDL Object Unlimited
    • Adding the AIDL Service Unlimited
    • Cpu service: SELinux Unlimited
    • Extending BnCpu (binder native) Unlimited
    • Service Implementation Unlimited
    • Adding the Service to the vndservicemanager Unlimited
    • Adding the AIDL Jar Unlimited
    • Adding a New AIDL Java Proxy to the Application Unlimited
    • Adding the AIDL Call in our UI Unlimited
    • Adding SE Linux Rules Unlimited
    • Forcing a Crash Unlimited
    • Debugging Unlimited
    • Debugging Native Code with GDB Unlimited
    • dumpsys Support for Vendor Service Unlimited
    • Tracing System Calls with strace Unlimited
    • Drozer install script Unlimited
    • Drozer – available modules Unlimited
    • None-rooted device Unlimited
    • Install apktool Unlimited
    • Decode an APK Unlimited
    • Service list Unlimited
    • dumpsys Surface Flinger Unlimited
    • dumpsys activity Unlimited
    • Power Management Unlimited
    • Resources Unlimited
    • Build Tricks Unlimited
    • Summary Exercises (Courtesy of Opersys and LearningVoyage) Unlimited

Popular Courses

Managed by Ernesto.net © 2021. All rights reserved.