Replicant 6.0 is moving forward and quite some work has been done over the last months.
Only the Galaxy S3 was supported for a very long time. Recently, support for the Galaxy S2 was added. This was made possible because two community members, Grim Kriegor and dllud, sent me a device. The initial work on the device by another community member, Jookia, also gave me a head start for the port.
In December, I attended the 8th Open Hard- and Software Workshop which was a great opportunity to discuss and work on various topics related to the GTA04. I assisted Lukas Märdian from Goldelico with porting Replicant 6.0 to the GTA04 and at the end of the workshop, we were able to boot Replicant 6.0 and had basic functionality working. Lukas continues to work on the port and I'm planning to integrate his changes and get Replicant 6.0 ready for the GTA04.
After you have installed Replicant on one of the supported devices, you will
notice that WiFi doesn't work. The reason is that the WiFi chips on all
supported devices need a proprietary firmware to be loaded onto the chip. As
Replicant only ships free software, this firmware is not included in an image.
An alternative is to use an external WiFi dongle with an USB OTG cable. A free
firmware exists for the AR9271 chipset and various WiFi adapters use this
chipset. Tehnoetic provided patches for initial support in Replicant 4.2.
For Replicant 6.0, I went a different way and backported the necessary changes
from the 3.4 Linux kernel to the kernel for the Galaxy S2 and S3. Such dongles
are now operable with these two devices. Fil Bergamo is working on scripts to
make it easy to use WiFi adapters. You can find more information in this
forum thread.
The previous blog postalready metioned that I'm working on the graphics
acceleration. Mesa llvmpipe can now be used as an alternative to the Android
software renderer. Unfortunately, llvmpipe is still too slow and the Android
software renderer stays the default graphics renderer for now. But it's
possible to use some more apps like Firefox-based browsers with llvmpipe that
wouldn't work with the Android software renderer. Llvmpipe also makes it
possible to use a recent webview. For now, Replicant 6.0 is stuck with the
last webview version that worked with the Android software renderer.
Optimizing llvmpipe for ARM likely would make it fast enough. Any help in this
regard would be greatly appreciated!
Another long-standing issue is related to the software rendering: QR code
scanning or in general barcode scanning didn't work with Replicant because the
software renderer requires a camera preview format that is incompatible with
barcode scanner apps. I was able to fix it by doing the neccessary conversions
of preview frames that are requested by barcode scanner apps.
I moved the build system from Debian Jessie to the upcoming Debian release with the codename Stretch. The Debian Android Tools team has packaged quite a few more build tools in Stretch which can now be used instead of prebuilt binaries from the default Android toolchain. The whole effort makes the Replicant build process more trustworthy and ensures that all build tools are verifiable and built using only free software.
Besides fixing various bugs, I'm especially committed to making Replicant more secure. Originally, I started contributing to Replicant by submitting patches for known security issues in Replicant 4.2. Security updates for the kernel and the Android system are included in Replicant 6.0 as quickly as possible, but delays can always happen due to various reasons. Furthermore, I started to include some security/privacy enhancements from CopperheadOS.
Porting Replicant 6.0 to more devices is a priority right now. Besides devices
that are already supported by Replicant 4.2, some new targets are evaluated.
An interesting target is the LTE variant of the Galaxy S3 (GT-I9305).
Currently, only the non-LTE variant (GT-I9300) is supported by Replicant and
Replicant doesn't support any 4G-enabled phone yet. It's possible to build a
Replicant 6.0 image for the LTE variant, but it lacks support for the modem.
The main task of the port will be to write a free implementation of the modem
interface for telephony, SMS and mobile data.
I also played with the mainline kernel on the Galaxy S3 and I was able to boot
Replicant 6.0 on top of the Linux 4.8 kernel with a few patches so that it was
usable with very limited functionality. I will share more results from this
endeavor in the future.
Replicant is based on CyanogenMod 13.0. As the CyanogenMod project was
discontinued, future Replicant 6.0 versions will be based on its successor,
LineageOS 13.0.