Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Android 14 Internals - customize Cuttlefish in the cloud
Rating: 4.5 out of 5(56 ratings)
1,087 students

Android 14 Internals - customize Cuttlefish in the cloud

Build and run Android 14 in the cloud, create system services, solve SELinux errors and debug native crashes.
Created byGuy Levin
Last updated 4/2024
English

What you'll learn

  • Understand Android OS Architecture and control Linux kernel drivers
  • Develop a C++ service and make it persistent with an rc file
  • Build a Kotlin application with system control UI
  • Use AIDL for HAL communication be in line to AOSP design patterns and the CTS
  • Learn how to solve SELinux avc denied errors

Course content

14 sections49 lectures1h 29m total length
  • Create a Google Cloud account with compute engine enabled1:23
    • Set up a Google Cloud Account

    • Create a new project named' AOSP

    • Enable the Compute Engine API

  • Install the gcloud CLI and connect to the AOSP project on your Google Cloud1:43
    • Download and install the gcloud CLI on your machine

    • Create a gcloud configuration named AOSP

    • Connect to your AOSP project on Google Cloud

  • Create an Ubuntu 20.04 VM with VMX enabled7:59
    • Create and configure a VM for building the AOSP

    • Access your VM via SSH

Requirements

  • Software Developer

Description

This comprehensive course is designed to guide participants through the intricacies of setting up a development environment on Ubuntu 20.04 within Google Cloud, diving deep into the Android Open Source Project (AOSP), and mastering the art of Android platform development.
Through a structured series of lectures and labs, learners will embark on a journey that covers a broad spectrum of topics from VM setup and source code compilation to advanced security and debugging techniques.

Section 1 lays the foundational knowledge required to navigate Google Cloud's compute engine, install the gcloud CLI, and create a VMX-enabled Ubuntu VM, ensuring students are well-prepared for Android platform development.

Section 2 progresses to downloading and building the Android 14 source code. Participants will learn how to bring the Cuttlefish device to life, providing a practical environment for testing and development.

In Section 3, the course shifts focus to transforming Ubuntu Server into a Desktop environment and installing ASfP, equipping learners with the tools necessary for Android platform development.

Section 4 introduces essential tools like the 'hmm' command and adb, enhancing the learners’ ability to interact with and control Android devices and environments effectively.

Security basics are demystified in Section 5, where participants explore user IDs, discretionary and mandatory access control, and how Android secures application data and processes, providing a solid understanding of Android's security model.

Section 6 delves into images and partitions of Android, revealing the complexities of system updates, and partition management.

Sections 7 through 14 consist of hands-on labs ranging from creating a CPU HAL interface with AIDL, developing service daemons, setting correct SELinux permissions, to creating and registering the CPU service implementation. Each lab is meticulously designed to reinforce learning, encourage exploration, and develop a thorough understanding of Android platform development.

Moreover, the labs tackles debugging tools and strategies, including forcing crashes and using llvm-addr2line, as well as debugging native services with lldb, preparing students to troubleshoot and optimize Android platform applications and services efficiently.

By the end of this course, participants will have gained not only theoretical knowledge but also practical experience in Android platform development, security models, debugging, and application deployment, enabling them to contribute to the Android ecosystem or undertake custom Android platform projects with confidence.

Who this course is for:

  • Anyone wanting to understand the Android OS for work, hobby or to gain experience