Changelog 26 - Tailored Twelve, Audacious Automotive, Neat Networking, Devoted Developers
Written on April 26, 2022 by Nolen Johnson (npjohnson)
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 our wiki 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 |