Building a safe and secure embedded world

Embedded Android

Android is becoming a popular choice as an embedded operating system, largely because of its great UI and familiar programming interface. Support for Android is available from a wide range of chip, board and module vendors. This course will show you the internal workings of Android, guide you through selecting suitable hardware platforms and teach you how to customize the platform for your own needs.

What will be covered?

You will learn how to build Android from source and reflash the system images using fastboot. You will find out how to lock-down the UI to create a single-purpose “kiosk mode” application, and how to access external hardware from Android apps, using JNI. You will learn about the Android security framework and how to reduce the chances of the device becoming compromised. There are modules on how SurfaceFlinger renders graphics for various displays, and on the all-important topic of debugging and profiling the final system.

Roughly half of the course is taken by hands-on lab sessions during which you will apply the theory to create an embedded Android device, based on the popular and readily available BeagleBone Black.

Course Outline

Introduction to Android

  • Android architecture: the big picture
  • Getting the source code: the Android Open Source Project (AOSP)
  • Building Android from source
  • Criteria for selecting hardware


  • Application sandboxing
  • Dalvik and ART
  • How to write a single-use kiosk-mode application

The Kernel

  • Linux kernel architecture
  • Android-specific changes to Linux
  • Building Linux from source
  • Understanding device trees

Debugging and profiling

  • Debugging native code
  • Profiling CPU usage using perf
  • Profiling memory usage
  • Profiling power usage

Booting Android

  • Learning how the bootloader starts Android
  • Flashing images using fastboot
  • Customizing init boot scripts
  • Controlling system behaviour using system properties
  • Reducing boot time


  • User and group IDs
  • Android permissions, and how to add your own
  • How SELinux adds an extra layer of protection
  • Security threats and “rooting”

The Android Framework

  • Understanding Android services
  • The role of binder and AIDL in defining interfaces to services
  • Defining your own service
  • Calling native code using JNI
  • The Hardware Abstraction Layer (HAL)

Interfacing with hardware

  • Some different approaches to reaching hardware from apps
  • USB host and accessories
  • Basic interfacing using GPIO
  • Interfacing with serial ports
  • Interfacing using i2c and SPI peripherals


  • How SurfaceFlinger orchestrates image rendering
  • Internal and external displays
  • Streaming multi-media

Integrating non-Android code

  • Problems with integrating non-Android code
  • Using a chroot jail
  • Using Unix sockets to link into the framework and apps

Who should attend?

This course is ideal for system architects, engineers and project leaders who want to know how Android works, and how to customize and extend the platform.


  • Good knowledge of C/C++ and Java
  • Familiarity with Linux development and commandline tools

Laptop specifications

Students are required to provide their own laptop to the following specifications:

Part of the course is to compile Android from source, which means that we need fairly powerful machines. The minimum specification is:

  • Quad core Intel i5 or better
  • At least 16 GiB RAM
  • 3 free USB ports: BeagleBone USB, BeagleBone serial port; USB hard drive. The latter should be USB 3.0

BIOS configuration

It must be possible to boot the student's laptop from an external USB drive. In other words, it must be possible to enter the BIOS set-up and change the boot order. Some machines have a password protected BIOS and will require special permission to make changes. Please make sure that you have the information necessary to achieve this.

When, where and how much?

6th - 9th March 2018
11th - 14th September 2018

Each course runs for 4 days, subject to a class minimum size of 3 attendees. Should these numbers not be met, then students will be offered the next available alternative date.

The workshop costs £2100pp for the 4 days including lunch and all refreshments.

All students will also receive a printed copy of the presentations and lab notes, worked solutions to the problems and plus electronic copies of the course materials.

Travel information and directions download.

Unless otherwise stated, the course is held at our UK offices:

Hitex UK Office
Millburn Hill Road
University of Warwick Science Park

Search form Contact Onlineshop