diff options
5 files changed, 1059 insertions, 0 deletions
diff --git a/37c3/Replicant_struggle/unfinished-latex-version/Makefile b/37c3/Replicant_struggle/unfinished-latex-version/Makefile new file mode 100644 index 0000000..557d109 --- /dev/null +++ b/37c3/Replicant_struggle/unfinished-latex-version/Makefile @@ -0,0 +1,113 @@ +TEXFLAGS ?= -halt-on-error -output-format pdf -output-directory output +TITLE = Struggle_for_independence + +TOPDIR = ../../.. + +.PHONY: all clean medias archive + +############### +# Phony rules # +############### +all: output/$(TITLE).pdf + +archive: + git archive --format=tar --prefix=LibrePlanet2022/ HEAD -o LibrePlanet2022.tar + +clean: + rm -rf output + +################ +# Main targets # +################ +output: + mkdir output + +output/$(TITLE).pdf: \ + Struggle_for_independence.tex \ + output \ + output/4-freedoms.jpg \ + output/android.jpg \ + output/android_logo.jpg \ + output/anti_drm_protest.jpg \ + output/anti_smartphones.jpg \ + output/electronic_waste_small.jpg \ + output/framework.jpg \ + output/freedo.jpg \ + output/googlag_small.jpg \ + output/i9300_left.jpg \ + output/linux.jpg \ + output/motorola_a780_small.jpg \ + output/n900.jpg \ + output/phist.jpg \ + output/raised_fist_small.jpg \ + output/replicant_logo.jpg \ + output/smart_phones_shop_small.jpg \ + output/tablets.jpg \ + output/the_leader_of_the_luddites_small.jpg \ + output/we_can_do_it_small.jpg \ + output/wifi.jpg \ + output/worker.jpg + pdflatex $(TEXFLAGS) '\providecommand\locale{en}\input{$(TITLE).tex}' + pdflatex $(TEXFLAGS) '\providecommand\locale{en}\input{$(TITLE).tex}' + du -hs $@ + +############################## +# Automatic depdencies rules # +############################## +output/%.jpg: dot/%.dot + mkdir -p output + dot -T jpg $< > $@ + +output/%.jpg: $(TOPDIR)/common/images/%.jpg output + convert $< $@ + +output/%.jpg: $(TOPDIR)/common/images/%.png output + convert $< $@ + +output/%.jpg: $(TOPDIR)/common/images/%.svg output + convert $< $@ + +# Space saved: +# - we_can_do_it.jpg: from 61M to 456K +# - raised_fist.jpg: from 7.9M to 104K +# - the_leader_of_the_luddites.jpg: from 6.1M to 291K +# - smart_phones_shop.jpg: from 3.0M to 243K +# - electronic_waste.jpg: from 2.8M to 168K +# - googlag.jpg: from 2.4M to 101K +# - motorola_a780.jpg: from 1.8M to 64k +output/%_small.jpg: $(TOPDIR)/common/images/%.jpg + convert -resize 25% -quality 80 $< $@ + +################################# +# Images with specific settings # +################################# +# -resize and -quality makes the image go from 1.1M to 48k +output/anti_drm_protest.jpg: $(TOPDIR)/common/images/anti_drm_protest.jpg output + convert $< -crop 50%x0%+1440+0 -resize 25% -quality 80 $@ + +output/i9300_hardware.jpg: $(TOPDIR)/common/images/i9300_hardware.svg output + convert $< $@ + +output/i9300_left.jpg: output/i9300_hardware.jpg output + convert $< -crop 50%x0%+0+0 $@ + +# -resize and -quality makes the image go from 8.5M to 124k +output/n900.jpg: $(TOPDIR)/common/images/N900_xterm.JPG $(TOPDIR)/common/images/Nokia_N900-6.jpg + mkdir -p output + convert -append -gravity center -resize 25% -quality 80 $? $@ + +output/replicant_logo.jpg: $(TOPDIR)/external_resources/vendor_replicant_artwork/replicant_logo_white.png output + convert $< $@ + +output/tablets.jpg: \ + $(TOPDIR)/external_resources/replicant_website/images/supported-devices/p3100.png \ + $(TOPDIR)/external_resources/replicant_website/images/supported-devices/p5100.png + mkdir -p output + convert -append $? $@ + +output/wifi.jpg: \ + $(TOPDIR)/common/images/tehnoetic-n150-mini-wifi-adapter-back-500x500.png \ + $(TOPDIR)/common/images/tet-otg-side-500x500.jpg \ + $(TOPDIR)/common/images/Wifi.png + mkdir -p output + convert -append -gravity center $? $@ diff --git a/37c3/Replicant_struggle/unfinished-latex-version/Struggle_for_independence.tex b/37c3/Replicant_struggle/unfinished-latex-version/Struggle_for_independence.tex new file mode 100644 index 0000000..3019b91 --- /dev/null +++ b/37c3/Replicant_struggle/unfinished-latex-version/Struggle_for_independence.tex @@ -0,0 +1,925 @@ +\documentclass[aspectratio=169]{beamer} +\usepackage[english]{babel} +\usepackage{color} +\usepackage{CJKutf8} +\usepackage{graphicx} +\usepackage{ifthen} +\usepackage[utf8]{inputenc} +\usepackage{listings} +\usepackage{longtable} +\usepackage{pdfpages} +\usepackage{xtab} + +\def\topdir{../../..} + +\lstdefinestyle{terminal}{ + backgroundcolor=\color{black}, + basicstyle=\scriptsize\color{green}, +} + +\newcommand{\devicepicture}[1]{\topdir/external_resources/replicant_website/images/supported-devices/#1.png} + +\newcommand{\includedevicepicture}[1]{ + {\includegraphics[width=.2\textwidth]{\devicepicture{#1}}} +} + +\newcommand{\inline}[3] +{ + \ifthenelse{\equal{top}{#2}}{ + \noindent + \resizebox{\textwidth}{\textheight * 2 / 3}{#1} + {#3} + }{} + \ifthenelse{\equal{bottom}{#2}}{ + {#3} + \noindent + \resizebox{\textwidth}{\textheight * 2 / 3}{#1} + }{} + \ifthenelse{\equal{right}{#2}}{ + \begin{columns}[T] + \begin{column}{5cm} + #3 + \end{column} + \begin{column}{5cm} + #1 + \end{column} + \end{columns} + }{} +} + +\newcommand{\inlinepicture}[3]{ + \ifthenelse{\equal{right}{#2}}{ + \begin{columns}[T] + \begin{column}{5cm} + #3 + \end{column} + \begin{column}{5cm} + \includegraphics[width=5cm,height=8cm,keepaspectratio=true]{#1} + \end{column} + \end{columns} + }{ + \inline{\includegraphics[keepaspectratio=true]{#1}}{#2}{#3} + } +} + +\usetheme{Singapore} + +\title{Replicant struggle: past and present successes and failures} +\author{Denis 'GNUtoo' Carikli} +\date{December 28, 2023} + +\begin{document} + +\maketitle + +\begin{frame} + \center{Presentation structure:} + \begin{itemize} + \item Introduction + \begin{itemize} + \item What is Replicant? + \item Why Replicant? + \item Why Android? + \end{itemize} + \item Replicant past and present struggles, successes and failures + \begin{itemize} + \item Replicant creation and history + \item Replicant struggles and phases + \end{itemize} + \item Future work on the Pinephone + \begin{itemize} + \item Why porting on the Pinephone? + \item Digressions and project management + \end{itemize} + \item Time for discussions + \end{itemize} +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Introduction} + +\begin{frame} + \center{Introduction} +\end{frame} + +\subsection{What is Replicant?} + +\begin{frame} + \inlinepicture{output/replicant_logo.jpg}{right}{ + \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 Two main versions: + \begin{itemize} + \item Replicant 6: + \begin{itemize} + \item Android 6, last security update: October 2017 + \cite{last-android-6-update} + \item based on LineageOS + \item Supports $\sim$ 10 devices (smartphones and tablets) + \end{itemize} + \item Replicant 11: + \begin{itemize} + \item Android 11, partial support for 1 device + \item based on official Android source code + \end{itemize} + \end{itemize} + \item $\sim$ About 1 part time equivalent contributor and a + community of users. + \end{itemize} +\end{frame} + +\begin{frame} + \begin{xtabular}{llll} + \includedevicepicture{i9100} & + \includedevicepicture{maguro} & + \includedevicepicture{i9300} & + \includedevicepicture{n7000} \\ + \includedevicepicture{n7100} & + \includedevicepicture{n5100} & + \includedevicepicture{p3100} & + \includedevicepicture{p5100} \\ + \end{xtabular} +\end{frame} + +\begin{frame} + \center{Best (and lot of) effort:} + \inlinepicture{output/worker.jpg}{right}{ + \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{Also:} + \begin{itemize} + \item Freedom privacy security page + \item Extensive documentation on the wiki, not always easy to find + \item Infrastructure: + \begin{itemize} + \item OSUOSL: Mailing list, Wordpress, website, Redmine, FTP + \item 1 VM @ FSF: git, domain name, contact address, IRC bridge + \item Mastodon account on mamot.fr + \end{itemize} + \end{itemize} +\end{frame} + +\subsection{Why Replicant exists?} + +\begin{frame} + \center{Have clear demands and attainable goal: First steps} + \inlinepicture{output/raised_fist_small.jpg}{right}{ + \begin{itemize} + \item 100\% free sofware on the main CPU + \item 100\% free sofware distribution(s) + \item Usable by people: + \begin{itemize} + \item Easy to use (command line) + \item Hardware easy to find + \item Hardware that can last and that is not too expensive + \end{itemize} + \item Limits the damage: + \begin{itemize} + \item Add some limits to the invasion of intimacy. + \item Hardware lasts longer. + \end{itemize} + \end{itemize} + } +\end{frame} + +\begin{frame} + \center{How to achieve that?} + \inlinepicture{output/we_can_do_it_small.jpg}{right}{ + \begin{itemize} + \item $\rightarrow$ Lot of work by many people over many years. + \item $\rightarrow$ Not shipping nonfree firmwares or any nonfree software. + \end{itemize} + } +\end{frame} + +%% \begin{frame} +%% \center{A very short introduction on hardware:} +%% \inlinepicture{output/i9300_hardware.jpg}{top}{ +%% \begin{itemize} +%% \item System on a chip +%% \item Smartphones and the modem +%% \end{itemize} +%% } +%% \end{frame} + +%% \begin{frame} +%% \center{Why is the modem an issue?} +%% \begin{itemize} +%% \item Nonfree firmware +%% \begin{itemize} +%% \item $\rightarrow$ Only 1 free firmware for very old modems (2005) +%% \cite{OsmocomBB}\cite{motorola-c115} +%% \item Too much work for Replicant +%% \end{itemize} +%% \item Modem isolation +%% \begin{itemize} +%% \item $\rightarrow$ Select smartphones with good isolation: +%% \begin{itemize} +%% \item HSIC and firmware data controlled by Replicant +%% \item MIPI +%% \item USB and free bootloader +%% \item UART +%% \item Avoid modem built in the SOCs and shared memory or disable the modem +%% completely. +%% \end{itemize} +%% \item $\rightarrow$ We still help other projects supporting +%% devices with shared memory and encourage forking Replicant for +%% that. +%% \end{itemize} +%% \item Tracking $\rightarrow$ No real solution +%% \begin{itemize} +%% \item Community networks (Indigenous communities in Oxaca) +%% \item Disable the modem $\rightarrow$ no calls, SMS or data connection +%% \end{itemize} +%% \end{itemize} +%% \end{frame} + +%% \begin{frame} +%% \inlinepicture{output/Wifi.jpg}{right}{ +%% \center{WiFi: No free firmwares for chip used in mobile devices} +%% \begin{itemize} +%% \item ath9k compatible adapters consume too much power, +%% require PCIe $\rightarrow$ not used in devices. +%% \item We badly need help for free firmwares: +%% \begin{itemize} +%% \item Broadcom chips through Nexmon ? +%% \item Realtek by reverse engineering GPL binary fimrwares? +%% \end{itemize} +%% \item USB device used (ath9k\_htc compatible) in the meantime +%% \end{itemize} +%% } +%% \end{frame} + +%% \begin{frame} +%% \inlinepicture{output/i9300_left.jpg}{right}{ +%% \center{Additional issues:} +%% \begin{itemize} +%% \item Nonfree bootloader +%% \begin{itemize} +%% \item The SOC enforces signatures +%% \item TrustZone OS on some devices +%% \item Incompatible with Linux +%% \item Hard to support in Replicant 11 and GNU/Linux +%% \end{itemize} +%% \end{itemize} +%% } +%% \end{frame} + +\subsection{Why Android?} + +\begin{frame} + \center{Why Android?} + \inlinepicture{output/android_logo.jpg}{right}{ + \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} + } +\end{frame} + +\begin{frame} + \center{Issues with Android?} + \inlinepicture{output/googlag_small.jpg}{right}{ + \begin{itemize} + \item Part of the GNU/Linux 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{frame} + +%% \begin{frame} +%% \inlinepicture{output/smart_phones_shop_small.jpg}{right}{ +%% \center{In practice: Android architecture} +%% \begin{itemize} +%% \item Goals: time to market +%% \begin{itemize} +%% \item Write the code that work as fast as possible +%% \item Support as many hardware features as possible including new hardware +%% \item $\rightarrow$ Varying code quality +%% \item $\rightarrow$ Example: One driver rewritten 3 times +%% %% TODO: reference +%% \end{itemize} +%% \end{itemize} +%% } +%% \end{frame} + +\begin{frame} + \inlinepicture{output/framework.jpg}{right}{ + \center{In practice: Android architecture} + %% \begin{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 vendor code is good as we depend it for freedom} +%% \inlinepicture{output/freedo.jpg}{right}{ +%% \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 Code can always be cleaned up or rewritten later +%% \item Worst case: use the source code as documentation or reverse engineer +%% it (add prints) +%% \end{itemize} +%% \end{itemize} +%% } +%% \end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Replicant past and present struggles successes and failures} + +\subsection{Replicant creation and history} + +\begin{frame} + \center{Replicant past and present struggles, successes and failures} +\end{frame} + +\begin{frame} + \inlinepicture{output/replicant_logo.jpg}{right}{ + \center{Replicant:} + \begin{itemize} + \item Replicant creation + \item GNU/Linux and Android + \end{itemize} + } +\end{frame} + +\begin{frame} + \begin{columns}[T] + \begin{column}{5cm} + \center{Phase 1: Replicant creation and Qualcomm devices} + \end{column} + \begin{column}{5cm} + \includegraphics[width=5cm,keepaspectratio=true]{\topdir/common/images/htcdream.jpg} + \end{column} + \end{columns} +\end{frame} + +%% \begin{frame} +%% \center{Replicant} +%% \begin{longtable}[!t]{|p{7cm}|p{3cm}|} +%% \hline +%% Goal & Success? \\ +%% \hline +%% Create a 100\% free software Android distribution & Yes \\ +%% \hline +%% Support the HTC Dream & Yes \\ +%% \hline +%% Usable & Yes \\ +%% \hline +%% Low maintenance & Yes (AOSP, LineageOS) \\ +%% \hline +%% Fast to add new devices & Yes \\ +%% \hline +%% Hardware keyboard & Yes \\ +%% \hline +%% Free software applications & Started to appear \\ +%% \hline +%% \end{longtable} +%% \end{frame} + +%% \begin{frame} +%% \center{GNU/Linux} +%% \begin{longtable}[!t]{|p{8cm}|p{2cm}|} +%% \hline +%% Goal & Success? \\ +%% \hline +%% 100\% free software distributions & nonfree firmwares \\ +%% \hline +%% Support the HTC Dream & broken sound, unstable \\ +%% \hline +%% Usable & No \\ +%% \hline +%% Low maintenance & ? \\ +%% \hline +%% Fast to add similar devices & ? \\ +%% \hline +%% Hardware keyboard & Yes \\ +%% \hline +%% Free software applications & Very few were usable \\ +%% \hline +%% \end{longtable} +%% \end{frame} + +%% \begin{frame} +%% \inlinepicture{output/i9300_left.jpg}{right}{ +%% \center{Sounds too good to be true?} +%% \begin{itemize} +%% \item The modem controlled everything: booting, RAM +%% initialization, microphone, GPS, some hardware acceleration. +%% \item Nonfree bootloaders +%% \end{itemize} +%% } +%% \end{frame} + + +\begin{frame} + \center{Sounds too good to be true?} + + \begin{columns}[T] + \begin{column}{5cm} + \begin{itemize} + \item The modem controlled everything: booting, RAM + initialization, microphone, GPS, some hardware acceleration. + \item Nonfree bootloaders + \end{itemize} + \end{column} + \begin{column}{5cm} + \includegraphics[width=5cm,keepaspectratio=true]{\topdir/common/images/htcdream.jpg} + \end{column} + \end{columns} +\end{frame} + +\subsection{Samsung devices} + +\begin{frame} + \inlinepicture{\devicepicture{crespo}}{right}{ + \center{Phase 2: Qualcomm devices $\rightarrow$ Samsung devices} + \begin{itemize} + \item Many Samsung smartphones have a separate modem that looks isolated + \item Unknown modem protocol + \end{itemize} + } +\end{frame} + +\begin{frame} + \inline{ + \colorbox{black}{\color{green}{ static struct resource mdmctl\_res[] = \{ } } + \colorbox{black}{\color{green}{ [...] } } + \colorbox{black}{\color{green}{ [2] = \{ } } + \colorbox{black}{\color{green}{ .name = "onedram", } } + \colorbox{black}{\color{green}{ .start = (S5PV210\_PA\_SDRAM + 0x05000000), } } + \colorbox{black}{\color{green}{ .end = (S5PV210\_PA\_SDRAM + 0x05000000 + SZ\_16M - 1), } } + \colorbox{black}{\color{green}{ .flags = IORESOURCE\_MEM, } } + \colorbox{black}{\color{green}{ \}, \}; } } + }{right}{ + \center{Sounds too good to be true? (not again)} + \begin{itemize} + \item Shared memory found: + \begin{itemize} + \item S5PV210\_PA\_SDRAM is 0x30000000 + \item 0x05000000 is 80MiB + \item mdmctl\_res is passed to the modem driver + \end{itemize} + $\rightarrow$ This is in the RAM. + \item Affected devices: + \begin{itemize} + \item Galaxy S + \item Nexus S + \end{itemize} + \end{itemize} + } +\end{frame} + +\begin{frame} + \inlinepicture{\devicepicture{maguro}}{right}{ + \center{But it's fixable (kind of)} + \\ + $\rightarrow$ Port to other devices. + \begin{itemize} + \item Same modem protocol + \end{itemize} + } +\end{frame} + +\begin{frame} + Smartphones: + \begin{itemize} + \item Galaxy Nexus (GT-I9250) + \item Galaxy Note (GT-N7000) + \item Galaxy Note II (GT-N7100) + \item Galaxy SII (GT-I9100) + \item Galaxy SIII (GT-I9300) + \end{itemize} + Tablets: + \begin{itemize} + \item Galaxy Tab 2 (GT-P3100, GT-P3110, GT-P5100, GT-P5110, TODO) + \item Galaxy Note 8.0 (GT-N5100, GT-N5110) + \end{itemize} +\end{frame} + +\begin{frame} + \center{Our struggle goals} + \begin{longtable}[!t]{|p{8cm}|p{2cm}|} + \hline + Goal & Success? \\ + \hline + Isolated Modem & Yes \\ + \hline + Usable & Yes \\ + \hline + Low maintenance & Yes (LineageOS) \\ + \hline + Fast to add similar devices & Easy enough (libsamsung-ipc not trivial) \\ + \hline + \end{longtable} +\end{frame} + +\begin{frame} + \center{Next steps} + \begin{longtable}[!t]{|p{5cm}|p{5cm}|} + \hline + Goal & Success? \\ + \hline + Isolated Modem & Yes \\ + \hline + Bootloader & $\leftarrow$ \\ + \hline + Nonfree code running? & $\leftarrow$\\ + \hline + firmwares & Nonfree for WiFi \\ + \hline + \end{longtable} +\end{frame} + +\subsection{GNU/Linux smartphones} + +\begin{frame} + \center{Phase 3: Porting Replicant to GNU/Linux smartphones} +\end{frame} + +\begin{frame} + \inlinepicture{\devicepicture{gta04}}{right}{ + \center{GTA04} + Advantages: + \begin{itemize} + \item Longer term support (good support in upstream) + \item Free software vendor bootloader (xloader + u-boot fork) + \item Documented hardware: GPS, modem, etc, but undocumented 3D acceleration + \end{itemize} + } +\end{frame} + +\begin{frame} + \inlinepicture{\devicepicture{gta04}}{right}{ + \center{GTA04} + \begin{itemize} + \item Some limited Replicant 4.2 support + \item Got suspend issues with Replicant 6 (kernel) + \item $\rightarrow$ Port failed: could not make suspend/resume work + \end{itemize} + } +\end{frame} + +\begin{frame} + \center{Power management in smartphones and Android (wakelocks / opportunistic + suspend)} + \inlinepicture{output/i9300_hardware.jpg}{top}{ + } +\end{frame} + +\begin{frame} + \center{Second attempt: LG Optimus black} + \begin{itemize} + \item Ran Android + \item Free bootloader available + \item $\rightarrow$ Integration in Replicant as-is complex + \item $\rightarrow$ Work to upstream it, not finished + \item See Paul Kocialkowski's blog for more details + \cite{freeing-a-phone-from-the-ground-up} + \end{itemize} +\end{frame} + +\begin{frame} + \center{$\rightarrow$ Switching focus back to Samsung devices} +\end{frame} + +\subsection{Current work} + +\begin{frame} + \center{You have 3 new issues} + \begin{itemize} + \item LineageOS stopping support for the devices supported by Replicant + \item None of the smartphones supported in LineageOS are interesting: + \begin{itemize} + \item Non-isolated modems + \item And/or non-removable batteries + \end{itemize} + \item 3G networks being shut down + \end{itemize} +\end{frame} + +\begin{frame} + \inlinepicture{\devicepicture{i9300}}{right}{ + \center{Replicant 11 and upstream port} + %% \begin{itemize} + %% \item Many Samsung smartphones have a separate modem that looks isolated + %% \item Unknown modem protocol + %% \end{itemize} + } +\end{frame} + +\begin{frame} + \center{$\rightarrow$ Support the Galaxy SIII (GT-I9300) with an upstream + kernel} +\end{frame} + +\begin{frame} + \center{How to do it?} + \begin{itemize} + \item Existing work: + \begin{itemize} + \item Some good Linux support but not complete + \item Modem driver available but not validated + \end{itemize} + \item Funding: + \begin{itemize} + \item 0.5 * 2 people on Graphics (David Ludovino (dllud) and + Ricardo Cabrita(Grim) + \item 1 person on the rest and some help from Joonas Kylmälä (Putti) + \item Need additional funding too + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame} + \center{Status} + \begin{itemize} + \item Boots fine, 3D aceleration works. + \item Modem works and we can call with it but the Android + integration is not complete (audio, sim not recognized). Took a + lot of work and part of the code still needs cleanup. + \item Audio too primitive. + \item Power management untested. + \item Replicant 9 (AOSP, LineageOS) $\rightarrow$ Replicant 10 (LineageOS) + $\rightarrow$ Replicant 11 (AOSP) + \item Many tasks took way longer than planned + \end{itemize} +\end{frame} + +\begin{frame} + \center{You have 2 or 3 new interesting devices} + \begin{itemize} + \item Pinephone + \begin{itemize} + \item Cheap $\rightarrow$ people can get it + \item Free bootloader, documented hardware + \item Poor power management $\rightarrow$ Use keyboard + \end{itemize} + \item Librem5 + \begin{itemize} + \item Probably good battery life since has big battery + \item Issue: current users don't have it and probably can't buy + one + \end{itemize} + \end{itemize} +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Parallel work} + +\begin{frame} + \center{Parallel work} +\end{frame} + +\begin{frame} + \center{Replicant 6.0} + \begin{itemize} + \item Worked on Relase with many fixes: + \begin{itemize} + \item Many nonfree software found and removed (Java code, + firmwares) + \item Fixed leak of user data (phone numbers) + \item Removed f-droid (tried to fix FSDG compliance upstream but + took too long). + \item Fixed important SIM not recognized bug (Thanks Belgin). + \item Many improvements by new contributors (scripts to disable + the modem, improved OpenGL compatibility, bettter USB WiFi + integration, etc). + \item Reworked installation instructions (funded by NLnet for + Replicant 11). + \end{itemize} + \item TODO: + \begin{itemize} + \item Migration instructions + \item Announce the release (blog post already done) + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame} + \center{Quality Assurance} + \begin{itemize} + \item Automatic tests: + \begin{itemize} + \item Libsamsung-ipc: conversion to coding style, (few) automatic + tests added, cleaned up lot of code. + \item WIP python library for automatic tests + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame} + \center{Infrastructure: work} + \begin{itemize} + \item Wiki Migration: Redmine $\rightarrow$ git $\rightarrow$ Mediawiki + \item Enabling contributions: Almost all the VM under git (apache2 + configuration, website, IRC bridge, contact address) + \end{itemize} +\end{frame} + +\begin{frame} + \center{Collaborations with other projects} + \begin{itemize} + \item Contacts: + \begin{itemize} + \item PostmarketOS: shared our patches, helped with booting + upstream Linux on the Galaxy SII (GT-I9100). + \item LineageOS unofficial ports: collaborated a bit when were using + upstream Linux. + \end{itemize} + \item Upstreaming: + \begin{itemize} + \item mat2: fix for reproducible zips + \item heimdall: bugreported dangerous issue (no size check when + installing recoveries) + \item Trisquel 9 fixes for building Replicant 11 and for the Replicant VM: + proguard and fai-server. + \item Linux: small upstreaming work for Replicant 11: buttons, + flash for Galaxy SIII and Note II. + \item GRUB: work to upstream some cryptogrub patches to boot Guix + on FSF infrastructure (now picked up by Glenn Washburn). + \item WIP wireshark dissector for libsamsung-ipc + \end{itemize} + \end{itemize} +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{References} + +\begin{frame} + \center{Extra readings} + \begin{itemize} + \item OpenMoko History: + \url{https://www.vanille.de/blog/openmoko-10-years-after-mickeys-story/} + \item Paul's blog for on freeing the Optimus black + \cite{freeing-a-phone-from-the-ground-up} + \end{itemize} +\end{frame} + +\begin{frame} + Licenses: + \begin{itemize} + \item The Qtmoko and SHR pictures are From are under the + GNU Free Documentation License. + \begin{itemize} + \item QtMoko pictures: \url{http://wiki.openmoko.org/wiki/QtMoko} + \item SHR pictures: \url{http://wiki.openmoko.org/wiki/SHR_User_Manual} + \end{itemize} + \item Raised fist: + \url{https://commons.wikimedia.org/wiki/File:Raised_fist.jpg} + Creative Commons Attribution 3.0 Unported + \item We Can Do It: + \url{https://commons.wikimedia.org/wiki/File:We_Can_Do_It!_NARA_535413_-_Restoration_2.jpg} + Public domain + \end{itemize} +\end{frame} + +\begin{frame} + \begin{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. + \item WiFi logo: + \url{https://commons.wikimedia.org/wiki/File:Wifi.png} + Public domain, probably trademarked. + \item Freedo Redrawn version: + \url{https://www.gnu.org/graphics/freedo.html} + GNU Free Documentation License 1.3 or later + \item Android logo + \url{https://commons.wikimedia.org/wiki/File:Android_Robot_Cleaner_(2014-2019).svg} + CC BY-SA 4.0 International + \end{itemize} +\end{frame} + +\begin{frame} + \begin{itemize} + \item Googlag + \url{https://wiki.fuckoffgoogle.de/index.php?title=File:IMG_20180428_200243.jpg} + CC BY-SA + \item Worker + \url{https://commons.wikimedia.org/wiki/File:African_American_worker_Richmond_Shipyards.jpg} + Public domain + \item N900 kernel + \url{https://commons.wikimedia.org/wiki/File:N900_xterm.JPG} + CC-BY-SA 3.0 Unported, 2.5 Generic, 2.0 Generic and 1.0 Generic + \item N900 camera + \url{https://commons.wikimedia.org/wiki/File:Nokia_N900-6.jpg} + CC-BY 2.0 Generic + \end{itemize} +\end{frame} + +\begin{frame} + \begin{itemize} + \item Phone shop + %% File:HK WC 灣仔 Wan Chai 莊士敦道 Johnston Road shop window display smart phones August 2021 SS2.jpg + \url{https://commons.wikimedia.org/wiki/File:HK\_WC\_\%E7\%81\%A3\%E4\%BB\%94\_Wan\_Chai\_\%E8\%8E\%8A\%E5\%A3\%AB\%E6\%95\%A6\%E9\%81\%93\_Johnston\_Road\_shop\_window\_display\_smart\_phones\_August\_2021\_SS2.jpg} + CC-BY-SA 4.0 International + \item Moblie phones electronic waste + \url{https://commons.wikimedia.org/wiki/File:Day_6_Warehouse_(25890985098).jpg} + CC-BY-SA 2.0 Generic + \item Phone and phist + \url{https://wiki.rhizomatica.org/index.php/File:Phist.jpg} + CC-BY 3.0 + \item The leader of the Luddites + \url{https://en.wikipedia.org/wiki/File:Luddite.jpg} + Public domain + \end{itemize} +\end{frame} + +\begin{frame} + \begin{itemize} + \item Motorolla A780 + \url{https://commons.wikimedia.org/wiki/File:Motorola_A780_(278204605).jpg} + CC-BY-SA 2.0 Generic + \item 4 freedoms + \url{https://www.gnu.org/graphics/amihud-4-freedoms.html} + CC-BY-SA 4.0 International License or GPLv3 or later + \item ichains + \url{https://www.gnu.org/graphics/digital-restrictions-management.html} + CC-BY-SA 3.0 + \item anti-drm protest + \url{https://www.flickr.com/photos/bcatch/164393994/in/album-72157594161735152/} + CC-BY-SA 2.0 + \item GNU buck + \url{https://static.fsf.org/licensing/gnu-bucks.tar.gz} + Unknown license + \item anti-smartphone + \url{https://commons.wikimedia.org/wiki/File:Bia\%C5\%82a_Podlaska_~21ujcqtd.jpg} + CC-BY-SA 4.0 International + \end{itemize} +\end{frame} + +\begin{frame} + \begin{itemize} + \item Replicant devices and logo: + \begin{itemize} + \item Replicant Logo + \url{https://git.replicant.us/replicant/vendor_replicant_artwork/plain/replicant_logo_alpha.svg?h=main&id=fc213d2ca94cef9047d1e4a71c21c4c4c87f349d} + CC-BY-SA 3.0 Unported + \item Replicant devices + \url{https://git.replicant.us/infrastructure/www.replicant.us/tree/images/supported-devices?id=2a331698cead2677fa953c3e1ab5d78528e39ef9} + CC-BY-SA 3.0 Unported + \end{itemize} + \end{itemize} +\end{frame} + +\begin{thebibliography}{99} +\bibitem{freeing-a-phone-from-the-ground-up} + \url{https://code.paulk.fr/article20/a-hacker-s-journey-freeing-a-phone-from-the-ground-up-first-part} + \url{https://code.paulk.fr/article21/a-hacker-s-journey-freeing-a-phone-from-the-ground-up-second-part} + \url{https://code.paulk.fr/article22/a-hacker-s-journey-freeing-a-phone-from-the-ground-up-third-part} + \url{https://code.paulk.fr/article23/a-hacker-s-journey-freeing-a-phone-from-the-ground-up-fourth-part} +\bibitem{OsmocomBB} + \url{https://osmocom.org/projects/baseband/wiki} +\bibitem{motorola-c123} + The motorola c115 is from 2005 + \url{https://en.wikipedia.org/wiki/List_of_Motorola_products#C_series_(1998-2006)} +\bibitem{last-android-6-update} + \url{https://en.wikipedia.org/wiki/Android_Marshmallow#cite_note-2} +\bibitem{porting-to-android-11} + \url{https://redmine.replicant.us/projects/replicant/wiki/PortingToAndroid11} +\bibitem{number-of-smartphones} + \url{http://www.deccanherald.com/content/332274/there-more-mobile-phones-people.html} +\end{thebibliography} +\end{document} diff --git a/37c3/Replicant_struggle/unfinished-latex-version/dot/android.dot b/37c3/Replicant_struggle/unfinished-latex-version/dot/android.dot new file mode 100644 index 0000000..a2f2d22 --- /dev/null +++ b/37c3/Replicant_struggle/unfinished-latex-version/dot/android.dot @@ -0,0 +1,7 @@ +digraph "" { + # bgcolor="#ffffff00" # Transparent background + "AOSP" -> "Samsung Android" ; + "Google Play" -> "Samsung Android" ; + "AOSP" -> "LineageOS" -> "Replicant 6.0"; + "AOSP" -> "Replicant 11"; +} diff --git a/37c3/Replicant_struggle/unfinished-latex-version/dot/framework.dot b/37c3/Replicant_struggle/unfinished-latex-version/dot/framework.dot new file mode 100644 index 0000000..c1cab54 --- /dev/null +++ b/37c3/Replicant_struggle/unfinished-latex-version/dot/framework.dot @@ -0,0 +1,4 @@ +digraph "" { + # bgcolor="#ffffff00" # Transparent background + "Android applications" -> "Android framework" -> "HALs" -> "(modified) kernel"; +} diff --git a/37c3/Replicant_struggle/unfinished-latex-version/dot/linux.dot b/37c3/Replicant_struggle/unfinished-latex-version/dot/linux.dot new file mode 100644 index 0000000..8907ac7 --- /dev/null +++ b/37c3/Replicant_struggle/unfinished-latex-version/dot/linux.dot @@ -0,0 +1,10 @@ +digraph "" { + # bgcolor="#ffffff00" # Transparent background + "OLD_DEVICE_KERNEL" [label="Device kernel"]; + "NEW_DEVICE_KERNEL" [label="Device kernel"]; + "Linux" -> "vendor_kernel_replicant" ; + "Linux" -> "Android kernel" -> "System On A Chip Android kernel" -> "OLD_DEVICE_KERNEL"; + "Linux" -> "GKI"; + "GKI" -> "NEW_DEVICE_KERNEL"; + "External modules" -> "NEW_DEVICE_KERNEL"; +} |