Version 19 of LineageOS has become available. LineageOS is the successor to CyanogenMod and an open source operating system for smartphones and tablets. It is based on a bare-bones version of Android and adds additional functionality, including root access, shortcuts in the notification bar, an expanded lockscreen, and various themes for the interface. Furthermore, there are often performance improvements compared to the software supplied by a manufacturer. LineageOS version 19 is based on Android 12 and the release notes for this release are as follows:
- Security patches from March 2021 to April 2022 have been merged to LineageOS 16.0 through 19.
- 19 builds are currently based on the android-12.1.0_r4 tag, which is the Pixel 6 series tag.
- WebView has been updated to Chromium 100.0.4896.58.
- We have completely redone the volume panel introduced in Android 12, and instead made it a side pop-out expanding panel.
- Our fork of the AOSP Gallery app has seen a large number of fixes and improvements.
- Our Updater app has seen a large number of bug fixes and improvements.
- Our web browser, Jelly has seen a number of bug fixes and improvements!
- We have contributed a number of changes and improvements back upstream to the FOSS etar calendar app we integrated some time back!
- We have contributed a number of changes and improvements back upstream to the seed vault backup app.
- Our Recorder app has seen numerous bug fixes, improvements, and features added.
- Android TV builds now ship with an ad-free Android TV launcher, unlike Google’s ad-enabled launcher.
- Android TV builds now ship with a key-handler that enables us to support custom-keys on a wide-array of bluetooth and IR remotes.
- Our adb_root service is no longer tied to the build type property.
- Our extract utilities now support extracting from most types of factory images/packed OTA images, simplifying device-bring up and blob-extraction greatly.
- Support for high-touch polling rate has been added to our SDK, allowing it to be enabled on supported devices.
- The AOSP Clang toolchain is now the default toolchain we use to compile our kernels.
- Qualcomm’s Snapdragon Camera has been dropped, and devices that used it previously will now use Camera2.
- Dark mode is now enabled by default.
- We have an entirely new Setup Wizard, with all new Android 12 styled icons, animations, and tons of new configurable pages!
- We have a brand new set of icons for almost all apps, even system ones!
- (18.1 too) We have a whole new default wallpaper, and a full set of wallpapers to choose from, check them out! These wallpapers are designed with Android 12’s Monet theming features in mind, so go try them out and see what accent color you like best!
- (18.1 too) Wi-Fi display is available for all devices which choose to opt-in, via either the Qualcomm proprietary interface or the newly restored legacy Miracast interface!
- (18.1 too) We now support custom charging sounds for different types of charging, cabled or wireless.
Our very popular privacy oriented built-in firewall, restricted networking mode, and per app data isolation features were all rewritten to account for AOSP’s new restricted networking mode and BPF†
Additionally, data restriction and network isolation features were merged into a single implementation. Combined, this means that one of our largest pain points each bringup should now be easier to forward port in future revisions!
Let’s talk about legacy devices…
Bad news lies ahead, sadly. I know many of you were expecting the usual myriad of legacy devices to surprise you with a 19 release, but at the moment they won’t be. This is due to AOSP’s removal of iptables in favor of eBPF† This is a newer, much more efficient kernel side implementation.
The issue lies in the fact that only devices with Linux kernel 4.9 or newer have the needed capabilities to make use of eBPF. Usually, these things can be backported to older kernel versions, but at the moment, even something as close to version 4.9 as 4.4 proved challenging due to the sheer number of commits and structure changes in BPF’s introduction. Those of you on a 4.4 kernel, fear not, a backport has been created, but for devices using kernel versions 3.18 and below, this may be the end of the road. If you become aware of a functional backport, or create one yourself, feel free to let us know via devrel(at)lineageos.org!
Additionally, iptables can’t be restored in any meaningful way, which makes things all the harder. At the moment, with some hacky workarounds (that we won’t be merging, as they break packet filtering, etc.) legacy devices can boot, but until a proper workaround/backport of BPF is brought to older kernel versions, don’t expect legacy devices to ship LineageOS 19.