Changelog 26 - Tailored Twelve, Audacious Automotive, Neat Networking, Devoted Developers

Written on April 26, 2022 by Nolen Johnson (npjohnson)

hero

Wow, LineageOS 19!

As always, welcome back! When we wrote our post last year, I think many of us had thought we wouldn’t be giving the same “trying times” spiel we gave last year, but c’est la vie. From our family to yours, we hope you’re navigating the pandemics and accompanying disasters as swiftly and safely as possible!

With that said, we have been working extremely hard since Android 12’s release last October to port our features to this new version of Android. Thanks to our hard work adapting to Google’s fairly large changes in Android 11, we were able to rebase our changes onto Android 12L much more efficiently. This led to a lot of time to spend on cool new features, as well as adapt our additions to Android 12’s new Material You design language!

Now, let’s talk about versioning conventions - To match AOSP’s versioning conventions, and due to the fact it added no notable value to the end-user we are dropping our subversion from a branding perspective.

As Android has moved onto the quarterly maintenance release model, this release will be “LineageOS 19”, not 19.0 or 19.1.

New Features!

  • 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.127.
  • 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 Seedvault 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 ton 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.

Networking Restrictions

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.

Deprecations

On the whole, we feel that the 19 branch has reached feature and stability parity with 18.1 and is ready for initial release.

LineageOS 17.1 builds stopped on January 31st, 2022, to allow space on our infrastructure to begin testing LineageOS 19.

LineageOS 19 will launch building for a decent selection of devices, mainly Google Pixel devices, with additional devices to come as they are marked as both Charter compliant and ready for builds by their maintainer.

Upgrading to LineageOS 19

To upgrade, please follow the upgrade guide for your device found here.

If you’re coming from an unofficial build, you need to follow the good ole’ install guide for your device, just like anyone else looking to install LineageOS for the first time. These can be found here.

Please note that if you’re currently on an official build, you DO NOT need to wipe your device, unless your device’s wiki page specifically dictates otherwise, as is needed for some devices with massive changes, such as a repartition.

Importance of the Wiki

Though the LineageOS Wiki has existed since our inception, we’d like to take this time to remind users to follow instructions on their device’s respective Wiki Page as given the complexity introduced by AOSP changes like System-As-Root, A/B Partition Scheme, Dynamic Partitions, and most recently Virtual A/B found on the Pixel 5 and other devices launching with Android 11, the instructions many of you are used to following from memory are either no longer valid or are missing very critical steps. As of 16.0, maintainers have been expected to run through the full instructions and verify they work on their devices. The LineageOS Wiki was recently further extended, and maintainers were given significantly more options to customize their device’s individual installation, update, and upgrade instructions.

Developers, Developers, Developers

Or, in this case, maintainers, maintainers, maintainers. We want your device submissions!

If you’re a developer and would like to submit your device for officials, it’s easier than ever. Just follow the instructions here.

The above also applies to people looking to bring back devices that were at one point official, but are no longer supported - seriously - even if it’s not yet completely compliant, submit it! Maybe we can help you review it.

After you submit, within generally a few weeks, but in most cases a week, you’ll receive some feedback on your device submission; and if it’s up to par, you’ll be invited to our communications instances, and your device will be forked to LineageOS’s official repos.

Don’t have the knowledge to maintain a device, but want to contribute to the platform? We have lots of other thing you can contribute to. For instance, our apps suite is always looking for new people to help improve them, or you can contribute to the wiki adding more useful information & documentation. Gerrit is always open for submissions! Once you’ve contributed a few things, send an email to devrel(at)lineageos.org detailing them, and we’ll get you in the loop.

Also, if you sent a submission via gmail over the last few months, due to some obscure issues, they didn’t make it to us, so please resend them!

Generic Targets

We’ve talked about these before, but these are important, so we will cover them again.

Though we’ve had buildable generic targets since 2019, in an effort to make LineageOS more accessible to developers, and really anyone interested in giving LineageOS a try, we’ve documented how to use them in conjunction with the Android Emulator/Android Studio!

Additionally, similar targets can now be used to build GSI in mobile, Android TV configurations, and Android Automotive (we’ll talk more about this later) making LineageOS more accessible than ever to devices using Google’s Project Treble. We won’t be providing official builds for these targets, due to the fact the user experience varies entirely based on how well the device manufacturer complied with Treble’s requirements, but feel free to go build them yourself and give it a shot!

Please note that Android 12 diverged GSI and Emulator targets. Emulator targets reside in lineage_sdk_$arch, while GSI targets reside in lineage_gsi_$arch.

Android Automotive!

Thanks to the hard work of contributors Tom Pratt and Al Sutton, LineageOS now supports Android Automotive build targets!

Note that this is Android Automotive, not the mobile device dependent Android Auto. You can read more about the difference here, but in essence, Android Automotive is a fully standalone car infotainment OS with extensible controls for common car peripherals.

Following the Emulator/Android Studio guide, you can build an Automotive GSI and try it for yourself!

Translations

Bilingual? Trilingual? Anything-lingual?

If you think you can help translate LineageOS to a different language, jump over to Crowdin and have a go! If your language is not supported natively in Android, reach out to us on Crowdin and we’ll take the necessary steps to include your language. For instance, LineageOS is the first Android custom distribution that has complete support for the Welsh (Cymraeg) language thanks to its community of translators.

Please, contribute to translations only if you are reasonably literate in the target language; poor translations waste both our time and yours.

Build roster

Added 19 devices

Device name Wiki Maintainers Moved from
ASUS Zenfone 5z (ZS620KL) Z01R rohanpurohit, Jackeagle, ThEMarD 18.1
ASUS Zenfone 8 sake ZVNexus, cryptomilk 18.1
F(x)tec Pro¹ pro1 BadDaemon, bgcngm, intervigil, mccreary, npjohnson, tdm 18.1
Google Pixel 2 walleye Eamo5 18.1
Google Pixel 2 XL taimen Eamo5 18.1
Google Pixel 3 blueline razorloves, cdesai, intervigil, mikeioannina 18.1
Google Pixel 3 XL crosshatch razorloves, cdesai, intervigil, mikeioannina 18.1
Google Pixel 3a sargo cdesai, mikeioannina, npjohnson 18.1
Google Pixel 3a XL bonito cdesai, mikeioannina, npjohnson 18.1
Google Pixel 4 flame cdesai, Eamo5, mikeioannina, npjohnson 18.1
Google Pixel 4 XL coral cdesai, Eamo5, mikeioannina, npjohnson 18.1
Google Pixel 4a sunfish PeterCxy, cdesai, mikeioannina 18.1
Google Pixel 4a 5G bramble aleasto, mikeioannina 18.1
Google Pixel 5 redfin aleasto, mikeioannina 18.1
Google Pixel 5a 5G barbet aleasto, mikeioannina 18.1
Lenovo Z5 Pro GT heart ThEMarD, optionaltoast 18.1
Lenovo Z6 Pro zippo Lucchetto, ThEMarD 18.1
Moto G6 Plus (XT1926-2/3/5/6/7/8/9) evert Jleeblanch 18.1
Moto G7 (XT1962-1/4/5/6) river erfanoabdi, npjohnson, SyberHexen 18.1
Moto G7 Power (XT1955-1/2/4/5/7) ocean erfanoabdi, npjohnson, SyberHexen 18.1
Moto G7 Plus (XT1965-2/3/6) lake Jleeblanch, npjohnson 18.1
Moto One Power chef Hasaber8 18.1
Moto One Action troika Stricted, npjohnson 18.1
Moto One Vision/Motorola P50 kane Stricted, npjohnson 18.1
Moto X4 payton erfanoabdi, ThEMarD 18.1
Moto Z2 Force (XT1789-02/3/4/5/6/7) nash npjohnson, erfanoabdi 18.1
Moto Z3 Play beckham Jleeblanch 18.1
Nokia 6.1 (2018) PL2 npjohnson, theimpulson 18.1
Nokia 6.1 Plus DRG npjohnson, theimpulson 18.1
OnePlus 6 enchilada LuK1337 18.1
OnePlus 6T fajita EdwinMoq 18.1
Razer Phone 2 aura mikeioannina, npjohnson 18.1
Samsung Galaxy Tab S5e (LTE) gts4lv bgcngm, LuK1337 18.1
Samsung Galaxy Tab S5e (Wi-Fi) gts4lvwifi bgcngm, LuK1337 18.1
SHIFT SHIFT6mq axolotl amartinz, joey 18.1
Sony Xperia XA2 pioneer LuK1337, Stricted, cdesai 18.1
Sony Xperia XA2 Plus voyager LuK1337 18.1
Sony Xperia XA2 Ultra discovery LuK1337 18.1
Sony Xperia 10 kirin LuK1337 18.1
Sony Xperia 10 Plus mermaid LuK1337 18.1
Xiaomi Poco F1 beryllium bgcngm, warabhishek 18.1

Added 18.1 devices

Device name Wiki Maintainers Moved from
ASUS ROG Phone 3 obiwan aleasto, OrdenKrieger  
ASUS Zenfone 5Z (ZS620KL) Z01R rohanpurohit, Jackeagle, ThEMarD 17.1
ASUS Zenfone Max M2 X00P danascape  
ASUS Zenfone Max M2 X01AD danascape  
ASUS Zenfone Max Pro M1 X00TD Vivekachooz 16.0
ASUS Zenfone Max Pro M2 X01BD Rk585 16.0
BQ Aquaris X bardock eloimuns, Quallenauge, Team aquaris-dev 17.1
BQ Aquaris X Pro bardockpro Quallenauge, Team aquaris-dev 17.1
Fairphone 2 FP2 chrmhoffmann 17.1
Fairphone 3 FP3 dk1978 17.1
Google Pixel sailfish npjohnson 17.1
Google Pixel XL marlin npjohnson 17.1
Lenovo P2 kuntao mikeioannina, highwaystar 17.1
Lenovo Yoga Tab 3 Plus LTE YTX703L Quallenauge, Vladimir Oltean 16.0
Lenovo Yoga Tab 3 Plus Wi-Fi YTX703F Quallenauge, Vladimir Oltean 16.0
Lenovo Z5 Pro heart ThEMarD, optionaltoast  
Lenovo Z6 Pro zippo Lucchetto, ThEMarD  
LG G3 (AT&T) d850 HardStyl3r, firebird11 17.1
LG G3 (Canada) d852 HardStyl3r, firebird11 17.1
LG G3 (International) d855 HardStyl3r, firebird11 17.1
LG G3 (Korea) f400 HardStyl3r, firebird11 17.1
LG G3 (Sprint) ls990 HardStyl3r, firebird11 17.1
LG G3 (T-Mobile) d851 HardStyl3r, firebird11 17.1
LG G3 (Verizon) vs985 HardStyl3r, firebird11 17.1
Motorola Edge racer erfanoabdi, Jleeblanch, SyberHexen 17.1
Motorola Edge S nio dianlujitao  
Motorola G 5G kiev SyberHexen, Jleeblanch  
Motorola G 5G Plus nairo SyberHexen  
Motorola Moto E5 Plus (XT1924-3/9) ahannah Jarl-Penguin, karthick111, electimon, wh0dat 17.1
Motorola Moto E5 Plus (XT1924-6/7/8) hannah Jarl-Penguin, karthick111, electimon, wh0dat 17.1
Motorola Moto E5 Plus (1924-1/2/4/5) rhannah Jarl-Penguin, karthick111, electimon, wh0dat 17.1
Motorola Moto G5 cedric Jarl-Penguin 17.1
Motorola Moto G5S montana Jarl-Penguin, wiktorek140 17.1
Motorola Moto X 2014 victara jro1979, linckandrea, npjohnson 17.1
Nokia 6.1 Plus DRG npjohnson, theimpulson  
OnePlus 9 lemonade tangalbert919  
OnePlus 9 Pro lemonadep LuK1337, bgcngm  
Samsung Galaxy A5 (2017) a5y17lte filiprrs 17.1
Samsung Galaxy A7 (2017) a7y17lte filiprrs 17.1
Samsung Galaxy M20 m20lte SamarV-121  
Samsung Galaxy Note 3 LTE (N9005/P) hlte haggertk, npjohnson 17.1
Samsung Galaxy Note 3 LTE (N9008V) hltechn haggertk, npjohnson 17.1
Samsung Galaxy Note 3 LTE (N900K/L/S) hltekor haggertk, npjohnson 17.1
Samsung Galaxy Note 3 LTE (N900T/V/W8) hltetmo haggertk, npjohnson 17.1
Samsung Galaxy S III Neo (Dual SIM) s3ve3gds PythonLimited, fcuzzocrea, Teledurak 17.1
Samsung Galaxy S III Neo (Samsung Camera) s3ve3gjv PythonLimited, fcuzzocrea, Teledurak 17.1
Samsung Galaxy S III Neo (Sony Camera) s3ve3gxx PythonLimited, fcuzzocrea, Teledurak 17.1
Samsung Galaxy S5 Active (G870F) klteactivexx javelinanddart, npjohnson 17.1
Samsung Galaxy S5 LTE (G9006V/8V) kltechn haggertk 17.1
Samsung Galaxy S5 LTE (G900AZ/S902L) klteaio haggertk 17.1
Samsung Galaxy S5 LTE (G900F/M/R4/R7/T/V/W8) klte haggertk 17.1
Samsung Galaxy S5 LTE (G900I/P) kltedv haggertk 17.1
Samsung Galaxy S5 LTE (G900K/L/S) kltekor haggertk 17.1
Samsung Galaxy S5 LTE (SC-04F/SCL23) kltekdi haggertk 17.1
Samsung Galaxy S5 LTE Duos (G9006W/8W) kltechnduo haggertk 17.1
Samsung Galaxy S5 LTE Duos (G900FD/MD) klteduos haggertk 17.1
Samsung Galaxy S10e beyond0lte Linux4  
Samsung Galaxy S10 beyond1lte Linux4  
Samsung Galaxy S10+ beyond2lte Linux4  
Samsung Galaxy S10 5G beyondx Linux4  
SHIFT6mq axolotl amartinz, joey  
Sony Xperia XZ2 akari olivier97, sjllls 17.1
Sony Xperia XZ2 Premium aurora dtrunk90, sjllls  
Sony Xperia XZ2 Compact xz2c olivier97, sjllls 17.1
Sony Xperia XZ3 akatsuki dtrunk90, sjllls 17.1
Sony Xperia Z2 sirius ArianK16a  
Sony Xperia Z3 z3 Tom1000, Myself5 17.1
Sony Xperia Z3 Compact z3c ArianK16a 17.1
Xiaomi Mi A1 tissot abhinavgupta371 17.1
Xiaomi Mi A2 jasmine_sprout mikeioannina  
Xiaomi Mi 6 sagit ArianK16a, Elektroschmock 17.1
Xiaomi Mi 6X wayne Isaac Chen 17.1
Xiaomi Mi 10T / Mi 10T Pro / Redmi K30S Ultra apollon Ramisky, SebaUbuntu  
Xiaomi Mi 10T Lite / Mi 10i / Redmi Note 9 Pro 5G gauguin Lynnrin  
Xiaomi Mi 10 Lite 5G monet xSylla  
Xiaomi Mi MIX 2 chiron mikeioannina, wight554 17.1
Xiaomi Mi Note 3 jason dianlujitao 17.1
Xiaomi POCO F2 Pro / Redmi K30 Pro / Redmi K30 Pro Zoom Edition lmi SebaUbuntu  
Xiaomi POCO F3 / Redmi K40 / Mi 11X alioth SebaUbuntu  
Xiaomi POCO M2 Pro / Redmi Note 9S / Redmi Note 9 Pro / Redmi Note 9 Pro Max miatoll dereference23  
Xiaomi POCO X3 NFC surya Shimitar, Subhajeetmuhuri  
Xiaomi POCO X3 Pro vayu SebaUbuntu  
Xiaomi Redmi Note 5 Pro whyred srfarias, SebaUbuntu 18.1
Xiaomi Redmi Note 6 Pro twolip DD3Boh 17.1
Xiaomi Redmi Note 7 lavender Giovix92, UltraGamerHD 17.1
Xiaomi Redmi Note 8 / 8T ginkgo DarkJoker360, danascape 17.1
ZUK Z2 Plus z2_plus DD3Boh 17.1

Removed 17.1 devices

Device name Wiki
HTC One 2014 m8
HTC One 2014 (Dual-SIM) m8d
Huawei Honor 5X kiwi
LeEco Le 2 s2
Motorola Moto E 2015 LTE surnia
Motorola Moto G 2015 osprey
Motorola Moto G3 Turbo merlin
Motorola Moto G4 Play harpia
Motorola Moto X Play lux
Motorola Moto Z griffin
Nubia Z17 nx563j
NVIDIA Shield TV (2015 / 2015 Pro / 2017) / Jetson TX1 [Android TV] foster
NVIDIA Shield TV (2015 / 2015 Pro / 2017) / Jetson TX1 [Tablet] foster_tab
NVIDIA Shield TV 2019 Pro [Android TV] mdarcy
NVIDIA Shield TV 2019 Pro [Tablet] mdarcy_tab
NVIDIA Jetson Nano / Nano 2G [Android TV] porg
NVIDIA Jetson Nano/ Nano 2G [Tablet] porg_tab
NVIDIA Jetson TX2 / TX2 NX [Android TV] quill
NVIDIA Jetson TX2 / TX2 NX [Tablet] quill_tab
OnePlus Nord avicii
Realme 2 Pro RMX1801
Samsung Galaxy A3 (2016) a3xelte
Samsung Galaxy A5 (2016) a5xelte
Samsung Galaxy A7 (2016) a7xelte
Samsung Galaxy J7 (2015) j7elte
Samsung Galaxy S5 Neo s5neolte
Sony Xperia Tablet Z2 LTE castor
Sony Xperia Tablet Z2 Wi-Fi castor_windy
Wingtech Redmi 2 wt88047
Wileyfox Swift crackling
Xiaomi Redmi K20 / Mi 9T davinci
Yandex Phone Amber