Development [r20] arter97 kernel for OnePlus 9 series

Search This thread

l_mike

Senior Member
Jan 6, 2013
260
142
Huawei Watch 2
Xiaomi Mi Pad 4
Daam, I don't use telegram, so I won't set up new account only for that. Will try to flash stock 11.2.9.9 via adb when I come from work.

-- update --

Did it differently - installed twrp, than flashed 11.2.10.10 dowloaded with Oxygen Updater, than flashed Magisk and flashed kernel with twrp.
Everything seems to be working fine with newest update. Took me like 5 mins.

I was going to try twrp anyway, so I had a good reason to do so :)
 
Last edited:

tathagatab

Senior Member
Dec 31, 2014
434
190
Kolkata
OnePlus 9 Pro
Daam, I don't use telegram, so I won't set up new account only for that. Will try to flash stock 11.2.9.9 via adb when I come from work.

-- update --

Did it differently - installed twrp, than flashed 11.2.10.10 dowloaded with Oxygen Updater, than flashed Magisk and flashed kernel with twrp.
Everything seems to be working fine with newest update. Took me like 5 mins.

I was going to try twrp anyway, so I had a good reason to do so :)
Which twrp did you install?
 

thirtythr33

Senior Member
Sep 3, 2011
348
153
New York
OnePlus 6T
OnePlus 9 Pro
Ok, so I've made a mistake not backing up files overwritten by this kernel. I can't install new update released today and downloaded with oxygen updater.
I thought all files would be overwritten by the updated but it seems they won't. Haven't had that problems with omega kernel.
download the newest full os update via oxygen updater and use local upgrade and that will restore those partitions along with updating to 11.2.10.10
 

l_mike

Senior Member
Jan 6, 2013
260
142
Huawei Watch 2
Xiaomi Mi Pad 4
I don't remember the exact notification, but it was something general like update failure (may differ cause I'm translating from Polish). Update was breaking at 0%. Downloaded twice to be sure.
With twrp it flashed but I got partition errors at the end. Tried to boot up, but it was booting for like a half hour. So I booted up to twrp again, flashed arter's kernel, than Magisk (thought I might need it) and restarted to system without any problems.
 

thirtythr33

Senior Member
Sep 3, 2011
348
153
New York
OnePlus 6T
OnePlus 9 Pro
I don't remember the exact notification, but it was something general like update failure (may differ cause I'm translating from Polish). Update was breaking at 0%. Downloaded twice to be sure.
With twrp it flashed but I got partition errors at the end. Tried to boot up, but it was booting for like a half hour. So I booted up to twrp again, flashed arter's kernel, than Magisk (thought I might need it) and restarted to system without any problems.
hm damn man that's strange, bc I always do that when I have arter's kernel to go back to stock. I haven't tried to update to 11.2.10.10 yet but I hope I don't have that issue, bc I'll have to payload dump vendor, dtbo, and boot out of 11.2.9.9 and reflash them if I run into that, but that's cumbersome and why I stick to just flashing a full update. did you try flashing 11.2.9.9 via local upgrade first or only try 11.2.10.10?
 

l_mike

Senior Member
Jan 6, 2013
260
142
Huawei Watch 2
Xiaomi Mi Pad 4
I had omega kernel till 11.2.9.9 and always performed local update with file downloaded by Oxygen Updater without any problems.
11.2.10.10 was the first update I've been doing on arter's. Thought it will set everything back to stock, but it seems it will not. I am curious if you get more luck with it.
 

thirtythr33

Senior Member
Sep 3, 2011
348
153
New York
OnePlus 6T
OnePlus 9 Pro
I had omega kernel till 11.2.9.9 and always performed local update with file downloaded by Oxygen Updater without any problems.
11.2.10.10 was the first update I've been doing on arter's. Thought it will set everything back to stock, but it seems it will not. I am curious if you get more luck with it.
yeah same thing here man, always use local upgrade to get back to stock. I'll let you know if I do but hopefully not lol
 

CZ Eddie

Senior Member
Sep 27, 2011
6,254
2,348
Austin, TX
I think u need to restore the stock kernel so u need to restore partitions. Next u can update and reflash the kernel. If u not backup search in this thread.
I just came here to ask for help with this.

I'm on TMO and I'm unable to install the latest OTA as well.
So, I tried installing my backup of the stock boot_a.img and boot_b.img.
But, the phone just gets stuck on the pink TMO boot animation and never finishes booting to the OS.

I'm new to OnePlus and this kernel.
What am I doing wrong?
 

Samuel Holland

Senior Member
Jun 26, 2013
601
303
lake charles
OnePlus 9 Pro
I just came here to ask for help with this.

I'm on TMO and I'm unable to install the latest OTA as well.
So, I tried installing my backup of the stock boot_a.img and boot_b.img.
But, the phone just gets stuck on the pink TMO boot animation and never finishes booting to the OS.

I'm new to OnePlus and this kernel.
What am I doing wrong?
With this kernel, don't forget about the dtbo and vendor_boot partitions. This kernel flashes those so taking the stock ones and flashing will get you back to stock along with boot(kernel) of course.
 
  • Wow
Reactions: CZ Eddie

r4p70r

Senior Member
hm damn man that's strange, bc I always do that when I have arter's kernel to go back to stock. I haven't tried to update to 11.2.10.10 yet but I hope I don't have that issue, bc I'll have to payload dump vendor, dtbo, and boot out of 11.2.9.9 and reflash them if I run into that, but that's cumbersome and why I stick to just flashing a full update. did you try flashing 11.2.9.9 via local upgrade first or only try 11.2.10.10?

I can confirm that updating to 11.2.10.10 from 11.2.9.9. doesn't work.
And installing 11.2.9.9 again also fails.
The Error message of the Local Upgrade is: Error installing the system update

I did backup my partitions before flashing arter's kernel with the app Partitions Backup. But unfortunately restoring the partitions with Partitions Backup doesn't work. It says successful but nothing changes (after rebooting).

Looks like the only way to upgrade is TWRP now...
 

thirtythr33

Senior Member
Sep 3, 2011
348
153
New York
OnePlus 6T
OnePlus 9 Pro
I can confirm that updating to 11.2.10.10 from 11.2.9.9. doesn't work.
And installing 11.2.9.9 again also fails.
The Error message of the Local Upgrade is: Error installing the system update

I did backup my partitions before flashing arter's kernel with the app Partitions Backup. But unfortunately restoring the partitions with Partitions Backup doesn't work. It says successful but nothing changes (after rebooting).

Looks like the only way to upgrade is TWRP now...
fml, updating via local upgrade is how I've done it for years, and I can't believe that flashing arter's kernel breaks that option. I knew that this kernel touches dtbo, vendor, and boot but I the fact that it now breaks the ability to reflash my oos to get back to stock just ruined my day. so is flashing full oos with twrp working for anyone? welp, I'll have to fastboot flash those partitions from a payload dump. anyone can chime in to let me know if I need to fastbootd flash vendor_boot and dtbo, or can I just fastboot flash all of them?
 
Last edited:

Fishawy

Senior Member
Mar 26, 2010
3,211
552
Melbourne
OnePlus 9 Pro
@r4p70r @thirtythr33 @l_mike There is another way via fastboot (provided of course you have the backup files). That's what I did yesterday with the help of others.

Be on 11.2.9.9, then do the following while in fastboot:

fastboot flash boot boot.img (this should be stock 11.2.9.9 kernel)
fastboot flash dtbo dtbo.img
fastboot flash vendor_boot vendor_boot.img


You'll boot into unrooted 11.2.9.9, then you can local upgrade to 11.2.10.10 and re-root.

If you're unsure about the slot, do fastboot getvar current-slot, then flash the correspondent commands/images accordingly.

By the way, the "Partitions Backup & Restore" app from play store does backup both slots for each, which puts your mind at ease when you do, so you get "dtbo_a" and "dtbo_b" and so on.

 
Last edited:

bugac

Senior Member
Jul 19, 2011
52
15
OnePlus 9 Pro
By the way, the "Partitions Backup & Restore" app from play store does backup both slots for each, which puts your mind at ease when you do, so you get "dtbo_a" and "dtbo_b" and so on.
it do backup well, bet when need to restore, this app just cant do it.
Also, as mentioned earlier restored vendor/boot/dtbo, upgraded localy, with twrp flashed magisk, and flashed arter kernel in FKM. For now it is the easest solution, and all app data saved
 
Last edited:
  • Like
Reactions: thirtythr33

Fishawy

Senior Member
Mar 26, 2010
3,211
552
Melbourne
OnePlus 9 Pro
it do backup well, bet when need to restore, this app just cant do it.
Also, as mentioned earlier restored vendor/boot/dtbo, upgraded localy, with twrp flashed magisk, and flashed arter kernel in FKM. For now it is the easest solution, and all app data saved
Yeah, restoring via fastboot is reliable. And it's basically the same steps: Restore, then upgrade locally, then for root you can either patch the kernel or flash Magisk via TWRP.

I only went for the kernel patch option because I was too paranoid to flash TWRP and risk losing my data. Is it safe to flash it without wiping anything?
 

tathagatab

Senior Member
Dec 31, 2014
434
190
Kolkata
OnePlus 9 Pro
@r4p70r @thirtythr33 @l_mike There is another way via fastboot (provided of course you have the backup files). That's what I did yesterday with the help of others.

Be on 11.2.9.9, then do the following while in fastboot:

fastboot flash boot boot.img (this should be stock 11.2.9.9 kernel)
fastboot flash dtbo dtbo.img
fastboot flash vendor_boot vendor_boot.img


You'll boot into unrooted 11.2.9.9, then you can local upgrade to 11.2.10.10 and re-root.

If you're unsure about the slot, do fastboot getvar current-slot, then flash the correspondent commands/images accordingly.

By the way, the "Partitions Backup & Restore" app from play store does backup both slots for each, which puts your mind at ease when you do, so you get "dtbo_a" and "dtbo_b" and so on.

I went into fastboot, then temp-booted twrp with

$ fastboot boot twrp*.img

Then used dd to restore the partitions (also backed up with dd). Rebooted to system, upgraded using downloaded full OTA.

Worked like a charm. No need to install another app for something you can do with a built-in command.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 12
    After a lot of test builds, I'm now marking r20 stable.

    Please re-read the OP for most up-to-date changes.

    Custom ROMs started to rebase their kernel to OxygenOS 12. Those ROMs are not supported, please keep that in mind.

    r20
    Backported MGLRU (a major change)
    Fixed full system crash on some custom ROMs (by LibXZR)
    Added a few memory patches to improve responsiveness (by kerneltoast)
    Fixed page allocation failures introduced from mainline
    SimpleLMK re-enabled after fixing soft random reboots
    Fixed excessive RMNET_DFC wakelock
    Fixed OnePlus charging code to handle worker failure
    Backported updated arm64 memory functions for better performance
    Disabled REFCOUNT_FULL to optimize performance over security
    Tuned swap/zram configurations
    Disabled zram writeback to avoid lags on long uptime
    Optimized pstore for better performance
    Added haptic level adjustment by flar2
    Reduced memory usage by matching CONFIG_CMA_AREAS to minimum required
    Re-enabled arm64 erratum that was previously disabled by mistake
    Fixed rare random reboots (zsmalloc patch by kerneltoast)
    Backported more BFQ commits from mainline
    Backported mm/mremap fix from mainline
    Now built with the latest Clang 14.0.7
    Device-tree updated to LA.UM.9.14.r1-19300-LAHAINA.QSSI13.0
    LA.UM.10.9.1.r1-02800-QCS610.0 merged
    LA.UM.9.16.r1-11000-MANNAR.0 merged
    Latest f2fs from Linux v5.19 merged
    Linux v5.4.197 merged
    Wi-Fi drivers updated to 2.0.8.29W
    Latest exFAT from Linux v5.19 merged
    Latest LRNG v45 merged
    2022-06-05 security patch merged
    8
    New beta release is up: r21b2.

    A few minor bugs have been fixed, but the new major change is the removal of BFQ in favor of Samsung's SSG I/O scheduler.

    Qualcomm has been using BFQ I/O scheduler for a while now, but its code complexity is quite huge, reaching 10K lines of code.
    This unfortunately, translates to more CPU overhead.

    With r21b1, BFQ is removed in favor of Samsung's in-house I/O scheduler: SSG.

    SSG is simple enough (only 1.1K lines of code) while still having some Android-specific optimizations such as background/foreground separation.

    I/O scheduler is a very complicated topic and synthetic benchmarks will not be able to capture the practical effects of one, hence the beta release.
    If you notice anything outside of ordinary (e.g., game stuttering, music dropping out, or major lags when updating apps from Google Play compared to r20), please report back.

    If all turns out fine, we can expect some battery improvements.

    r21b1 had the background profile set incorrectly. Please update.
    6
    r20b2 is up and I'm hoping it's the last beta for the r20 series.

    Some new CAF tag merges, LRNG v45 merge, v5.4.197 merge, latest f2fs merge, etc.

    Notable change perhaps is the removal of zram writeback.
    zram writeback was enabled to offload parts of memory to the UFS when it's unused for a long time, but it seems that it can contribute to lags overtime.

    It's been disabled for now.
    4
    New beta build is up: r21b3.

    Some patches were merged from a downstream fork of my kernel, made by buzzcut_s.

    Also in this beta, there's now a proactive compaction added to keep memory healthy and reduce occasional lags on long uptimes (especially noticeable since r20).

    Let's see how this fairs.
    3
    r21b3 had app compatibility issues due to v5.4.y/RNG changes, resulting in authentication failures/data reset/etc.

    r21b4 is up with those changes temporarily reverted.

    Thanks.
  • 56
    arter97-xda.png



    arter97 kernel for OnePlus 9 series running OxygenOS

    /* Features */

    Supports OnePlus 9 series
    Fully rebased kernel without unnecessary OnePlus code
    Latest CAF msm-5.4 kernel fully merged
    Latest Linux v5.4 subversion merged
    Latest Google’s security fix merged
    BBR as the default TCP network congestion control
    Features the latest WireGuard
    Modules support disabled for lighter kernel
    Latest Wi-Fi drivers from Qualcomm with customized config
    Built with Clang 13 and ThinLTO
    Power optimizations
    Memory management optimizations
    Latest SELinux subsystem backported from mainline
    Latest f2fs backported from mainline
    Latest BFQ I/O scheduler backported from mainline
    mmap/mremap backported from mainline for a major performance boost
    Touchscreen optimizations for lower latency
    Uses LRNG for better performance

    /* Details */

    - Fully rebased kernel without unnecessary OnePlus code -



    This kernel is not based on the stock OxygenOS kernel source provided by OnePlus. Instead, it’s based on the latest and greatest Qualcomm has to offer. Only the necessary parts from the OnePlus kernel have been cherry-picked, such as OnePlus 9 specific device drivers.

    This effectively kills all kernel modifications/optimizations from OnePlus, including the infamous app throttler.
    Due to the completely different base, this kernel will behave drastically different from other kernels, in both good and bad ways.


    - Power optimizations -


    This kernel makes some conscious decisions for reducing power consumption.

    First, the stock OnePlus configuration forces display-related processes to use the big cores exclusively.
    This configuration brings a huge power regression since it makes every frame dispatch to wake up and use the power-hungry cores.

    This kernel resets this profile to use the configuration Google recommends, which is to use the LITTLE cores exclusively instead. (Reverted in r2 as it seems like that little cores aren't enough to drive 120 Hz fluidly.)
    This kernel allows these processes to use little and middle cores (0-6), depending on the load.

    Second, this kernel disables wakelocks upon Wi-Fi’s RX unicast packet transmissions. qcom_rx_wakelock is one of the major culprits to increased idle power consumption. Although its total wakelock time is quite low, it's catched very frequently and prevents the system from entering suspend repeatedly.

    As dropping unicast or local ARP packets doesn’t pose practical issues on Android, this kernel disables qcom_rx_wakelock.

    Third, this kernel reduces the duration of the Bluetooth ISR wakelock from 2 seconds to 100ms. This was done from an observation that the average userspace response time from ISR is less than 10ms.
    My kernels have been doing this for years and no Bluetooth-related issues were reported.

    Fourth, the vibrator driver used in this kernel no longer controls the cpuidle driver. The stock kernel disables the cpuidle whenever the vibrator is used. This kernel disables it as the vibrator is not that sensitive to deadline misses.

    There are other small improvements throughout the kernel tree as well.


    - Memory management optimizations -


    This kernel marks the first Linux v5.4 based Android kernel to have MGLRU backported.

    MGLRU is a big deal in everything Linux related, especially for Android.
    Esper have a great article on what is MGLRU in a nutshell: https://blog.esper.io/android-dessert-bites-22-linux-memory-management-38419756/

    TL;DR:
    According to Google’s fleetwide profiling, multi-generational LRU yields an “overall 40% decrease in kswapd [the kernel daemon that manages virtual memory] CPU usage,” an “85% decrease in the number of low-memory kills at the 75th percentile,” and an “18% decrease in app launch times at the 50th percentile.”

    This kernel also disables LMKD and uses an in-kernel solution called SimpleLMK, made by kerneltoast. You can track how often SimpleLMK kicks in by monitoring:
    Code:
    /sys/module/lowmemorykiller/parameters/lmk_count

    This kernel also changes a lot related to swap and zram.

    The swap-related code has been backported from Linux v5.9 (link1, link2) to efficiently support fast swap device and allow swappiness over 100. This kernel currently sets swappiness to 160 on < 6GB of RAM, 120 on 8GB and 90 on 12GB.

    zram has been also backported from mainline Linux and further tweaked to use block device writeback. This is equivalent to the recent “RAM Plus” feature that companies have been marketing that uses the internal storage to extend RAM.

    This kernel uses zram writeback to offload idle pages (i.e., really, really unused RAM) to the internal storage. As it's extremely slow to bring pages back from UFS, writeback code works quite conservatively. It'll start to writeback pages that haven't been used for a day or two. It makes use of the hidden 2GB “last_parti” partition from the UFS storage.

    Along with zram writeback,
    this kernel also enables deduplication with xxHash. Each page stored in zram is checked for deduplication to further save memory. With these 2 features combined, RAM reaching 1GB is additionally saved, but your mileage may vary.

    zram writeback is temporarily disabled to avoid lags on long uptime with r20.

    The post boot script used in the stock ROM is also overridden and it sets the readahead to 128KB. As I/O workload under Android is mostly random, high readahead doesn’t help and only increases memory thrashing.

    This kernel also incorporates a lot of patches to reduce/optimize memory allocations used throughout the entire kernel.

    mmap/mremap code was also backported from Linux v5.10 to optimize ART (see here for more info).


    - Latest subsystems -


    This kernel backports the SELinux subsystem from mainline Linux. This includes caching improvements that drastically reduces time spent on lookups. 10K lines of code has been changed.

    This kernel also backports f2fs (Flash-Friendly File System) from mainline Linux. This includes bug fixes and performance improvements such as shorter discard latency, more optimized GC logic for Android, and checkpoint merging.

    BFQ I/O scheduler has also been backported from mainline Linux for better I/O performance.


    - LRNG -


    This kernel ditches the traditional RNG driver from the Linux kernel in favor of LRNG. See here and here for more info.

    A rudimentary throughput benchmark shows an improvement of 10.5% (keep in mind that this is only one aspect of an RNG metric).


    /* Notice */

    OxygenOS 12 is unsupported.
    Non-OxygenOS custom ROMs are supported, but your mileage may vary wildly. Most notably, gesture orientations on some ROMs may be inverted.
    Custom ROMs that uses OxygenOS 12 kernel, including LineageOS 19.1, are not supported.

    This kernel touches vendor_boot and dtbo partitions, meaning you'd need to restore said partitions whenever you're switching to another kernel or stock.
    Please make a back-up of these partitions. The installer doesn’t do this automatically for you. Installing the stock ROM with a full OTA restores said partitions as well.

    /* Disclaimer */

    Your warranty is now void.
    I am not responsible for bricked devices, dead SD cards,
    thermonuclear war, or you getting fired because the alarm app failed. Please
    do some research if you have any concerns about features included in this kernel
    before flashing it! YOU are choosing to make these modifications, and if
    you point the finger at me for messing up your device, I will laugh at you. Hard. A lot.

    /* Thanks to */

    Vishalcj17
    kristofpetho
    kdrag0n
    kerneltoast (SultanXDA)

    /* Instructions */

    1. Read the above. Please.
    2. Flash the zip file from FK Kernel Manager. Any other installation methods are untested.

    /* Downloads and links */

    arter97.com
    Kernel source
    Telegram chat link
    18
    r2 is up, and it's a big release.

    Changelog is quite self-explanatory.

    r2
    Display-related processes are now allowed to use the middle cores as well for better smoothness
    Enabled more mremap() performance improvement that was missing from r1
    LA.UM.9.14.r1-18400-LAHAINA.0 merged
    LA.UM.9.16.r1-08100-MANNAR.0 merged
    LA.UM.10.9.1.r1-00300-QCS610.0 merged (contains a lot of new improvements including power optimizations)
    Linux v5.4.159 merged
    Wi-Fi drivers updated to 2.0.8.25M
    2021-11-06 security patch merged
    Watermark boosting disabled to fix aggressive app killings (by Sultan)
    Workaround added to fix unwanted doubles presses from the power button
    18
    A major new testing release is up.

    Changes made in this round is big enough that I've decided to name it r20.

    While the build has been stable for me, I'm marking this an alpha as a lot changed.

    r20a1 marks the first Linux v5.4 based kernel to have MGLRU backported.

    MGLRU is a big deal in everything Linux related, especially for Android.
    Esper have a great article on what is MGLRU in a nutshell: https://blog.esper.io/android-dessert-bites-22-linux-memory-management-38419756/

    TL;DR:
    According to Google’s fleetwide profiling, multi-generational LRU yields an “overall 40% decrease in kswapd [the kernel daemon that manages virtual memory] CPU usage,” an “85% decrease in the number of low-memory kills at the 75th percentile,” and an “18% decrease in app launch times at the 50th percentile.”

    Personally, I've noticed a sharp decrease in swap usage and improvements in general performance.

    Besides MGLRU, there are other numerous patches that are worth noting.

    I've brought back updated arm64 routines that were once tried in a beta release but removed later due to random kernel panics (mostly notable from Netflix). The mainline Linux kernel have gotten new updates since then, so r20a1 includes that.
    Also, some memory patches made by Sultan are also picked, and I've confirmed that those also help improving responsiveness.

    With all these memory stuffs going on, I've also changed swap/zram's parameters. You'll notice a difference in how many apps you can keep open, etc.

    The excessive RMNET_DFC wakelock that annoyed some users are now also gone by incorporating a fix from Snapdragon 8 Gen 1.

    All in all, this is indeed a pretty big release.
    I'm expecting mixed feedback, so please let me know how the new kernel behaves.

    /* Full changelog */

    Backported MGLRU
    Fixed full system crash on some custom ROMs (by LibXZR)
    Added a few memory patches to improve responsiveness (by Sultan)
    Tuned swap/zram configurations
    Backported updated arm64 memory functions for better performance
    Fixed excessive RMNET_DFC wakelock
    Fixed OnePlus charging code to handle worker failure
    Backported more BFQ commits from mainline
    Backported mm/mremap fix from mainline
    Latest WireGuard merged
    LA.UM.9.14.r1-19400-LAHAINA.QSSI13.0 merged
    Linux v5.4.190 merged
    Wi-Fi drivers updated to 2.0.8.28K
    2022-04-05 security patch merged
    Latest f2fs from Linux v5.18 merged
    Now built with the latest Clang 14.0.5
    Device-tree updated to LA.UM.9.14.r1-19300-LAHAINA.QSSI13.0
    15
    /* Changelog */

    r20

    Backported MGLRU (a major change)
    Fixed full system crash on some custom ROMs (by LibXZR)
    Added a few memory patches to improve responsiveness (by kerneltoast)
    Fixed page allocation failures introduced from mainline
    SimpleLMK re-enabled after fixing soft random reboots
    Fixed excessive RMNET_DFC wakelock
    Fixed OnePlus charging code to handle worker failure
    Backported updated arm64 memory functions for better performance
    Disabled REFCOUNT_FULL to optimize performance over security
    Tuned swap/zram configurations
    Disabled zram writeback to avoid lags on long uptime
    Optimized pstore for better performance
    Added haptic level adjustment by flar2
    Reduced memory usage by matching CONFIG_CMA_AREAS to minimum required
    Re-enabled arm64 erratum that was previously disabled by mistake
    Fixed rare random reboots (zsmalloc patch by kerneltoast)
    Backported more BFQ commits from mainline
    Backported mm/mremap fix from mainline
    Now built with the latest Clang 14.0.7
    Device-tree updated to LA.UM.9.14.r1-19300-LAHAINA.QSSI13.0
    LA.UM.10.9.1.r1-02800-QCS610.0 merged
    LA.UM.9.16.r1-11000-MANNAR.0 merged
    Latest f2fs from Linux v5.19 merged
    Linux v5.4.197 merged
    Wi-Fi drivers updated to 2.0.8.29W
    Latest exFAT from Linux v5.19 merged
    Latest LRNG v45 merged
    2022-06-05 security patch merged

    r12
    Fingerprint code merged with latest the LineageOS
    90 Hz timing removed for custom ROMs to avoid noticeable gamma shifts
    Now built with the latest Clang 13.0.3
    Linux v5.4.186 merged
    Latest exFAT from Linux v5.18 merged
    LA.UM.9.14.r1-19300-LAHAINA.QSSI13.0 merged
    Wi-Fi drivers updated to 2.0.8.27T

    r11
    Added support for non-OxygenOS, custom ROMs (screen-off gesture orientations may be inverted)
    Added a workaround to prevent soft random reboots due to memory management
    Fixed a fingerprint-related memory-leak from OnePlus display source code
    Merged a few f2fs patches to improve responsiveness
    Backported more BFQ commits from mainline
    Backported mm/mremap fix from mainline
    Latest WireGuard merged
    LA.UM.9.16.r2-03700-MANNAR.0 merged
    Linux v5.4.184 merged
    Wi-Fi drivers updated to 2.0.8.27S
    2022-03-05 security patch merged

    r10
    Bug-fix, stable release

    r8
    Fixed r7's memory optimizations
    Merged latest exFAT

    r7
    Fixed a SELinux memory leak that happened since r1a12 (thanks to @Kaz205 for reporting and testing)
    Merged some memory operation optimizations
    Further improved the workaround to fix unwanted doubles presses from the power button

    r5
    LA.UM.9.16.r2-03500-MANNAR.0 merged
    Linux v5.4.179 merged
    Wi-Fi drivers updated to 2.0.8.26Z
    2022-02-05 security patch merged
    Backported UNIX socket latency optimization from Linux v5.17

    r4
    Fixed lmkd not working, resulting in freezes
    Minor performance and power optimizations
    Linux v5.4.175 merged

    r3
    SimpleLMK disabled for now to fix random soft reboots
    Fixed random app crashes and freezes due to op_cgroup
    Bluetooth drivers re-worked to fix Bluetooth-related issues
    USB malfunctions fixed (dwc3)
    LA.UM.9.14.r1-18900-LAHAINA.0 merged
    LA.UM.10.9.1.r1-00800-QCS610.0 merged
    Linux v5.4.174 merged
    Wi-Fi drivers updated to 2.0.8.26T
    2022-01-05 security patch merged
    Latest WireGuard merged
    Latest f2fs from Linux v5.17 merged
    Latest LRNG v43 merged
    Read-write semaphore backported from Linux v5.16 to improve smoothness under heavy I/O
    Now built with the latest Clang 13.0.2
    Disabled SLUB per-CPU partial caches for better latency (by Sultan)

    r2
    Display-related processes are now allowed to use the middle cores as well for better smoothness
    Enabled more mremap() performance improvement that was missing from r1
    LA.UM.9.14.r1-18400-LAHAINA.0 merged
    LA.UM.9.16.r1-08100-MANNAR.0 merged
    LA.UM.10.9.1.r1-00300-QCS610.0 merged (contains a lot of new improvements including power optimizations)
    Linux v5.4.159 merged
    Wi-Fi drivers updated to 2.0.8.25M
    2021-11-06 security patch merged
    Watermark boosting disabled to fix aggressive app killings (by Sultan)
    Workaround added to fix unwanted doubles presses from the power button

    r1
    First stable release
    15
    After months of tests, r3 is up and it's a major release that should fixes all major bugs from previous versions and improve performance.


    It turned out that using SimpleLMK causes random soft reboots due to page allocation failures.
    This kernel reverts back to using the stock lmkd until this issue is sorted out.
    You may experience a slight decrease in how many apps you can leave in the background.

    Also, random app crashes and freezes are fixed too.
    This was specific to OxygenOS, which freezes apps with cgroup and expects the kernel to un-freeze them, but with my kernel lacking that feature from OnePlus, using my kernel led to app crashes and freezes.
    This was fixed by forcefully disabling that feature from the kernel.

    Some Bluetooth and USB stuffs were also fixed with this release.


    Bug fixes alone make this a noteworthy release, but it also comes with nice performance improvements.

    With the Qualcomm HDK, I've managed to debug why using Clang 13 leads to boot failures.
    r3 has that issue sorted out and now the kernel uses the latest Clang 13.0.2 instead of 12.

    Read-write semaphore backported from Linux v5.16 will also give some nice latency improvements under heavy I/O.
    These patches are actively being talked in the f2fs mailing list for backporting to older Android devices.

    From Sultan (kerneltoast), r3 also has SLUB per-CPU partial caches disabled for better latency.


    r3
    SimpleLMK disabled for now to fix random soft reboots
    Fixed random app crashes and freezes due to op_cgroup
    Bluetooth drivers re-worked to fix Bluetooth-related issues
    USB malfunctions fixed (dwc3)
    LA.UM.9.14.r1-18900-LAHAINA.0 merged
    LA.UM.10.9.1.r1-00800-QCS610.0 merged
    Linux v5.4.174 merged
    Wi-Fi drivers updated to 2.0.8.26T
    2022-01-05 security patch merged
    Latest WireGuard merged
    Latest f2fs from Linux v5.17 merged
    Latest LRNG v43 merged
    Read-write semaphore backported from Linux v5.16 to improve smoothness under heavy I/O
    Now built with the latest Clang 13.0.2
    Disabled SLUB per-CPU partial caches for better latency (by Sultan)