summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2019-11-07 17:25:05 +0100
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2019-12-13 00:17:15 +0100
commit3908b9521f223218b84c588330c52bb4cec2bcc6 (patch)
treef81161e90f825e051960258909305eeec1f5be0e
parent23ee9c176ead4d1c31f54ba6482473248b4d720d (diff)
downloaddocuments-3908b9521f223218b84c588330c52bb4cec2bcc6.tar.gz
documents-3908b9521f223218b84c588330c52bb4cec2bcc6.tar.bz2
documents-3908b9521f223218b84c588330c52bb4cec2bcc6.zip
Update status and time estimations
- Validate that Android 9 builds: I had to setup a vm to build Replicant, and a build from scratch takes about 5h on my desktop (F2A85M-pro with Coreboot). - Choose an Android distribution: I spent at least one month full time on the build issues - Add partial support for a second device: Adding a second Android device required a bit more work to find a clean way to do it - The touch key work required to do some testing and some back and forth with upstream. It was halted because I didn't have a Galaxy Note II (n7100/n7105), so I needed to ask a friend who has one to do testing. I know have an n7105 to do the tests. - AAT1290 flash led driver: It took aproximatively the time I expected as there wasn't many back and forth with upstream. I also had to get a sign-off by the original author. - I didn't know that the work on the modem by Simon Shields wasn't finished. Because of that I didn't correctly evaluate the amount of work required. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
-rw-r--r--NLnet/porting_replicant_to_android9/porting_replicant_to_android9.tex121
1 files changed, 93 insertions, 28 deletions
diff --git a/NLnet/porting_replicant_to_android9/porting_replicant_to_android9.tex b/NLnet/porting_replicant_to_android9/porting_replicant_to_android9.tex
index 2c334a5..4975e79 100644
--- a/NLnet/porting_replicant_to_android9/porting_replicant_to_android9.tex
+++ b/NLnet/porting_replicant_to_android9/porting_replicant_to_android9.tex
@@ -231,12 +231,14 @@ agree to the following:
working on porting Joonas Kylmälä's work on top of LineageOS 16, however I
had one or more complicated issues related to the Android build system that
I didn't manage to solve.
- However at some point I found exiting work\cite{CustomROMs} that I wasn't
- aware of, which was meant to add support for the Galaxy SIII (i9300) to
- LineageOS.
+ However at some point I found exiting work named CustomROMs\cite{CustomROMs}
+ that I wasn't aware of, which was meant to add support for the Galaxy SIII
+ (i9300) to LineageOS.
I started basing my work on top of this work too not to waste too much time
with the build issues mentioned above (as I already spent more than one week
on that issue).
+ With what I learned with my work on top of CustomROMs, we then managed to fix
+ the build.
}
\end{itemize}
@@ -256,7 +258,7 @@ agree to the following:
\hline
- 7h &
+ 14h &
\begin{itemize}
\item{Validate that Android 9 builds under a GNU/Linux distribution
compliant with the FSF's Free Software Distribution Guidelines (FSDG)
@@ -265,7 +267,7 @@ agree to the following:
\hline
- 21h &
+ 160h &
\begin{itemize}
\item{
Choose an Android distribution (like AOSP or LineageOS) to base the work on
@@ -285,9 +287,11 @@ agree to the following:
\hline
- 14h &
+ 35h &
\begin{itemize}
- \item{Add partial support for a second device which will one of the following devices:
+ \item{
+ Add partial support for a second device which will one of the following
+ devices:
\begin{itemize}
\item{Galaxy SIII (I9300)}
\item{Galaxy SIII 4G (I9305)}
@@ -315,7 +319,7 @@ agree to the following:
\hline
- 7h &
+ 35h &
\begin{itemize}
\item{Make the the touch keys Linux driver work and upstream it in Linux.}
\end{itemize} & \\
@@ -350,18 +354,34 @@ agree to the following:
7h &
\begin{itemize}
\item{
- port and cleanup the the Galaxy SIII (i9300) modem Linux driver from 4.16 to
- 5.0
+ Port the the Galaxy SIII (i9300) modem Linux driver from 4.16 to 5.0
}
\end{itemize} &
The driver to port is available at \url{https://github.com/fourkbomb/linux/}
- in the modem branch \\
+ in the modem branch.
+ \\
+
+ \hline
+ 70h &
+ \begin{itemize}
+ \item{
+ Cleanup the the Galaxy SIII (i9300) modem Linux driver.
+ }
+ \end{itemize} &
+ The code quality of the modem driver for Linux 4.16 is bad.
+ When doing that kind of work, having bad code quality at the begining is
+ normal. It then needs to be cleaned up afterward. As Simon Shields didn't
+ finish his work, the code still needs to be cleaned up and completed.
+ Upstreaming the code will probably need to be done in a later time as it
+ requires rearchitecturing part of the code.
+ \\
\hline
- 157h &
+
+ 160h &
\begin{itemize}
- \item{port libsamsung-ril and libsamsung-ipc to Android 9}
+ \item{Port libsamsung-ril and libsamsung-ipc to Android 9}
\item{Make the modem driver and libsamsung-ipc work together}
\end{itemize} &
The port of libsamsung-ipc and libsamsung-ril will be attempted
@@ -370,8 +390,15 @@ agree to the following:
approach like that\cite{hal-types}\cite{HIDL}.
This issue will need to be looked in more details at later.
- This will be done to be able to focus more on the modem driver,
- port and if possible work to upstream it.
+ This will be done to be able to focus more on the modem driver
+ port to be able to test it.
+
+ Then the compatibility layer will be removed and patches will be merged step
+ by step in libsamsung-ril and libsamsung-ipc.
+
+ Until the modem driver is upstreamed, we will probably need to keep some of
+ the patches in a branch, as the kernel API will most probably change as the
+ driver probably need to be converted to use the network device API.
Later (which is not part of this deliverable), we will then need
to look if the approach chosen is already using a "binderized HAL"
@@ -416,7 +443,7 @@ agree to the following:
\hline
- 6h &
+ 6h &
\begin{itemize}
\item{Add internal WiFi support and validate the functionality}
\end{itemize} &
@@ -439,11 +466,11 @@ agree to the following:
reliability issues, which seem to depend a lot on the device
used and the charge of the battery. This is most probably due
to the fact that some devices aren't able to provide enough
- current to the external dongle. More research will be needed
- later (which is not part of this deliverable) to better
- understand and characterize the issue for some of the devices.
- If no big software issues are encountered, I will try to make
- it work as well as on Replicant 6.
+ current to the external dongle.
+ More research will be needed later (which is not part of this deliverable) to
+ better understand and characterize the issue for some of the devices.
+ If no big software issues are encountered, I will try to make it work as well
+ as on Replicant 6.
This is required for basic usage as the Internal WiFi doesn't
work without nonfree firmwares. \\
@@ -467,24 +494,62 @@ agree to the following:
\hline
- 7h &
+ 35h &
\begin{itemize}
\item{rebrand LineageOS as Replicant}
- \end{itemize} & \\
+ \end{itemize} &
+ The branding was done extensively in Replicant 6 and vendor/lineageOS was
+ forked to vendor/replicant with almost all mention of LineageOS being changed,
+ including in the build system.
+ This is tricky to do. I tried to rebase the Replicant 6 patches for that on
+ top of Replicant 6, as merges were used but this doesn't look simple as the
+ patches contains merges from Replicant 4.2, and the build system extensively
+ depends on LineageOS strings.
+ But even if this takes too much time, it's still possible to do basic branding
+ such as changing the boot screen and some of the text.
+ \\
\hline
- 14h &
+ 70h &
\begin{itemize}
- \item{Find, remove and document proprietary software in the source code.}
- \end{itemize} & \\
+ \item{Find the repositories global licenses, remove and document proprietary
+ software}
+ \end{itemize} &
+ I started working on a script to do list repositories licenses for Replicant 6
+ that will then be adapted to Replicant 9. Android doesn't use packages like
+ GNU/Linux, and instead has all its source code composed of many git
+ repositories that are checked out in a single directory. Because of that we
+ need to write a script to identify the licesnes of each repositories.
+ It will not be as fine grained than GNU/Linux but it's a very good start and
+ it will most probably find some nonfree code that we will be able to remove.
+ \\
\hline
- 14h &
+ 35h &
\begin{itemize}
\item{Find, remove and document privacy issues in the source code.}
- \end{itemize} & \\
+ \end{itemize} &
+ This task consist in looking for privacy issues. This can be done for instance
+ by:
+ \begin{itemize}
+ \item{
+ Looking if issues we found in the past are still present in LineageOS 16
+ }
+ \item{Searching online for known issues in LineageOS 16}
+ \item{
+ Doing some network analysis of the trafic, for suspicious activities like:
+ }
+ \begin{itemize}
+ \item {At the first start}
+ \item {When calling someone}
+ \item {When using the predictive keyboard}
+ \end{itemize}
+ \end{itemize}
+ It may not find every privacy issues, but it's already better than what we did
+ before as it's proactive instead of being reactive.
+ \\
\hline