\subchapter{System Customization}{Learn how to build a customized Android}

After this lab, you will be able to:
\begin{itemize}
  \item Use the product configuration system
  \item Change the default wallpaper
  \item Add extra properties to the system
  \item Use the product overlays
\end{itemize}

\section{Set up a new product}

From now on, we're going to use a product of our own, so that we don't
have to modify the pre-existing \code{beagleboneblack} product to suit
our needs. In order to do so, define a new product named
\textit{training}. This product will have all the attributes of the
\code{beagleboneblack} product for now, plus the extra packages we
will add along the labs.

Remember that you need to use \code{make installclean} when switching
from one product to another.

The system should compile and boot flawlessly on the BeagleBone, with
all the corrections we made earlier.

\section{Change the default wallpaper}

First, set up an empty overlay in your product directory.

The default wallpaper is located in \code{frameworks/base/core/res/res/drawable-nodpi/}.
Use the overlay mechanism to replace the wallpaper by a custom one without
modifying the original source code. Be careful, the beagleboneblack
product already have an overlay and is selecting a live wallpaper. To
be able to use \code{default_wallpaper.jpg}, you have to select the
\code{ImageWallpaper} component, have a look at
\code{frameworks/base/core/res/res/values/config.xml}.  Also, be sure
to wipe your \code{/data} partition to fall back to the
default wallpaper.
