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.[7][8] It is available for several smartphones and tablet computers.[9] It is written in the same programming languages as Android (from which it is forked indirectly). The modifications are mostly in the C language;[10] the changes are mostly to the lower-level parts of the OS, such as the Linux kernel and drivers that use it.

Replicant
Replicant logo
DeveloperDenis Carikli, Joonas Kylmälä, Fil Bergamo, Paul Kocialkowski[1]
OS familyAndroid (Linux)
Working stateCurrent
Source modelOpen source
Initial releaseMid-2010; 14 years ago (2010)
Latest release6.0 0004[2] (June 3, 2022; 22 months ago (2022-06-03)) [±]
Repository
Package managerAPK
Kernel typeMonolithic (Linux)
UserlandBionic C library,[3][4] mksh shell,[5] native core utilities with a few from NetBSD[6]
LicenseApache License 2.0, GNU GPLv2, and various other licenses
Official websitewww.replicant.us
Replicant 6.0 on Samsung Galaxy Note II.
An example of phone information in Replicant, including a brief hardware description

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

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.[14][15][16][17] 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.[18][19][self-published source][20][self-published source] In June 2022, Replicant announced they had removed F-Droid.[21]

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[22] and permitted HTC Dream to have GPS working with Replicant.[20][self-published source]

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.[23][24][25] 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.[26]

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.[1][27][28]

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."[29] When the smartphone operating systems efforts of others, like Mozilla, failed to gain traction, Replicant continued.[30]

Replicant is sponsored and supported by the Free Software Foundation,[7] which also hosts Replicant's source code.[31][32]

Releases

The following table lists the major releases of Replicant:

VersionRelease dateBased onNotes
Old version, no longer maintained: 2.2[33]26 April 2011Android 2.2 "Froyo"
Old version, no longer maintained: 4.0[34]15 November 2012Android 4.0 "Ice Cream Sandwich"Five updates have been released; the last one, 0005, was released on September 29, 2013.[35]
Older version, yet still maintained: 4.2[36]19 January 2014CyanogenMod 10.1/Android 4.2.2 "Jelly Bean"Four updates have been released; the last one, 0004, was released on September 1, 2015.[37]
Current stable version: 6.0[38]7 May 2017LineageOS 13.0/Android 6.0.1 "Marshmallow"Three updates have been released; the most recent one, 0003, was released on December 10, 2017. Two release candidates for 0004 have been released. RC2 was released on July 22, 2020.[2]
Future release: 10[39]N/ALineageOS 17.1/Android 10Replaced graphics driver for improved performance.
Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future release

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,[40] 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,[40][41][42][43][22] 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".[44] 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."[45] The founder of Ubuntu previously expressed similar concerns.[46]

Development

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

Hardware support

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:[9] The number of supported devices was doubled with version 6.0 in 2017.[50]

DeviceDevice ClassCodenameReplicant version2D graphics3D graphicsSoundTelephonyMobile DataNFCGPSSensorsCameraWi-FiBluetooth
Nexus SSmartphonecrespo4.2YesNoYesYesYesProprietary[51]
free userspace
NoYesYesProprietaryProprietary
Samsung Galaxy SSmartphonegalaxysmtd4.2YesNoYesYesYesNoYesYesProprietaryProprietary
Samsung Galaxy S2Smartphonegalaxys26.0Yes (fast)NoYesYesYesNoNoYesYesProprietaryProprietary
Samsung Galaxy Note (original)Smartphonen70004.2Yes (slow)NoYesYesYesNoNoYesNoProprietaryProprietary
Galaxy NexusSmartphonemaguro4.2YesNoYesYesYesYesNoYesNoProprietaryProprietary
Samsung Galaxy Tab 2 (7.0)Tabletp31004.2Yes (fast)NoYesYesYesNoYesNoProprietaryProprietary
Samsung Galaxy Tab 2 (10.1)Tabletp51004.2Yes (slow)NoYesYesYesNoYesNoProprietaryProprietary
Samsung Galaxy S3Smartphonei93006.0YesNoYesYesYesYesNoYesYes (back) / proprietary (front)ProprietaryProprietary
Samsung Galaxy Note 2Smartphonen71006.0YesNoYesYesYesYesNoYesYes (back) / proprietary (front)ProprietaryProprietary
Goldelico OpenPhoenux GTA04Smartphonegta044.2YesNoYesWork in progressWork in progressYesWork in progressWork in progressProprietaryProprietary

Device requirements

  • The device must be supported by LineageOS/CyanogenMod officially (better) or via 3rd party repos[52]
  • 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

See also

References

External links