[Kernel] [CAF-Rebased] Horizon Kernel [Android R] [OOS/Custom]

Search This thread

xzr467706992

Senior Member
Jul 16, 2016
155
584
dSDoOx.png


Horizon Kernel for Oneplus 8 & 8 Pro & 8T

This kernel is mostly focus on daily experience and battery consumption

Features:

- Rebase on CAF "LA.UM.9.12.r1-12200-SMxx50.QSSI12.0"
- Build with proton clang 12 + polly + O3 + A55 optimizations
- Disable kernel module and build everything inline
- Switch to lz4 for ZRAM
- Remove lots of debug stuff
- Remove unused drivers
- BBR TCP congestion algorithms support
- Use fq as default qdisc
- Switch to 128kB readahead ( Optimize for UFS )
- Stop collecting I/O statistics
- Switch to urandom
- Use schedhorizon as default cpufreq governor
- GPU OC 670mhz ( Same as sd865plus)
- Wireguard support
- CIFS support
- KCAL & Klapse support
- .........................................

Download

Since R12, custom ROMs are supported
-OOS = Oxygen OS
-Lineage = Custom ROMs

You can flash it via exkm, fkm or this free and opensource tool

Note: See the thread below if you are looking for legacy builds

Also, here's a control center software.
You can control game mode, 240Hz touch sampling rate and UFS Turbo Write in it.

BUG
- You tell me


Contributors
xzr467706992

Credits
https://github.com/xzr467706992/android_kernel_oneplus_sm8250/graphs/contributors

Source
https://github.com/xzr467706992/android_kernel_oneplus_sm8250

Channel & Group
https://t.me/horizon_op8
 
Last edited:

xzr467706992

Senior Member
Jul 16, 2016
155
584
Changelog:

R17
- Merge CAF LA.UM.9.12.r1-12500-SMxx50.0
- Update dts to LA.UM.9.12.r1-12000-SMxx50.0
- Update ion drivers
- Update simple lmk drivers
- touchscreen: Adapt PM QoS usage to incoherent OnePlus code
- Slightly optimize performance on scrolling

R16.3
- Rebase on CAF msm-4.19 and remove all upstream linux stable changes ( Rollback to 4.19.157 )
( This could solve at least deep sleep issue and avoid a lot of potential issue )
- Inline the spin lock function family to improve performance
- Correct capacity value of big cluster in energy model

R16.2
- Merge Linux 4.19.198
- Revert back to old scheduling policy

R16.1
- Merge CAF "LA.UM.9.12.r1-12200-SMxx50.QSSI12.0"
- Further optimize on scheduling
- May fix a wlan connection problem introduced in last build

R16
- Linux 4.19.197
- Merge CAF "LA.UM.9.12.r1-12000-SMxx50.0"
- Rework scheduling policy
- Optimize touchscreen latency and interrupt CPU usage

R15.1
- Linux 4.19.196
- Fix kernel panic when screen casting with "windows connect"
- Fix UI lagging and inaccurate network speed when a proxy is running in the background
( This dropped BBR and set Westwood as default congestion algorithm )
- Move back to Simple LMK as lowmemory killer

Controller Update
- Add a switch for BBR congestion algorithm for those who need it

R15
- Merge CAF "LA.UM.9.12.r1-11800-SMxx50.QSSI12.0"
- Fix random lags on R14.3
- Relax performance restrictions for schedhorizon
- Move to 10ms for WALT window size for faster response
- Cleanup and optimize fuel gauger driver

R14.3
- Linux 4.19.195
- Fix google photos video lag on custom ROMs

R14.2
- Linux 4.19.193
- Move back to userspace lmkd to improve multitasking experience
- Synchronize oneplus changes from oss

R14.1
- Fix kernel panic when using terminal

R14
- Merge CAF "LA.UM.9.12.r1-11500-SMxx50.0"
- Merge Linux 4.19.192
- Optimize camera launching speed

R13.3
- Fix kernel panic when subsystems crash

R13.2
- Merge Linux 4.19.191
- Fix modem unable to reset after a crash
- Cleanup some more oneplus codes
- Custom build: Synchronize changes with LineageOS kernel and apply new FOD patches
Note: If you are facing disappeared fod, just wait for your maintainer to update fod on the ROM side.

R13.1
- Merge Linux 4.19.190
- Fix zram compression algorithm not setting to lz4 on kebab
- Perform PID map reads on the little CPU cluster

R13
- Merge CAF "LA.UM.9.12.r1-11300-SMxx50.0"
- Implement fuse short circuit to improve i/o performance under /sdcard
- Ignore modem crash event

R12.4
- Merge Linux 4.19.186 187 188 189
- Fix unable to apply system update on kebab
- 20X optimize PID map reads
- Increase vmstat interval to reduce overhead
- Fix kernel warning when triggering tri-state-key
- Apply some backports to vmalloc & jump label
- Enable jump label for branch optimization
- Enable automatic compaction for ZRAM
- Upstream Simple LMK
- Some more I forgot

R12.3
- May fix some problems with pd charging
- Fix kernel panic when modem crash sometimes

R12.2
- Merge Linux 4.19.184 185
- Implement f2fs rapid gc from arter97
- Shorten auto-hiberate idle timer
- May fix kernel panic when modem crash sometimes

R12.1
- Fix random crash & reboot ( mostly happends on 8T )

R12
- Merge Linux 4.19.183
- Merge CAF "LA.UM.9.12.r1-11000-SMxx50.0"
- Update lots of codes from oneplus oss
- Enable UFS HPB feature
- Add support for custom ROMs

R11.2
- Merge Linux 4.19.180 181 182
- Add haptic level adjustment
- Add back 1.2GHz for big cluster
- Move to rewritten ashmem driver by sultan

R11.1
- Merge CAF "LA.UM.9.12.r1-10800-SMxx50.0"
- Merge Linux 4.19.179
- Fix SurfaceFlinger spams errors in logcat

R11
- Merge CAF "LA.UM.9.12.r1-10700-SMxx50.0"
( Including kernel, wlan and audio, video techpacks )
- Merge Linux 4.19.178
- Upstream lz4 zram algorithm
- Hardcode swappiness to 160 for more aggressive zram strategy
- Enable 4GB ZRAM
- Add back 691mhz for small cluster
- Prevent EAS from affecting cpuidle
- Apply some more optimization patches

R10.5
- Merge Linux 4.19.177
- Remove cpu cooling & devfreq cooling drivers
( Fix big cluster being limit at min freq sometimes when playing genshin impact )
- Improve deep sleep time under mobile data
- Apply some more optimization patches

R10.4
- Merge Linux 4.19.176
- Update kernel devicetree to "LA.UM.9.12.r1-10000-SMxx50.0"
- Add back lowest frequencies for big & prime cluster
- Fix broken energy model due to inappropriate optimizations

R10.3
- Merge Linux 4.19.175
- Update display panel commands from qssi-user-11-RP1A.201005.001-2102011801-release-keys

R10.2
- Fix cyberpunk theme
- Fix cloud service on hydrogen os

R10.1
- Merge Linux 4.19.174
- Cleanup and optimize defconfig
- Simplify dtbo building
- Reduce zip size ~ 30%

R10
- Merge CAF "LA.UM.9.12.r1-10300-SMxx50.0"
( Including kernel, wlan and audio, display techpacks )
- Cleanup unused debug codes in wlan drivers
- Don't allow userspace trigger process reclaim
- Remove cpuidle sleep_disable usage in haptic drivers, and remove sleep_disable node from userspace.

R9.3
- Merge Linux 4.19.173
- Ship builds with zips

R9.2.1
- Fix blurred screen and crashes on some Oneplus 8P when playing videos with MEMC on.
- Oneplus 8 Pro Only

R9.2
- Merge Linux 4.19.172
- Fix ufs workqueue overheads
- Optimize memcpy, memmove, memcmp, crc32, checksum, xor libraries
- Affine unbound workqueues to little CPUs by default
- Make the devfreq monitor workqueue high priority
- Add automatic memory compaction mechanism
- More I forgot
- Theres no change in dtbo compared to R9.1, so no need to update

R9.1
- Merge Linux 4.19.168 169 170 171
- Move to simplified frequency table
- Fix wifi not working on new Chinese version of Oneplus 8T
- Don't limit CPU frequency when gaming
- Optimize GPU scheduling under high refresh rate
- Theres no change in dtbo compared to R9, so no need to update

R9
- Merge CAF "LA.UM.9.12.r1-10000-SMxx50.0"
( Including kernel, wlan and audio, video, display techpacks )
- Merge Linux 4.19.166
- Merge Linux 4.19.167
- Add support for checking cpu voltage via kernel logs
- Theres no change in dtbo compared to R8.4, so no need to update

R8.4
- Merge Linux 4.19.165
- Disable ZRAM & SWAP
- Theres no change in dtbo compared to R8.3, so no need to update

R8.3
- Merge Linux 4.19.164
- Theres no change in dtbo compared to R8.2, so no need to update

R8.2
- Don't force run display & touchscreen irqs and threads on big cluster to save power
- Remove max boost for little cluster on switching apps to save power
- Introduce dynamic cpuset for display group, migrating tasks to big cluster on switching apps to improve smoothness
- Fix lags when little cluster is under heavy load
- Relax touchscreen cpu latency requirement to save power
- Relax UFS cpu latency requirement to save power
- Align CPU latency requirements with kona C-States
- Remove iowait boost from schedhorizon
- Don't force 4k buffer allocations for ION
- Update Magisk in the image to v21.2
- Fix force 240hz fails after exiting a game
- Theres no change in dtbo compared to R8.1, so no need to update

R8.1
- Merge CAF "LA.UM.9.12.r1-09500-SMxx50.0"
( Including kernel, wlan and audio, video, display techpacks )
- Build oneplus param read/write drivers, cyberpunk theme should work now
- Optimize pm_qos usage for touchscreen drivers on OP8 & OP8P
- Re-enable pm_qos usage for UFS drivers
- Use 100Hz timer frequency
- Never allow irq affine on more than one cpu
- Optimize pm_qos framework
- Optimize pm_qos usage for UFS drivers
- Optimize cpuidle framework
- Force run important display & touchscreen & lmk irqs and threads on big cluster
- Cleanup codes in kgsl & display techpack and optimize pm_qos usage
- Move to rewritten iommu & ion drivers
- ........... ( Check github for details )
- Theres no change in dtbo compared to R7.2, so no need to update

R7.2
- Merge Linux 4.19.163
- Theres no change in dtbo compared to R7.1, so no need to update

R7.1
- Merge Linux 4.19.162
- Re-enable lpm idle prediction
- Move to fq_codel qdisc
- Enable TCP ECN negotiation by default
- Don't force enable panel ULPS suspend
- Theres no change in dtbo compared to R7, so no need to update

R7
- Merge CAF "LA.UM.9.12.r1-09300-SMxx50.0"
( Including kernel and audio, display techpacks and wlan drivers )
- Merge Linux 4.19.161
- Build and enable vDSO32
- Don't force offline big & prime cluster on screen off ( Fix fp reject and lags on AOD )
- Move back to mem deep sleep mode
- Don't force 240Hz touchpanel sample rate on Oneplus 8T & 8Pro ( But you can still enable it by writing 1 to /proc/touchpanel/force_game_switch_enable )
- Cleanup rx_wakelock codes in wlan drivers
- Force enable ULPS(Ultra Low Power State) and ULPS suspend for display panel
- Force allow panel phy power off on idle
- Re-align gpu idle timeout & input boost duration with display panel ULPS delay
- Enable Clang ThinLTO optimizations
- Lower the priority of f2fs gc task
- Disable expedited RCU grace periods for powersave
- Remove display ramdump memory region (free 8MB of RAM)
- Disable cpuidle idle prediction feature for powersave
- Implement fast refcount checking for arm64
- Prefetch operands to speed up atomic operations
- More I forgot
- Theres no change in dtbo compared to R6.4, so no need to update

R6.4
- Merge linux 4.19.160
- Theres no change in dtbo compared to R6.3, so no need to update

R6.3
- Merge linux 4.19.159
- Theres no change in dtbo compared to R6.2, so no need to update

R6.2
- Merge linux 4.19.158
- Move to s2idle deep sleep mode
- Apply some touchscreen drivers' simplifying and optimizations
- Theres no change in dtbo compared to R6.1, so no need to update

R6.1
- Update Proton Clang version

dtbo image has been updated:
- Fix random kernel panic caused by freeing too much reserved memory

R6
- Merge Linux 4.19.157
- Merge CAF “LA.UM.9.12.r1-09000-SMxx50.0”
( Include kernel, wlan and audio, video, display techpacks )
- Update wireguard to v1.0.20201112
- Merge Simple Lmk update
- Force 240Hz touchpanel sample rate for Oneplus 8 Pro & Oneplus 8T
- Touchpanel sample rate will no longer drop after switching to 60Hz screen refresh rate on Oneplus 8T & Oneplus 8Pro
- Update magisk to v21.1

dtbo image has been updated:
- Remove unused reserved memory regions (~12MB)

R5.5
- Merge Linux 4.19.156
- Move to Simple Lmk as lowmemorykiller
- Disable userspace lmkd
- Enable userspace CNTVCT_EL0 access for vDSO to accelerate request
- Theres no change in dtbo compared to R5.4, so no need to update.

R5.4
- Merge Linux 4.19.155
- Theres no change in dtbo compared to R5.3, so no need to update.

R5.3
- Fix cpu cores oscillationally on/off on aod fingerprint pressing
- Fix logic of screen on/off detection
- Improve speed of aod fingerprint
- Theres no change in dtbo compared to R5.2, so no need to update.

R5.2
- Optimize logic of "Optimize fingerprint speed on aod mode"
- Fix priority of fingerprint hal not changing successfully
- Optimize smoothness when entering recent apps
- Optimize smoothness when switching between apps
- Optimize app launching speed
- Theres no change in dtbo compared to R5.1, so no need to update.

R5.1
- Optimize fingerprint speed on aod mode
- Theres no change in dtbo compared to R5, so no need to update.

R5
- Merge Linux 4.19.154
- Fix camera on Oneplus 8T
- Speed up mremap by 20x on large regions
- Disable Privileged Access Never emulation, speed up syscalls 2x
- Theres no change in dtbo compared to R4, so no need to update.

R4
- Merge Linux 4.19.153
- Merge CAF "LA.UM.9.12.r1-08900-SMxx50.0"
( Including kernel and wifi drivers, audio, video, display techpacks )
- Update boot image base to OOS OB3 for OP8 & OP8P
- Camera on 8T havent been fixed on this build
- Theres no change in dtbo compared to R3, so no need to update.

R3
- Merge oneplus oss update
- Add support for Oneplus 8T
- Enable 1.2GHz input boost for big cluster
- Remove schedhorizon governor 1.6GHz(prime) 1.2GHz(big) efficient_freq
- Allow foreground apps migrate to big cluster on touch
- Relax boost duration on no input to 3s

UI Bench Result
- Jitter: ~0.3ms -> ~0.2ms
- Total duration: ~4ms -> ~3ms

- Dtbo image has been updated, reflashing is recommended

R2
- Merge Linux 4.19.152
- Merge CAF "LA.UM.9.12.r1-08600-SMxx50.0"
- Update wifi drivers to "LA.UM.9.12.r1-08600-SMxx50.0"
- Update display & video techpacks to "LA.UM.9.12.r1-08600-SMxx50.0"
- Theres no change in dtbo compared to R1.1, so no need to update.

R1.1
- Merge Linux 4.19.151
- Theres no change in dtbo compared to R1, so no need to update.

R1
- Stable release is here
( Coz no one reports bug to me lol )
- Merge Linux 4.19.150
- Enable ntfs & exfat drivers
- Theres no change on dtbo image compared to B2, so no need to update

B2
- Merge Linux 4.19.149
- Update audio & video & display techpacks to CAF "LA.UM.9.12.r1-08300-SMxx50.0"
- Add Klapse support
( Now you can turn brightness )
- Disable unused arm64 errata
- Disable wireless charging drivers for oneplus8
- Disbale iris drivers for oneplus8
- Start building dtbo image, flash it as you want.
( It could provide node /proc/touchpanel/glove_mode_enable for glove mode, you can write 1 to enable it )

B1
- Initial bring up
 
Last edited:

xzr467706992

Senior Member
Jul 16, 2016
155
584
Download legacy builds (Before R9.3)
https://dl.akr-developers.com/?dir=oneplus/horizon_kernel/R/images

As we don't have a perfect TWRP for OOS 11 for now, I only provide boot images.
op8=Oneplus 8 boot image
op8p=Oneplus 8 Pro boot image
dtbo=dtbo partition image
Bx=Beta X

Flashing dtbo is optional but recommended
Note: Video frame insertion may be broken if you don't flash dtbo on Oneplus 8 Pro
( Report from a H2OS user )
Also it could provide node /proc/touchpanel/glove_mode_enable for glove mode, you can write 1 to enable it

Flash the images via fastboot
fastboot flash boot xxx
fastboot flash dtbo xxx
Google for it if you don't know that

Those boot images are tested on OOS OB3 & H2OS OB4.
 
Last edited:

Burt Squirtz

Senior Member
Feb 11, 2018
609
295
Google Pixel 6
Changelog:
B2
- Merge Linux 4.19.149
- Update audio & video & display techpacks to CAF "LA.UM.9.12.r1-08300-SMxx50.0"
- Add Klapse support
( Now you can turn brightness )
- Disable unused arm64 errata
- Disable wireless charging drivers for oneplus8
- Disbale iris drivers for oneplus8
- Start building dtbo image, flash it as you want.
( It could provide node /proc/touchpanel/glove_mode_enable for glove mode, you can write 1 to enable it )

B1
- Initial bring up

I'm so excited to try this kernel! if you could kindly add KCAL control, I'd be so ecstatic. it's wonderful to be able to turn up the color saturation in exkm^.

EDIT; whoops! Kcal probably already in there! sorry
 
Last edited:

rahulcasper

Senior Member
Jan 11, 2015
149
23
New Delhi
OnePlus 8
Hi I have 2 questions, I was using this on OOS 10 and loved it, hence want to try it on OOS 11 stable build which I just flashed.

1) What's the thing with this dtbo image? Can someone explain what it does?
2)Since you're only providing images, what if someone is on an Indian build and flashes the image (I'm assuming they are for the global build) will they face any issues? Though OP8 didn't get an Indian version yet so I flashed the global variant so I think I can still try this.
Also the images are already patched with magisk right?

Do you plan on making a zip installer which we can flash from EX kernel manager or similar applications?

---------- Post added at 06:03 PM ---------- Previous post was at 06:01 PM ----------

Hi I have 2 questions, I was using this on OOS 10 and loved it, hence want to try it on OOS 11 stable build which I just flashed.

1) What's the thing with this dtbo image? Can someone explain what it does?
2)Since you're only providing images, what if someone is on an Indian build and flashes the image (I'm assuming they are for the global build) will they face any issues? Though OP8 didn't get an Indian version yet so I flashed the global variant so I think I can still try this.
Also the images are already patched with magisk right?

Do you plan on making a zip installer which we can flash from EX kernel manager or similar applications?
Also if I want to go back, I can just flash my stock boot image, but what about this dtbo image thag we flash? Do I have to extract the stock dtbo image and keep it if I want to go back?
 

xzr467706992

Senior Member
Jul 16, 2016
155
584
Hi I have 2 questions, I was using this on OOS 10 and loved it, hence want to try it on OOS 11 stable build which I just flashed.

1) What's the thing with this dtbo image? Can someone explain what it does?
2)Since you're only providing images, what if someone is on an Indian build and flashes the image (I'm assuming they are for the global build) will they face any issues? Though OP8 didn't get an Indian version yet so I flashed the global variant so I think I can still try this.
Also the images are already patched with magisk right?

Do you plan on making a zip installer which we can flash from EX kernel manager or similar applications?

---------- Post added at 06:03 PM ---------- Previous post was at 06:01 PM ----------


Also if I want to go back, I can just flash my stock boot image, but what about this dtbo image thag we flash? Do I have to extract the stock dtbo image and keep it if I want to go back?
Oem device trees are saved in dtbo image (display, fingerprint, touchpanel etc)
They shouldnt face any issue. Boot image is consists of kernel, dtb and ramdisk. I replaced kernel and dtb in the image. And I have md5sumed that ramdisk cross versions are same.
Yes, I have patched. But you may still need to patch it again, coz someone reported to me that it doesnt work (tho it works well here)
I ll make an zip installer when twrp is out
EXKM can flash images btw
Yes you need to keep your stock dtbo if you want to go back.
 
  • Like
Reactions: ps000000

rahulcasper

Senior Member
Jan 11, 2015
149
23
New Delhi
OnePlus 8
Oem device trees are saved in dtbo image (display, fingerprint, touchpanel etc)
They shouldnt face any issue. Boot image is consists of kernel, dtb and ramdisk. I replaced kernel and dtb in the image. And I have md5sumed that ramdisk cross versions are same.
Yes, I have patched. But you may still need to patch it again, coz someone reported to me that it doesnt work (tho it works well here)
I ll make an zip installer when twrp is out
EXKM can flash images btw
Yes you need to keep your stock dtbo if you want to go back.
Thanks I shall try this now. One last question, how can I extract my stock dtbo? and flashing it is through fastboot only right?

Does payload dumper extract dtbo from OOS zips? I usually close it after boot so I haven't noticed the other files it outputs

I'm on stable OOS 11 global build on a OP8 btw, I read that it's recommended but not necessary to flash the dtbo image and only has perks for the 8 pro. Is that correct or should I still flash it
 
Last edited:

rahulcasper

Senior Member
Jan 11, 2015
149
23
New Delhi
OnePlus 8
Ya payload dumper works
fastboot flash dtbo xxxx.img
Hey I feel guilty I asked you everything about the installation but still haven't flashed it yet lol. Since I just upgraded to A11 I have been testing the radioactive kernel because it was like my main on A10 and it's been going lovely so I was a little hesitant to switch just yet

But I promise I'll try this and review it within this week for sure since I had shifted to horizon during the last week of A10 before stable A11 came and I had really liked it, I'm assuming it's only going to be better on 11
 

Top Liked Posts

  • There are no posts matching your filters.
  • 25
    dSDoOx.png


    Horizon Kernel for Oneplus 8 & 8 Pro & 8T

    This kernel is mostly focus on daily experience and battery consumption

    Features:

    - Rebase on CAF "LA.UM.9.12.r1-12200-SMxx50.QSSI12.0"
    - Build with proton clang 12 + polly + O3 + A55 optimizations
    - Disable kernel module and build everything inline
    - Switch to lz4 for ZRAM
    - Remove lots of debug stuff
    - Remove unused drivers
    - BBR TCP congestion algorithms support
    - Use fq as default qdisc
    - Switch to 128kB readahead ( Optimize for UFS )
    - Stop collecting I/O statistics
    - Switch to urandom
    - Use schedhorizon as default cpufreq governor
    - GPU OC 670mhz ( Same as sd865plus)
    - Wireguard support
    - CIFS support
    - KCAL & Klapse support
    - .........................................

    Download

    Since R12, custom ROMs are supported
    -OOS = Oxygen OS
    -Lineage = Custom ROMs

    You can flash it via exkm, fkm or this free and opensource tool

    Note: See the thread below if you are looking for legacy builds

    Also, here's a control center software.
    You can control game mode, 240Hz touch sampling rate and UFS Turbo Write in it.

    BUG
    - You tell me


    Contributors
    xzr467706992

    Credits
    https://github.com/xzr467706992/android_kernel_oneplus_sm8250/graphs/contributors

    Source
    https://github.com/xzr467706992/android_kernel_oneplus_sm8250

    Channel & Group
    https://t.me/horizon_op8
    6
    Changelog:

    R17
    - Merge CAF LA.UM.9.12.r1-12500-SMxx50.0
    - Update dts to LA.UM.9.12.r1-12000-SMxx50.0
    - Update ion drivers
    - Update simple lmk drivers
    - touchscreen: Adapt PM QoS usage to incoherent OnePlus code
    - Slightly optimize performance on scrolling

    R16.3
    - Rebase on CAF msm-4.19 and remove all upstream linux stable changes ( Rollback to 4.19.157 )
    ( This could solve at least deep sleep issue and avoid a lot of potential issue )
    - Inline the spin lock function family to improve performance
    - Correct capacity value of big cluster in energy model

    R16.2
    - Merge Linux 4.19.198
    - Revert back to old scheduling policy

    R16.1
    - Merge CAF "LA.UM.9.12.r1-12200-SMxx50.QSSI12.0"
    - Further optimize on scheduling
    - May fix a wlan connection problem introduced in last build

    R16
    - Linux 4.19.197
    - Merge CAF "LA.UM.9.12.r1-12000-SMxx50.0"
    - Rework scheduling policy
    - Optimize touchscreen latency and interrupt CPU usage

    R15.1
    - Linux 4.19.196
    - Fix kernel panic when screen casting with "windows connect"
    - Fix UI lagging and inaccurate network speed when a proxy is running in the background
    ( This dropped BBR and set Westwood as default congestion algorithm )
    - Move back to Simple LMK as lowmemory killer

    Controller Update
    - Add a switch for BBR congestion algorithm for those who need it

    R15
    - Merge CAF "LA.UM.9.12.r1-11800-SMxx50.QSSI12.0"
    - Fix random lags on R14.3
    - Relax performance restrictions for schedhorizon
    - Move to 10ms for WALT window size for faster response
    - Cleanup and optimize fuel gauger driver

    R14.3
    - Linux 4.19.195
    - Fix google photos video lag on custom ROMs

    R14.2
    - Linux 4.19.193
    - Move back to userspace lmkd to improve multitasking experience
    - Synchronize oneplus changes from oss

    R14.1
    - Fix kernel panic when using terminal

    R14
    - Merge CAF "LA.UM.9.12.r1-11500-SMxx50.0"
    - Merge Linux 4.19.192
    - Optimize camera launching speed

    R13.3
    - Fix kernel panic when subsystems crash

    R13.2
    - Merge Linux 4.19.191
    - Fix modem unable to reset after a crash
    - Cleanup some more oneplus codes
    - Custom build: Synchronize changes with LineageOS kernel and apply new FOD patches
    Note: If you are facing disappeared fod, just wait for your maintainer to update fod on the ROM side.

    R13.1
    - Merge Linux 4.19.190
    - Fix zram compression algorithm not setting to lz4 on kebab
    - Perform PID map reads on the little CPU cluster

    R13
    - Merge CAF "LA.UM.9.12.r1-11300-SMxx50.0"
    - Implement fuse short circuit to improve i/o performance under /sdcard
    - Ignore modem crash event

    R12.4
    - Merge Linux 4.19.186 187 188 189
    - Fix unable to apply system update on kebab
    - 20X optimize PID map reads
    - Increase vmstat interval to reduce overhead
    - Fix kernel warning when triggering tri-state-key
    - Apply some backports to vmalloc & jump label
    - Enable jump label for branch optimization
    - Enable automatic compaction for ZRAM
    - Upstream Simple LMK
    - Some more I forgot

    R12.3
    - May fix some problems with pd charging
    - Fix kernel panic when modem crash sometimes

    R12.2
    - Merge Linux 4.19.184 185
    - Implement f2fs rapid gc from arter97
    - Shorten auto-hiberate idle timer
    - May fix kernel panic when modem crash sometimes

    R12.1
    - Fix random crash & reboot ( mostly happends on 8T )

    R12
    - Merge Linux 4.19.183
    - Merge CAF "LA.UM.9.12.r1-11000-SMxx50.0"
    - Update lots of codes from oneplus oss
    - Enable UFS HPB feature
    - Add support for custom ROMs

    R11.2
    - Merge Linux 4.19.180 181 182
    - Add haptic level adjustment
    - Add back 1.2GHz for big cluster
    - Move to rewritten ashmem driver by sultan

    R11.1
    - Merge CAF "LA.UM.9.12.r1-10800-SMxx50.0"
    - Merge Linux 4.19.179
    - Fix SurfaceFlinger spams errors in logcat

    R11
    - Merge CAF "LA.UM.9.12.r1-10700-SMxx50.0"
    ( Including kernel, wlan and audio, video techpacks )
    - Merge Linux 4.19.178
    - Upstream lz4 zram algorithm
    - Hardcode swappiness to 160 for more aggressive zram strategy
    - Enable 4GB ZRAM
    - Add back 691mhz for small cluster
    - Prevent EAS from affecting cpuidle
    - Apply some more optimization patches

    R10.5
    - Merge Linux 4.19.177
    - Remove cpu cooling & devfreq cooling drivers
    ( Fix big cluster being limit at min freq sometimes when playing genshin impact )
    - Improve deep sleep time under mobile data
    - Apply some more optimization patches

    R10.4
    - Merge Linux 4.19.176
    - Update kernel devicetree to "LA.UM.9.12.r1-10000-SMxx50.0"
    - Add back lowest frequencies for big & prime cluster
    - Fix broken energy model due to inappropriate optimizations

    R10.3
    - Merge Linux 4.19.175
    - Update display panel commands from qssi-user-11-RP1A.201005.001-2102011801-release-keys

    R10.2
    - Fix cyberpunk theme
    - Fix cloud service on hydrogen os

    R10.1
    - Merge Linux 4.19.174
    - Cleanup and optimize defconfig
    - Simplify dtbo building
    - Reduce zip size ~ 30%

    R10
    - Merge CAF "LA.UM.9.12.r1-10300-SMxx50.0"
    ( Including kernel, wlan and audio, display techpacks )
    - Cleanup unused debug codes in wlan drivers
    - Don't allow userspace trigger process reclaim
    - Remove cpuidle sleep_disable usage in haptic drivers, and remove sleep_disable node from userspace.

    R9.3
    - Merge Linux 4.19.173
    - Ship builds with zips

    R9.2.1
    - Fix blurred screen and crashes on some Oneplus 8P when playing videos with MEMC on.
    - Oneplus 8 Pro Only

    R9.2
    - Merge Linux 4.19.172
    - Fix ufs workqueue overheads
    - Optimize memcpy, memmove, memcmp, crc32, checksum, xor libraries
    - Affine unbound workqueues to little CPUs by default
    - Make the devfreq monitor workqueue high priority
    - Add automatic memory compaction mechanism
    - More I forgot
    - Theres no change in dtbo compared to R9.1, so no need to update

    R9.1
    - Merge Linux 4.19.168 169 170 171
    - Move to simplified frequency table
    - Fix wifi not working on new Chinese version of Oneplus 8T
    - Don't limit CPU frequency when gaming
    - Optimize GPU scheduling under high refresh rate
    - Theres no change in dtbo compared to R9, so no need to update

    R9
    - Merge CAF "LA.UM.9.12.r1-10000-SMxx50.0"
    ( Including kernel, wlan and audio, video, display techpacks )
    - Merge Linux 4.19.166
    - Merge Linux 4.19.167
    - Add support for checking cpu voltage via kernel logs
    - Theres no change in dtbo compared to R8.4, so no need to update

    R8.4
    - Merge Linux 4.19.165
    - Disable ZRAM & SWAP
    - Theres no change in dtbo compared to R8.3, so no need to update

    R8.3
    - Merge Linux 4.19.164
    - Theres no change in dtbo compared to R8.2, so no need to update

    R8.2
    - Don't force run display & touchscreen irqs and threads on big cluster to save power
    - Remove max boost for little cluster on switching apps to save power
    - Introduce dynamic cpuset for display group, migrating tasks to big cluster on switching apps to improve smoothness
    - Fix lags when little cluster is under heavy load
    - Relax touchscreen cpu latency requirement to save power
    - Relax UFS cpu latency requirement to save power
    - Align CPU latency requirements with kona C-States
    - Remove iowait boost from schedhorizon
    - Don't force 4k buffer allocations for ION
    - Update Magisk in the image to v21.2
    - Fix force 240hz fails after exiting a game
    - Theres no change in dtbo compared to R8.1, so no need to update

    R8.1
    - Merge CAF "LA.UM.9.12.r1-09500-SMxx50.0"
    ( Including kernel, wlan and audio, video, display techpacks )
    - Build oneplus param read/write drivers, cyberpunk theme should work now
    - Optimize pm_qos usage for touchscreen drivers on OP8 & OP8P
    - Re-enable pm_qos usage for UFS drivers
    - Use 100Hz timer frequency
    - Never allow irq affine on more than one cpu
    - Optimize pm_qos framework
    - Optimize pm_qos usage for UFS drivers
    - Optimize cpuidle framework
    - Force run important display & touchscreen & lmk irqs and threads on big cluster
    - Cleanup codes in kgsl & display techpack and optimize pm_qos usage
    - Move to rewritten iommu & ion drivers
    - ........... ( Check github for details )
    - Theres no change in dtbo compared to R7.2, so no need to update

    R7.2
    - Merge Linux 4.19.163
    - Theres no change in dtbo compared to R7.1, so no need to update

    R7.1
    - Merge Linux 4.19.162
    - Re-enable lpm idle prediction
    - Move to fq_codel qdisc
    - Enable TCP ECN negotiation by default
    - Don't force enable panel ULPS suspend
    - Theres no change in dtbo compared to R7, so no need to update

    R7
    - Merge CAF "LA.UM.9.12.r1-09300-SMxx50.0"
    ( Including kernel and audio, display techpacks and wlan drivers )
    - Merge Linux 4.19.161
    - Build and enable vDSO32
    - Don't force offline big & prime cluster on screen off ( Fix fp reject and lags on AOD )
    - Move back to mem deep sleep mode
    - Don't force 240Hz touchpanel sample rate on Oneplus 8T & 8Pro ( But you can still enable it by writing 1 to /proc/touchpanel/force_game_switch_enable )
    - Cleanup rx_wakelock codes in wlan drivers
    - Force enable ULPS(Ultra Low Power State) and ULPS suspend for display panel
    - Force allow panel phy power off on idle
    - Re-align gpu idle timeout & input boost duration with display panel ULPS delay
    - Enable Clang ThinLTO optimizations
    - Lower the priority of f2fs gc task
    - Disable expedited RCU grace periods for powersave
    - Remove display ramdump memory region (free 8MB of RAM)
    - Disable cpuidle idle prediction feature for powersave
    - Implement fast refcount checking for arm64
    - Prefetch operands to speed up atomic operations
    - More I forgot
    - Theres no change in dtbo compared to R6.4, so no need to update

    R6.4
    - Merge linux 4.19.160
    - Theres no change in dtbo compared to R6.3, so no need to update

    R6.3
    - Merge linux 4.19.159
    - Theres no change in dtbo compared to R6.2, so no need to update

    R6.2
    - Merge linux 4.19.158
    - Move to s2idle deep sleep mode
    - Apply some touchscreen drivers' simplifying and optimizations
    - Theres no change in dtbo compared to R6.1, so no need to update

    R6.1
    - Update Proton Clang version

    dtbo image has been updated:
    - Fix random kernel panic caused by freeing too much reserved memory

    R6
    - Merge Linux 4.19.157
    - Merge CAF “LA.UM.9.12.r1-09000-SMxx50.0”
    ( Include kernel, wlan and audio, video, display techpacks )
    - Update wireguard to v1.0.20201112
    - Merge Simple Lmk update
    - Force 240Hz touchpanel sample rate for Oneplus 8 Pro & Oneplus 8T
    - Touchpanel sample rate will no longer drop after switching to 60Hz screen refresh rate on Oneplus 8T & Oneplus 8Pro
    - Update magisk to v21.1

    dtbo image has been updated:
    - Remove unused reserved memory regions (~12MB)

    R5.5
    - Merge Linux 4.19.156
    - Move to Simple Lmk as lowmemorykiller
    - Disable userspace lmkd
    - Enable userspace CNTVCT_EL0 access for vDSO to accelerate request
    - Theres no change in dtbo compared to R5.4, so no need to update.

    R5.4
    - Merge Linux 4.19.155
    - Theres no change in dtbo compared to R5.3, so no need to update.

    R5.3
    - Fix cpu cores oscillationally on/off on aod fingerprint pressing
    - Fix logic of screen on/off detection
    - Improve speed of aod fingerprint
    - Theres no change in dtbo compared to R5.2, so no need to update.

    R5.2
    - Optimize logic of "Optimize fingerprint speed on aod mode"
    - Fix priority of fingerprint hal not changing successfully
    - Optimize smoothness when entering recent apps
    - Optimize smoothness when switching between apps
    - Optimize app launching speed
    - Theres no change in dtbo compared to R5.1, so no need to update.

    R5.1
    - Optimize fingerprint speed on aod mode
    - Theres no change in dtbo compared to R5, so no need to update.

    R5
    - Merge Linux 4.19.154
    - Fix camera on Oneplus 8T
    - Speed up mremap by 20x on large regions
    - Disable Privileged Access Never emulation, speed up syscalls 2x
    - Theres no change in dtbo compared to R4, so no need to update.

    R4
    - Merge Linux 4.19.153
    - Merge CAF "LA.UM.9.12.r1-08900-SMxx50.0"
    ( Including kernel and wifi drivers, audio, video, display techpacks )
    - Update boot image base to OOS OB3 for OP8 & OP8P
    - Camera on 8T havent been fixed on this build
    - Theres no change in dtbo compared to R3, so no need to update.

    R3
    - Merge oneplus oss update
    - Add support for Oneplus 8T
    - Enable 1.2GHz input boost for big cluster
    - Remove schedhorizon governor 1.6GHz(prime) 1.2GHz(big) efficient_freq
    - Allow foreground apps migrate to big cluster on touch
    - Relax boost duration on no input to 3s

    UI Bench Result
    - Jitter: ~0.3ms -> ~0.2ms
    - Total duration: ~4ms -> ~3ms

    - Dtbo image has been updated, reflashing is recommended

    R2
    - Merge Linux 4.19.152
    - Merge CAF "LA.UM.9.12.r1-08600-SMxx50.0"
    - Update wifi drivers to "LA.UM.9.12.r1-08600-SMxx50.0"
    - Update display & video techpacks to "LA.UM.9.12.r1-08600-SMxx50.0"
    - Theres no change in dtbo compared to R1.1, so no need to update.

    R1.1
    - Merge Linux 4.19.151
    - Theres no change in dtbo compared to R1, so no need to update.

    R1
    - Stable release is here
    ( Coz no one reports bug to me lol )
    - Merge Linux 4.19.150
    - Enable ntfs & exfat drivers
    - Theres no change on dtbo image compared to B2, so no need to update

    B2
    - Merge Linux 4.19.149
    - Update audio & video & display techpacks to CAF "LA.UM.9.12.r1-08300-SMxx50.0"
    - Add Klapse support
    ( Now you can turn brightness )
    - Disable unused arm64 errata
    - Disable wireless charging drivers for oneplus8
    - Disbale iris drivers for oneplus8
    - Start building dtbo image, flash it as you want.
    ( It could provide node /proc/touchpanel/glove_mode_enable for glove mode, you can write 1 to enable it )

    B1
    - Initial bring up
    4
    you have an incredibly clean, and well-optimized kernel. and it isnt barebones. incredible, sir. incredible. fantastic work. thank you for this. keep it up.
    3
    Download legacy builds (Before R9.3)
    https://dl.akr-developers.com/?dir=oneplus/horizon_kernel/R/images

    As we don't have a perfect TWRP for OOS 11 for now, I only provide boot images.
    op8=Oneplus 8 boot image
    op8p=Oneplus 8 Pro boot image
    dtbo=dtbo partition image
    Bx=Beta X

    Flashing dtbo is optional but recommended
    Note: Video frame insertion may be broken if you don't flash dtbo on Oneplus 8 Pro
    ( Report from a H2OS user )
    Also it could provide node /proc/touchpanel/glove_mode_enable for glove mode, you can write 1 to enable it

    Flash the images via fastboot
    fastboot flash boot xxx
    fastboot flash dtbo xxx
    Google for it if you don't know that

    Those boot images are tested on OOS OB3 & H2OS OB4.
    2
    Works in Android 11 full stable (uploaded in Franco Menager).

    However, I believe that the GPU clock speed could be higher than 670 MHz. Relax, these 750 MHz would be fully stable. And even 800 MHz. Maybe the author will consider adding Adreno clocks higher than 670 MHz to the current state of the kernel? e.g. 670, 700, 750 and 800 MHz. Although there is a kernel where you can set 900 MHz on the GPU (SmurfKernel 1.1.0) but here it is not guaranteed 100% stability.

    OnePlus 8 12/256 Antutu 8.5.2 scored:
    You can overclock it yourself with this tool