\subsection{Various daemons}

\begin{frame}
  \frametitle{Whole Android Stack}
  \begin{center}
    \includegraphics[height=0.85\textheight]{slides/android-native-layer-daemons/android-stack-daemons.pdf}
  \end{center}
\end{frame}

\begin{frame}
  \frametitle{Vold}
  \begin{itemize}
  \item The VOLume Daemon
  \item Just like init does, monitors new device events
  \item While init was only creating device files and taking some
    configured options, \code{vold} actually only cares about storage
    devices
  \item Its roles are to:
    \begin{itemize}
    \item Auto-mount the volumes
    \item Format the partitions on the device
    \end{itemize}
  \item There is no \code{/etc/fstab} in Android, but
    \code{/system/etc/vold.fstab} has a somewhat similar role
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{rild}
  \begin{itemize}
  \item \code{rild} is the Radio Interface Layer Daemon
  \item This daemon drives the telephony stack, both voice and data
    communication
  \item When using the voice mode, talks directly to the baseband, but
    when issuing data transfers, relies on the kernel network stack
  \item It can handle two types of commands:
    \begin{itemize}
    \item \textit{Solicited commands}: commands that originate from
      the user: dial a number, send an SMS, etc.
    \item \textit{Unsolicited commands}: commands that come from the
      baseband: receiving an SMS, a call, signal strength changed, etc.
    \end{itemize}
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Others}
  \begin{itemize}
  \item{netd}
    \begin{itemize}
    \item \code{netd} manages the various network connections: Bluetooth,
      Wifi, USB
    \item Also takes any associated actions: detect new
      connections, set up the tethering, etc.
    \item It really is an equivalent to NetworkManager
    \item On a security perspective, it also allows to isolate
      network-related privileges in a single process
    \end{itemize}
  \item{installd}
    \begin{itemize}
    \item Handles package installation and removal
    \item Also checks package integrity, installs the
      native libraries on the system, etc.
    \end{itemize}
  \end{itemize}
\end{frame}
