Android Platform Development Kit

The Open Handset Distribution (OHD) is a software distribution for mobile devices, often referred to as Android, developed by members of the Open Handset Alliance.  Android includes an operating system, middleware, and key applications typically required for a mobile device.

This porting guide describes the steps necessary to port Android to a new mobile device.  Android is designed as a highly-portable, hardware-independent platform based on Linux, and porting the platform to new devices requires little more than porting the Linux kernel and developing the Linux drivers necessary for your device.

The current version of this guide describes bringing Android up to "PDA-level" functionality; functionality sufficient to support non-multimedia apps that run on unconnected mobile devices through the standard user interface devices such as keypad and display.  Future versions of this guide will cover complete telephony, multi-media and peripheral integration to create a complete mobile device.

Intended Audience

This porting guide is intended for engineers proficient with running (and writing drivers for) Linux on embedded devices.

The guide also assumes you have a target hardware that matches Device Requirements and that you can boot and run a recent (2.6.x) version of the Linux kernel with at least keypad and display drivers properly installed.

Getting Started with Android

To get started with Android, start with the publicly-available documentation at, paying particular attention to What is Android? and Getting Started with Android.

Porting Android to Your Device

Start with the following sections in order to port Android to your target hardware.

Device Requirements
What must your device support in order to successfully port Android to it?
Setting up a Development Environment
Install necessary packages and retrieve source code through a Git server. Build System offers a conceptual overview of Android's build system and instructions to affect a simple build.
Basic Bring up
Establish core components necessary to your device, such as keymaps / keyboard input and display drivers.

v0.3 - 9 June 2008