Replicant (operating system)



Replicant is a free operating system (OS) based on the Android mobile platform that intends to replace all proprietary Android components with free-software counterparts. It is available for several smartphones and tablet computers. It is written in the same programming languages as Android (from which it is forked indirectly). The modifications are mostly in the C language; the changes are mostly to the lower-level parts of the OS, such as the Linux kernel and drivers that use it.

The name Replicant is drawn from the fictional replicant androids in the Blade Runner movie. Replicant is sponsored and supported by the Free Software Foundation and partially by NLnet.

History
The Replicant project started in mid-2010 with an effort to consolidate various initiatives attempting to produce a fully free-as-in-freedom Android derivative for the HTC Dream device. The original team consisted of Bradley M. Kuhn, Aaron Williamson, Graziano Sorbaioli and Denis ‘GNUtoo’ Carikli. The project quickly led to the writing of replacement code for the non-free parts that were required to make HTC Dream functional. The first component to be replaced permitted audio to work without a proprietary library. Replicant originally provided its own FOSS application repository, which was later replaced by F-Droid. In June 2022, Replicant announced they had removed F-Droid.

The Radio Interface Layer software that handles communication with the modem was replaced by free code, thus making the telephony part usable. A library handling GPS was then adapted from free code that was originally written for another phone and permitted HTC Dream to have GPS working with Replicant.

Early versions of Replicant were based on Android Open Source Project code, while versions 2.2 (April 2011) and later used CyanogenMod as their base in order to make supporting more devices easier. In a blog post on February 1, 2017, the Replicant project said that the future versions of Replicant will be based on LineageOS, as the CyanogenMod project was discontinued.

As development continued, many members of the original Replicant team retired from the project, making Denis "GNUtoo" Carikli the only remaining member from the original team still actively working on the project. In April 2011, Paul Kocialkowski decided to get involved with the project and gradually became the main Replicant developer, after successfully porting it to the Nexus S and Galaxy S devices.

In 2014, however, Replicant was criticized for lagging behind. "While CyanogenMod is up to 4.4.4, Replicant is still stuck on Android 4.2. CM runs on just about everything, but Replicant is only supported by a handful of devices ranging from two to four years old. Plus, while Replicant aims to replace the proprietary drivers, it doesn't actually have a complete stack of drivers for any device." When the smartphone operating systems efforts of others, like Mozilla, failed to gain traction, Replicant continued.

Replicant is sponsored and supported by the Free Software Foundation, which also hosts Replicant's source code.

Releases
The following table lists the major releases of Replicant:

Security
In March 2014, Replicant developers found and closed a vulnerability present in a wide range of Samsung Galaxy products that allowed the baseband processor to read and write the device's storage, sometimes with normal user privileges and sometimes as the root user depending on device model. Replicant's lead developer Paul Kocialkowski claimed it was a backdoor, but this was contested by Dan Rosenberg, a senior security researcher at Azimuth Security, who said there was "virtually no evidence for the ability to remotely execute this functionality". There is some evidence of similar exploits of Apple hardware that did not involve operating system software, and the "methods detailed take direct advantage of Apple’s “firmware” or permanent software programmed onto the device, usually by the manufacturer." The founder of Ubuntu previously expressed similar concerns.

Development
On January 3, 2013, the project released Replicant 4.0 SDK as a fully libre replacement to Android SDK. The Replicant SDK was released in response to Google updating the license for add-ons and binaries under a proprietary agreement. Replicant's SDK was discontinued on April 28, 2017 in favour of the free SDK packaged by Debian.

Supported devices
Scope of the Replicant project has been gradually expanded to include support for new devices, starting with the Nexus One, Nexus S and Galaxy S. As of January 2014, the following devices are supported, with Wi-Fi and Bluetooth requiring proprietary firmware in order to work: The number of supported devices was doubled with version 6.0 in 2017.

Device requirements

 * The device must be supported by LineageOS/CyanogenMod officially (better) or via 3rd party repos
 * There must be a way to flash images (via bootloader or recovery) using a free program
 * The kernel must not be signed: the bootloader must not check the kernel signature
 * The kernel sources must have been released
 * The network type must be GSM, no CDMA phone can be supported for now