English

Why is FP2 kernel so old?


#1

Disclaimer: I don’t know much about how Android works.
The kernel for FP2 is version 3.4. The 3.4.x series was released in 2012 and was supported until 2016.
I wonder: why it is used in FP2 ? Are there any problem using a newer version ?
I don’t know very much about but a newer kernel should add new feature (I recently read about Anbox which uses containers) but should also receive some security patches directly from linux people.


Sailfish OS 2.1.3.7 alpha5 release
#2

It mostly boils down to the driver support from the SoC vendor (Qualcomm). When they offer their drivers and firmware for the Snapdragon 801 SoC only for Linux 3.4 then every system reseller who depends on Qualcomm’s software has to stick to this kernel. This is a typical problem of combining closed source, unflexible vendor specific software with Linux, which develops fast and is monolithic.

If only there were free drivers for Qualcomm’s modems they could be implemented into Linux - but this is not the case.


#3

The Linux kernel used by Android is not a “mainline” kernel, like those we see on regular GNU/Linux distros, but a very-modified kernel with a lot of modifications. For example, one of those adds is a feature for battery-optimization called wakelocks.

Roughtly said, for each Android version, Android developers take the code for one of the latest Linux kernel and patch it to re-add those modifications. Because that is a lot of work, kernel is usually never updated to a newer version.

This new version (fork) of the Linux kernel is unofficial and not officially supported by Linux maintainers.

However, that doesn’t mean it’s not supported at all, security-wise. Android developers backport regularly Linux security patches to older versions of their Android’s Linux kernels. Those updated kernel versions are included inside Android security monthly updates and registered in Android Security Bulletins.

TL;DR:

  • Android’s kernel is based on Linux but is not “mainline” Linux
  • Thus, Linux official support doesn’t apply to Android’s Linux kernel
  • Android’s Linux kernel is supported by Android developers
  • Android developers patch kernel monthly for security in Android Security Bulletins
  • Fairphone redistribute Android monthly security patches

I’m not sure about the validity of that statement. OEM drivers are user-space drivers (not in the kernel) in compliance of the HAL API (Hardware Abstraction Layer API), contrary to common Linux drivers that are included inside the kernel.

However, in the case of Fairphone and Qualcomm, Fairphone builds the OSes for the FP2 devices on top of CodeAurora sources. To simplify things, CodeAurora is an Android system modified by Qualcomm to work best with their SoCs. As it’s a full Android system, it in fact includes an specific version of the kernel. The kernel can be changed, but reasons as for why it isn’t are lesser stability and performance plus costly maintenance, mainly.


Lineage OS 16.x?
Official Android 7.1 <-> LineageOS 14.1
closed #4

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.