HOME > IT & Software > Android 14 Internals customize Cuttlefish in the cloud

Android 14 Internals customize Cuttlefish in the cloud

SynopsisAndroid 14 Internals – customize Cuttlefish in the clou...
Android 14 Internals customize Cuttlefish in the cloud  No.1

Android 14 Internals – customize Cuttlefish in the cloud, available at Free, has an average rating of 4.35, with 49 lectures, based on 14 reviews, and has 284 subscribers.

You will learn about 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 This course is ideal for individuals who are Anyone wanting to understand the Android OS for work, hobby or to gain experience It is particularly useful for Anyone wanting to understand the Android OS for work, hobby or to gain experience.

Enroll now: Android 14 Internals – customize Cuttlefish in the cloud

Summary

Title: Android 14 Internals – customize Cuttlefish in the cloud

Price: Free

Average Rating: 4.35

Number of Lectures: 49

Number of Published Lectures: 49

Number of Curriculum Items: 49

Number of Published Curriculum Objects: 49

Original Price: Free

Quality Status: approved

Status: Live

What You Will 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
  • Who Should Attend

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

  • Anyone wanting to understand the Android OS for work, hobby or to gain experience
  • 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.

    Course Curriculum

    Chapter 1: Set up VMX enabled Ubuntu 20.04 in Google Cloud

    Lecture 1: Create a Google Cloud account with compute engine enabled

    Lecture 2: Install the gcloud CLI and connect to the AOSP project on your Google Cloud

    Lecture 3: Create an Ubuntu 20.04 VM with VMX enabled

    Chapter 2: Download the Android 14 source code, build and run the cuttlefish device

    Lecture 1: Download the android-14.0.0_r21 branch

    Lecture 2: Build and run the Cuttlefish VM

    Chapter 3: Ubuntu Desktop + Android Studio for Platform (ASfP)

    Lecture 1: Convert Ubuntu Server to Ubuntu Desktop

    Lecture 2: Install and configure the Android Studio for Platform

    Chapter 4: Tools – hmm, adb

    Lecture 1: The hmm Command

    Lecture 2: Authorizing Real Device for ADB Connection

    Chapter 5: Security basics

    Lecture 1: User IDs and the Discretionary Access Control

    Lecture 2: Mandatory Access Control – SELinux

    Lecture 3: Process Status (ps) and Private Application Files in /data/data

    Chapter 6: Images and partitions

    Lecture 1: PRODUCT_MAKEFILES and Makefile Inheritance

    Lecture 2: Generic System Image (GSI)

    Lecture 3: Android Partitions

    Lecture 4: Dynamic Partitions, super.img, A/B System Updates and fastbootd

    Chapter 7: Lab 1: AIDL for HAL – creating a CPU HAL Interface Definition

    Lecture 1: About the Main Lab

    Lecture 2: Change the CPU scaling governor via the command line (adb shell)

    Lecture 3: Define an aidl_interface module in Android.bp

    Lecture 4: Define a CPU interface in ICpu.aidl

    Lecture 5: Build the CPU Interface using mm

    Lecture 6: Add the AIDL interface to the Cuttlefish build

    Chapter 8: Lab 2: Creating the service daemon

    Lecture 1: Create an empty service holder in service.cpp

    Lecture 2: Define a new CPU Service executable in Android.bp

    Lecture 3: Define an init.rc persistent service pointing to the CPU service executable

    Lecture 4: Define a Vendor Interface (VINTF) xml object

    Lecture 5: Add the CPU Service to the Cuttlefish build

    Chapter 9: Lab 3: Setting correct SELinux permissions

    Lecture 1: Print the logcat and correctly label the service executable

    Lecture 2: Define new SELinux types and use SELinux macros

    Lecture 3: Use audit2allow to solve avc: denied errors

    Chapter 10: Lab 4: Create and register the CPU service implementation

    Lecture 1: Define the CPU class header file

    Lecture 2: Define the CPU class implementation file

    Lecture 3: Register the CPU service with the Service Manager

    Lecture 4: Define a new CPU service interface SELinux type in the Service Manager

    Chapter 11: Lab 5: Test the CPU service and fix permissions errors

    Lecture 1: Create CpuTester executable

    Lecture 2: Change the Scaling Governor file permissions

    Chapter 12: Lab 6: Create a services system app with a Broadcast Receiver

    Lecture 1: Extend the Application class

    Lecture 2: Create a Broadcast Receiver to handle external requests

    Lecture 3: Defne a persistent Android App in AndroidManifest.xml

    Lecture 4: Create a strings.xml resources file

    Lecture 5: Define an Android App module in Android.bp

    Lecture 6: Set SELinux rules for the system app

    Lecture 7: Test the services app by sending a broadcast

    Chapter 13: Lab 7: Add Activity Control UI to the Platform app

    Lecture 1: Create the resource files

    Lecture 2: Extend the Activity class

    Lecture 3: Add the activity to the AndroidManifest.xml file

    Lecture 4: Test the Activity

    Chapter 14: Lab 8: Debugging Tools

    Lecture 1: Forcing a crash and using llvm-addr2line

    Lecture 2: Debugging native service with lldb

    Instructors

  • Android 14 Internals customize Cuttlefish in the cloud  No.2
    Gil Zhaiek
    Android OS Instructor
  • Rating Distribution

  • 1 stars: 0 votes
  • 2 stars: 1 votes
  • 3 stars: 0 votes
  • 4 stars: 5 votes
  • 5 stars: 8 votes
  • Frequently Asked Questions

    How long do I have access to the course materials?

    You can view and review the lecture materials indefinitely, like an on-demand channel.

    Can I take my courses with me wherever I go?

    Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don’t have an internet connection, some instructors also let their students download course lectures. That’s up to the instructor though, so make sure you get on their good side!