Android 14 Internals – customize Cuttlefish in the cloud
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
-
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!
You may also like
- Best Yoga Instruction Courses to Learn in March 2025
- Best Stress Management Courses to Learn in March 2025
- Best Mindfulness Meditation Courses to Learn in March 2025
- Best Life Coaching Courses to Learn in March 2025
- Best Career Development Courses to Learn in March 2025
- Best Relationship Building Courses to Learn in March 2025
- Best Parenting Skills Courses to Learn in March 2025
- Best Home Improvement Courses to Learn in March 2025
- Best Gardening Courses to Learn in March 2025
- Best Sewing And Knitting Courses to Learn in March 2025
- Best Interior Design Courses to Learn in March 2025
- Best Writing Courses Courses to Learn in March 2025
- Best Storytelling Courses to Learn in March 2025
- Best Creativity Workshops Courses to Learn in March 2025
- Best Resilience Training Courses to Learn in March 2025
- Best Emotional Intelligence Courses to Learn in March 2025
- Best Time Management Courses to Learn in March 2025
- Best Remote Work Strategies Courses to Learn in March 2025
- Best Freelancing Courses to Learn in March 2025
- Best E-commerce Strategies Courses to Learn in March 2025