This document discusses modifying and enhancing the Android OS. It provides an overview of the Android framework, including applications, system UI, providers and APIs, Dalvik/Android runtime, libraries, and the kernel. It describes how to build Android for a phone by getting a build machine ready, downloading the source code, and building the OS. It outlines how to modify different parts of Android like apps, framework, hardware abstraction layer, libraries, and kernel. It also discusses open source custom Android distributions and contributing changes back to the Android Open Source Project.