summaryrefslogtreecommitdiffstats
path: root/36c3/Replicant_sustainability/Replicant_sustainability.tex
diff options
context:
space:
mode:
Diffstat (limited to '36c3/Replicant_sustainability/Replicant_sustainability.tex')
-rw-r--r--36c3/Replicant_sustainability/Replicant_sustainability.tex378
1 files changed, 378 insertions, 0 deletions
diff --git a/36c3/Replicant_sustainability/Replicant_sustainability.tex b/36c3/Replicant_sustainability/Replicant_sustainability.tex
new file mode 100644
index 0000000..3f48d13
--- /dev/null
+++ b/36c3/Replicant_sustainability/Replicant_sustainability.tex
@@ -0,0 +1,378 @@
+\documentclass{beamer}
+\usepackage[english]{babel}
+\usepackage{color}
+\usepackage{graphicx}
+\usepackage{ifthen}
+\usepackage[utf8]{inputenc}
+\usepackage{ulem}
+\usepackage{listings}
+\usepackage{pdfpages}
+\usepackage{tikz}
+\usepackage{xtab}
+
+\newcommand{\outputpicture}[2] {
+ {\includegraphics[scale=#1]{output/#2}}
+}
+\newcommand{\devicepicture}[1] {
+ {\includegraphics[scale=0.5]{../../external_resources/replicant_website/images/supported-devices/#1.png}}
+}
+
+%% \usetheme{Singapore}
+
+\title{Extending the lifetime of smartphones with Replicant, a fully free Android distribution}
+\author{Denis 'GNUtoo' Carikli and David 'dllud' Ludovino}
+\date{\today}
+
+\begin{document}
+
+\maketitle
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Introduction}
+
+\begin{frame}
+ \center{Introduction}
+\end{frame}
+
+\begin{frame}
+ \center{Replicant:}
+ \begin{itemize}
+ \item Fully free Android distribution approved by the FSF
+ \item But the hardware it runs on is not...
+ \item More details on hardware related freedom issues later %% TODO
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \center{Quick Facts}
+ \begin{itemize}
+ \item Website: replicant.us
+ \item Exists since September 2009
+ \item Currently based on LineageOS
+ \item Android versions:
+ \begin{itemize}
+ \item Replicant 6: Android 6, last security update: October 2017\cite{last-android-6-update}
+ \item Replicant 9: Android 9, work in progress\cite{porting-to-android-9}
+ \end{itemize}
+ \item Supports $\sim$ 10 devices (smartphones and tablets)
+ \item $\sim$ 2 full time equivalent contributors and a big community
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \center{Minimum feature set required to support a device:}
+ \begin{itemize}
+ \item Display working and graphics fast enough
+ \item sound working
+ \item Be able to make calls
+ \item etc
+ \item GPS, Camera, and other non crucial hardware may not work, or work in later releases
+ \end{itemize}
+\end{frame}
+
+{
+ \begin{frame}
+ \center{A very short introduction on hardware:}
+ \outputpicture{0.8}{i9300_hardware.png}
+ \begin{itemize}
+ \item System on a chip
+ \item Smartphones and the modem
+ \end{itemize}
+ \end{frame}
+}
+
+{
+ \begin{frame}
+ \center{Freedom issues in supported devices}
+ \outputpicture{0.8}{i9300_hardware.png}
+ \begin{itemize}
+ \item The cellular network
+ \item The modem firmware
+ \item Other nonfree fimrwares
+ \item Bootloaders and TrustZone
+ \item Upstream anti-feature and huge code base
+ \end{itemize}
+ \end{frame}
+}
+
+{
+ \begin{frame}
+ \center{Freedom issues in LineageOS (without google play)}
+ \outputpicture{0.8}{i9300_hardware.png}
+ \begin{itemize}
+ \item + Modem control over the device (MSM7K) or shared memory
+ \item + Nonfree libraries (ril backdoor, etc)
+ \item + Anti-features
+ \end{itemize}
+ \end{frame}
+}
+
+{
+ \begin{frame}
+ \center{Worst case with stock devices:}
+ \begin{itemize}
+ \item + Only the kernel is free software
+ \item + Users potentially locked out of their devices
+ \item + Many Anti-features or unwanted applications
+ \item $\rightarrow$ Remining freedoms: The ability to install F-Droid or other applications
+ \end{itemize}
+ \end{frame}
+}
+
+\begin{frame}
+ \center{Why Android?}
+ \begin{itemize}
+ \item Advantages:
+ \begin{itemize}
+ \item GUI and applications adapted to big fingers
+ \item $\rightarrow$ run on devices that:
+ \begin{itemize}
+ \item lack keyboard
+ \item have capacitve touchscreen and no stylus
+ \item Have very small displays with very high number of pixel
+ \end{itemize}
+ \end{itemize}
+ \item Issues
+ \begin{itemize}
+ \item Part of the GNU/Linux software architecture is light years away: Package management and build system, Graphics, audio, etc
+ \item Huge unknown code from google
+ \item Meant to run proprietary software, not to empower users
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \center{Android: From time to market driven architecture to substainability}
+ \begin{itemize}
+ \item SOCs, WiFi chips, smartphones and tablets
+ \begin{itemize}
+ \item Write the code that work as fast as possible
+ \item Support as many hardware features as possible
+ \item $\rightarrow$ Varying code quality
+ \item $\rightarrow$ Example: One driver rewritten 3 times %% TODO: reference
+ \end{itemize}
+ \item Breaking Kernel API and ABI
+ \begin{itemize}
+ \item It can take time (years) to bring in a new framework in Linux
+ \item Example of API breakage: HTC dream audio driver
+ \item Solution: Apps $\leftrightarrow$ Android framework $\leftrightarrow$ HAL $\leftrightarrow$ Kernel
+ \item Getting better in Android: Trebble and Generic Kernel images
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \center{Ugly code is good (for freedom):}
+ %% TODO: replace with [blobby from OpenBSD] VS [dirty tux] -> [freedo]
+ \begin{itemize}
+ \item Having the source code under free software licenses, even if the code quality is bad is crucial for freedom:
+ \begin{itemize}
+ \item Hardware bringup is often made that way anyway
+ \item Things can be improved later:
+ always be cleaned up later or if the code quality is too bad, rewritten from scratch
+ \item Having the source code under a free software license is very important
+ \item Worst case: use the source code as documentation or reverse engineer it (add prints)
+ \end{itemize}
+ \item $\rightarrow$ We depend on that source code
+ \end{itemize}
+\end{frame}
+
+%% TODO: free your mind / bend the rules
+%% - Number of smartphones models made each year
+%% -> Another way to look at it
+
+%% Freedom
+%% (climate activists, etc)
+
+%% \begin{frame}
+%% \center{From a purely sustainable perspective:}
+%% \begin{xtabular}{ll}
+%% Big brand old devices & Big brand new devices \\
+%% Removable battery & Battery too difficult to replace \\
+%% Device specific kernel & Device specific modules \\
+%% Changing HAL API & HAL API being versioned \\
+%% \end{xtabular}
+%% \end{frame}
+
+\section{Part II}
+\begin{frame}
+ \center{Part II}
+\end{frame}
+
+\begin{frame}
+ \center{Replicant 6 $\rightarrow$ More rencent Android}
+\end{frame}
+
+\begin{frame}
+ \center{Devices supported by Lineage 16 with a removable battery}
+\end{frame}
+
+\begin{frame}
+ \begin{itemize}
+ \item Qualcomm MSM8*:
+ \begin{itemize}
+ \item Fairphone: FP2
+ \item LG: G3 (many versions)
+ \item OPPO: Find 7a/s
+ \item Samsung: Galaxy Note 3 LTE (Many versions)
+ \item Samsung: Galaxy S III Neo (2 versions)
+ \item Samsung: Galaxy S5 Active
+ \item Samsung: Galaxy S5 LTE (Many versions)
+ \item Samsung: Galaxy S5 LTE Duos (Many versions)
+ \item Wileyfox: Swift
+ \end{itemize}
+ \item Qualcomm APQ8*
+ \begin{itemize}
+ \item Samsung: Galaxy S4 (Many versions)
+ \item Samsung: Galaxy S4 Value Edition (GT-I9515/L)
+ \item Samsung: Galaxy S4 Active
+ \item Samsung: Galaxy S5 LTE-A
+ \item Samsung: Galaxy S5 Plus
+ \end{itemize}
+ \item Samsung Exynos 7580:
+ \begin{itemize}
+ \item Samsung: Galaxy S5 Neo
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \center{Limiting the freedom, privacy and security attacks}
+ \begin{itemize}
+ \item Isolated modem:
+ \begin{itemize}
+ \item Modem not in the SOC
+ \item No shared memory (RAM) between the modem and the SOC
+ \begin{itemize}
+ \item HSIC: USB-like, the host control re-enumeration
+ \item MIPI: Should be ok, not extensively reviewed
+ \end{itemize}
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \begin{itemize}
+ \item \sout{Qualcomm MSM8*:} Modem in the SOC
+ \begin{itemize}
+ \item \sout{Fairphone: FP2}
+ \item \sout{LG: G3 (many versions)}
+ \item \sout{OPPO: Find 7a/s}
+ \item \sout{Samsung: Galaxy Note 3 LTE (Many versions)}
+ \item \sout{Samsung: Galaxy S III Neo (2 versions)}
+ \item \sout{Samsung: Galaxy S5 Active}
+ \item \sout{Samsung: Galaxy S5 LTE (Many versions)}
+ \item \sout{Samsung: Galaxy S5 LTE Duos (Many versions)}
+ \item \sout{Wileyfox: Swift}
+ \end{itemize}
+ \item Qualcomm APQ8*
+ \begin{itemize}
+ \item Samsung: Galaxy S4 (Many versions)
+ \item Samsung: Galaxy S4 Value Edition (GT-I9515/L)
+ \item Samsung: Galaxy S4 Active
+ \item Samsung: Galaxy S5 LTE-A
+ \item Samsung: Galaxy S5 Plus
+ \end{itemize}
+ \item Samsung Exynos 7580:
+ \begin{itemize}
+ \item \sout{Samsung: Galaxy S5 Neo} Modem $\leftrightarrow$ SOC: shared memory
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \center{Hmmm}
+ \begin{itemize}
+ \item $\rightarrow$ No Exynos with removable battery and isolated modem.
+ \item $\rightarrow$ All the devices supported by Replicant 6.0 have been dropped.
+ \item $\rightarrow$ We'd like to support the devices longer...
+ \item The APQ* also look interesting, we would need to do more research on it:
+ \begin{itemize}
+ \item Isolated modem?
+ \item Upstream support for the SOC?
+ \item Nonfree bootloader? (signed?)
+ \item Probably way more work needed (different modem, more upstreaming work)
+ \end{itemize}
+ \item We also took the decision when LineageOS didn't support thoses.
+ \end{itemize}
+\end{frame}
+
+\section{Part III}
+\begin{frame}
+ \center{Part III}
+\end{frame}
+
+\begin{frame}
+ \center{Already supported by Replicant 6.0:}
+ \begin{itemize}
+ \item Galaxy SIII (I9300): Good upstream status, modem support lacking, and other small fixes to do.
+ \item Galaxy Note II (I9300): Good upstream status, modem and display support lacking
+ \item Galaxy SIII 4G (I9305) and Galaxy Note II 4G (N7105): Different modem
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \center{Let's make them more substainable:}
+ \begin{itemize}
+ \item $\rightarrow$ Upstream Linux $\rightarrow$ We can support them longer.
+ \item Remaining issues:
+ \begin{itemize}
+ %% $\rightarrow$ Repurpose the device and run GNU/Linux when not supported anymore.
+ \item RAM size and new Android versions
+ \item Nonfree bootloader
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \center{Nonfree bootloader}
+ \begin{itemize}
+ \item Incompatible with Linux since year 2000
+ \item Nonfree $\rightarrow$ Incentive to drop the device
+ \item Partially free u-boot port
+ \item Research to understand if we can make it fully free (xboot)
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \center{Some funding later...}
+\end{frame}
+
+\begin{frame}
+ \center{Already supported by Replicant 6.0}
+ \begin{itemize}
+ \item Booting devices and inited the modem
+ \item Still work to do
+ \item Slowed down by conferences and other Replicant work (xboot, Replicant 6, etc)
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \center{Future directions}
+ \begin{itemize}
+ \item Finish the research on xboot
+ \item Look into devices like the PinePhone and the Librem5
+ \item Share more work with GNU/Linux upstream (ofono, other hardware support libraries)
+ \end{itemize}
+\end{frame}
+
+%% \begin{frame}
+%% Licenses:
+%% \begin{itemize}
+%% \item The SIM card and BTS pictures comes from \url{https://en.wikipedia.org/wiki/File:Gsm_network.png} and are under the GFDL 1.2 or the Creative commons Attributions-Share ALike 3.0 Unported.
+%% \begin{itemize}
+%% \item GSM: \url{http://wiki.openmoko.org/wiki/QtMoko}
+%% \item SHR pictures: \url{http://wiki.openmoko.org/wiki/SHR_User_Manual}
+%% \end{itemize}
+%% \item HTC Dream: \url{https://commons.wikimedia.org/wiki/File:HTC_Dream_opened.jpg}
+%% Creative Commons Attribution 3.0 Unported
+%% \item \url{https://creativecommons.org/licenses/by-sa/4.0/} for the rest.
+%% \end{itemize}
+%% \end{frame}
+
+%% TODO
+%% \begin{thebibliography}{99}
+%% \bibitem{stalin-dream}
+%% \url{https://stallman.org/archives/2011-nov-feb.html}
+%% \end{thebibliography}
+\end{document}