Test-driving the Android free software alternative Replicant

Installing the System

The installation guide on the Replicant homepage envisions two approaches. I will be restricting this article to the easier approach, which uses adb sideload. After entering the recovery, select the Install ZIP item, followed by Install ZIP from Sideload. Then, change to your Linux computer and dispatch the image. For the Galaxy Nexus the command is:

adb sideload replicant-4.2-maguro.zip

This action takes a couple of minutes; the system is then installed and set up. If everything works, you will see the Recovery reappear. Then select the Reboot System Now item to boot Replicant.

What to Expect…

Once you have started up Replicant 4.2, you might expect the Galaxy Nexus to become something like a feature phone. In fact, you can do very little, apart from actually making calls – a lack of 3D acceleration means that there are no games, and if you want to totally do without proprietary firmware, then WiFi, Bluetooth and GPS are also "off limits." Due to a lack of graphic acceleration, Replicant shows a very slow response, and working with it is not much fun. The Replicant project does not conceal the limitations; in fact the project provides a detailed table on the features available with the Galaxy Nexus (Table 1) [8].

Table 1

Galaxy Nexus Support

Component

Name

Source

Status

SoC

TI OMAP 4460

Linux kernel

Linux kernel support

GPU

PowerVR SGX540

http://wiki.cyanogenmod.org/w/Maguro_Info

Linux kernel support, proprietary userspace

Audio Codec

TWL6040

Linux kernel

Linux kernel support (ALSA)

Modem

XMM6260

Linux kernel

Free userspace implementation: Samsung-RIL/libsamsung-ipc

WiFi

BCM4330

Linux kernel

Linux kernel support, proprietary loaded firmware

Bluetooth

BCM4330

Linux kernel

Linux kernel support, proprietary loaded firmware

NFC

PN544

Android userspace

Linux kernel support

GPS

GSD4t

Android userspace

Proprietary userspace, no free implementation: GSD4t

Accelerometer

BMA250

Linux kernel

Linux kernel support, free userspace

Compass

YAS530

Kernel sources

Linux kernel support, free userspace

In my case, I also had a problem creating screenshots. It looked like the factory reset had not worked properly. All the photos in screenshots from the previous system were still in place, and USB debugging was still enabled. A second attempt led to the same results. Apparently, this problem was not due to permissions but to the fact that the Replicant system does not have the required graphics drivers to access the screen buffer. A second attempt with the Dalvik Debug Monitor revealed only a fuzzy image.

The Replicant project readily admits that the system "… doesn't ship with applications that cover the wide spectrum of activities that a mobile device is expected to provide," presumably because the project does not have the resources to individually integrate and test every possible application for every possible phone. The developers recommend the F-Droid store [9] as a source or Android-compatible Free Software applications, although they provide no details or recommendations on which tools are best suited to run on Replicant.

Replicant or AOSP?

Replicant is more or less GNU Android. The software consists of 100% components that are available under the GPL or another Free license. Having said this, Replicant is not the only open source system based on Android. The Android Open Source Project (AOSP) is a project operated directly by Google that provides an open source edition of the Android OS. Like Replicant, AOSP provides a limited user experience that is not the same as a full-featured Android smartphone; however, AOSP is backed by the strength of the Google development team. If your phone will run AOSP, there is actually no reason for using Replicant, given the fact that the Replicant code base is fairly old and it supports just about a dozen devices. The AOSP website is primarily focused on the operating system, though, and you won't find the same level of information on compatibility with specific devices you will find at the Replicant site.

Replicant does not use the code from the Android Open Source project directly but instead relies on the Android derivative CyanogenMod as its code base (Figure 4). Put simply:

  Replicant = CyanogenMod – proprietary components

The difference feels much bigger however. Although most of the Galaxy Nexus's components work without any problems on CyanogenMod 11, they do not work on Replicant 4.2. In this case, doing without proprietary software does indeed limit the experience. Additionally, the Replicant system is not completely free. The bootloader and a modem remain proprietary.

Figure 4: The settings on Replicant look like CyanogenMod, which is not surprising since the system is based on CM.

Although free Linux drivers exist for WiFi and Bluetooth, the firmware is again proprietary. Last but not least, the GPS module needs proprietary drivers. It isn't much help that the Replicant files have appropriate checksums designed to detect the modifications. Given so many proprietary components, that is the least of all problems.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News