LineageOS operating system: a major open source project that deserves all our attention

The LineageOS project was born from CyanogenMod’s ashes one year ago. And since, it has been embraced by a growing community of contributors and users. Built from Android open source code, it intends to offer a full and independent operating system for mobiles. What is LineageOS? how to install it? what can be expected? Why is it a major open source project?

Let’s have a look…

(last edit: “Leaving Apple and Google: my eelo odyssey!“)

The Android project, created in 2003 by Andy Rubin and others, was aquired by Google and has been their answer to Apple’iOS on the smartphone. Based on the Linux Kernel, Android has been for a while available as Open Source software. But it missed an integrator to build credible ROMs (flashable system images). The reason is that specific adaption is always needed to support a particular hardware device and Google left this task to hardware makers. CyanogenMod started to fill that gap but, despite a large adoption from users, it didn’t succeed to find a viable business, and closed doors by the end of 2016.

By chance, they helped start LineageOS, which was forked from latest CyanogenMod sources. Then, a number of developers and maintainers joined the new project, adding news features, fixing bugs, adapting it for a particular device.

What can be expected from LineageOS?

Mostly everything! Well… we need to enter into some details of what is a smartphone operating system.

A smartphone operating system first relies on a kernel. Android is using a Linux kernel, with some patches and special configuration for specific needs: for example some resource-hungry components have been removed or rewritten, and some device drivers are included by default.

Then you have a graphical environment software that handles how applications can display text and images on the smarpthone screen. You also get an hardware abstraction layer that software applications can use to access various devices more easily, without writing some low-level code. For instance: access to the camera, access to GPS, access to accelerometer, acess to phone features…

And finally you get applications: this is what users see and use. They are either pre-installed, such as default a email application, a calendar, a web browser… or they can be installed from an application store, for instance from Google Play Store, F-droid (open source apps only), APKPure, APKMirror, Aptoide…

A LineageOS ROM provides all those system layers, from the kernel to pre-installed applications. And this is built from, mostly, open source software. Not entirely open source software, because most low-level device drivers are made by hardware makers and released as proprietary software, without sources.

This is the limit of LineageOS as an open source operating system: it will hardly ship with 100% open source low level drivers. There are some initiatives in that direction though, in particular the Replicant project plans to release a fully free Android distribution that will run on several devices .

How to install LineageOS ?

It’s not recommended to install LineageOS if you fear playing with low-level stuff on your smartphone! Plus, you will probably void your warranty etc. etc.

If you feel comfortable with all that, what you need to have in mind is:

  1. first verify wether your device is supported completely or partially or not by LineageOS. LineageOS is maintaining installation documentation for all officially supported devices. So first check if your device is on that list (or order a compatible device…). A list of of both officially and unofficially supported devices is also maintained at GetDroidTips (but where are the source for unsupported devices ROMs? tell me if you have the answer…)
  2. check the installation documentation! For instance, if you plan to install LineageOS for the Xiaomi Mi Mix, you’ll get all what you need here: all links to download LineageOS builds for this device, installation documentation…

Before installing LineageOS the first step for a number of devices will generally be to install a new bootloader such as TWRP. This open source utility can flash your device partitions with a new system and applications.

This will also allow you to backup your system with its original data before flashing the new ROM.

If everything went fine during the flashing  process, the magic will happen and you will see the LineageOS logo animation on your screen after a restart:

How to build it?

Now, maybe you want to replace the animated logo by your custom one, or modifiy applications installed by default, or change the look & feel of your system? Get the sources, do your changes, rebuild and flash!

LineageOS is providing all necessary instructions to rebuild the entire ROM for each supported device. Be aware though that you’ll need  a lot of RAM and a lot of disk space (more than 100GB, yes GB). On a reasonably fast modern multicore system with 32GB RAM this will take between 20 minutes for a partial build to 40 to 60 minutes for a fresh build (which is not that long considering that you are recompiling a full operating system with several applications).

What are the limits of LineageOS?

LineageOS is now mature enough to be used as viable operating system for your smartphone, assuming that it is officially supported.

Nevertheless, there are some issues on some devices with some hardware, that can make some applications unstable. For instance, one known issue on the LeEco Le2 is the camera support. It works, but sometimes still crashes with some camera applications. The reason is that the camera low-level driver is not open source. Therefore, LineageOS developers sometimes need to do some reverse engineering to support some hardware peripherals, which is not an easy task at all.

Another issue, which is more “philosophical” is that Android is tightely linked to Google by design and it’s still difficult to resist installinging Google apps or logging in with a Google account system-wide.

Another consequence of this situation, if you really don’t want Google stuff (like me), is that you’ll have to use an alternative APK store (such as APKPure or Aptoide or F-Droid). And some applications (some games) will have troubles if you don’t have Google Play Services installed. Some will only complain, others with fail to run. But for most “mainstream apps”, it’s not a problem. However, a new open source project is addressing this concern: microG  provides an open replacement for Google Play services.

Give it a try, and contribute!

LineageOS is a great initiative to provide an alternative to “Android by Google” and is already a viable option for people who can accept some glitches on their OS. And as the community of LineageOS developers and contributors is growing and since the project has turned into a well structured open source project, my bet is that it will probably be turn into a real alternative for everyone soon, and has even the potentiel to become the flagship operating system for smartphones, the open source way. It’s in a similar state as Linux was in the middle of the 90s, so it’s very interesting to see what’s going to happen.

The LineageOS website is waiting for you, and you will find a huge community of Android developers on XDA forums.

We can all contribute and make it great.

— Gaël Duval – Interested in open source, open mobile operating systems, data privacy? Follow me on Twitter.

2 Replies to “LineageOS operating system: a major open source project that deserves all our attention”

Leave a Reply

Your email address will not be published. Required fields are marked *