summaryrefslogtreecommitdiff
path: root/misc/frm_update_process.tex
diff options
context:
space:
mode:
Diffstat (limited to 'misc/frm_update_process.tex')
-rw-r--r--misc/frm_update_process.tex145
1 files changed, 145 insertions, 0 deletions
diff --git a/misc/frm_update_process.tex b/misc/frm_update_process.tex
new file mode 100644
index 0000000..e6250f2
--- /dev/null
+++ b/misc/frm_update_process.tex
@@ -0,0 +1,145 @@
+% ----------------------------
+\section{Process Updates}
+\subsection{swupdate}
+
+% ----------------------------
+\begin{frame}{Overview}
+\begin{center}
+\includegraphics[width=8cm]{images/update_swupdate_overview.png}
+\end{center}
+\end{frame}
+
+% ----------------------------
+\begin{frame}{Features I}
+\begin{itemize}
+\item Open-Source (GPLv2)
+\item Bootloader, OS, FPGA images
+\item Streamable Updates
+\item Multi-Target Updates
+\item Powerfail Safe
+\item Crypto Support
+ \begin{itemize}
+ \item Image signing (Integrity)
+ \item Image encryption (Protection)
+ \end{itemize}
+\item Fully Customizable
+\item Extendable
+\end{itemize}
+\end{frame}
+
+% ----------------------------
+\begin{frame}{Features II}
+\begin{itemize}
+\item build-in Handlers
+ \begin{itemize}
+ \item raw
+ \item File-based
+ \item MTD
+ \item UBI
+ \end{itemize}
+\item build-in Deployment Interfaces
+ \begin{itemize}
+ \item Local Files
+ \item Network (pull)
+ \item Web Interface (push)
+ \item hawkbit Deployment Server (push)
+ \end{itemize}
+\end{itemize}
+\end{frame}
+
+% ----------------------------
+\subsection{Streaming}
+
+% ----------------------------
+\begin{frame}{Update Container}
+\begin{itemize}
+\item Update Container Format:
+ \begin{itemize}
+ \item serialized
+ \item streamable
+ \item 1st Element: Description
+ \item 2nd Element: Description Signature
+ \end{itemize}
+\item Description Elements
+ \begin{itemize}
+ \item Image Format
+ \item Image Size
+ \item Image Hash
+ \item Install Target
+ \item Install Handler
+ \end{itemize}
+\end{itemize}
+\end{frame}
+
+% ----------------------------
+\begin{frame}{Update Container Format}
+\begin{columns}[onlytextwidth]
+ \begin{column}{0.45\textwidth}
+ \begin{itemize}
+ \item File Format: cpio
+ \begin{itemize}
+ \item open file format
+ \item widely used
+ \item indexed
+ \item good tooling support
+ \item supports seek (e.g for Streaming)
+ \end{itemize}
+ \end{itemize}
+ \end{column}
+ \begin{column}{0.45\textwidth}
+ \begin{center}
+ \includegraphics[height=0.7\textheight]{images/update_swupdate_format.png}
+ \end{center}
+ \end{column}
+\end{columns}
+\end{frame}
+
+% ----------------------------
+\subsection{Security}
+
+% ----------------------------
+\begin{frame}{Update Verification}
+\begin{itemize}
+\item Update Signature Verification Enforcement
+\item Signature ensures Integrity of Update Description
+ \begin{itemize}
+ \item Integrity Verification early in Update Process
+ \item hash-based Image and Script Validation
+ \item No Image Download on Integrity failures
+ \end{itemize}
+\end{itemize}
+\end{frame}
+
+% ----------------------------
+\begin{frame}[fragile]
+\frametitle{Signed Update Layout}
+\begin{beamerboxesrounded}[shadow=true]{sw-description}
+\begin{scriptsize}
+\begin{verbatim}
+[...]
+stable =
+{
+ sys_a =
+ {
+ images =
+ (
+ {
+ filename = "rfs.ext3.gz";
+ sha256 = "32df9a4057c858abd2ce64b8bffd2722bd2502d257f221b15295bd9fb85c325b";
+ [...]
+ }
+ );
+ scripts =
+ (
+ {
+ filename = "10_markB.sh";
+ sha256 = "cbe23f93b00fb758690fc09867c9758b74a15d10522bcc5a4a51f881d2dde0a6";
+ type = "postinstall";
+ }
+ );
+ };
+[...]
+\end{verbatim}
+\end{scriptsize}
+\end{beamerboxesrounded}
+\end{frame}