• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

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

Search This thread


Senior Member
Jun 25, 2012


Senior Member
Mar 10, 2016
Kernel has been great since R3, still stutters in some apps (chrome, Google news) but the issue is probably with the apps being poorly optimized...
With each version is getting even better and I'm still getting the best battery life of all kernels.
Thank you Dev and keep going :cowboy:


Senior Member
Dec 25, 2011
How do we flash this kernel?

My device IN2010, OOS and magisk_patched_global_22 kernel.

>> fastboot flash boot boot.img <<---- Horizon Kernel

And bootloop fastboot mode.

There is no going back. I had to install fastboot stock rom from scratch. Good thing i got a backup.
  • Like
Reactions: Lycidias


Senior Member
Jan 9, 2015
Moto E4
OnePlus 8T
i just flashed like op said but did _a & _b in commands working great in the first 5 min


  • Screenshot_20201220-102436_1.jpg
    148.6 KB · Views: 71

Top Liked Posts

  • There are no posts matching your filters.
  • 21

    Horizon Kernel for Oneplus 8 & 8 Pro & 8T

    This kernel is mostly focus on daily experience and battery consumption


    - 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
    - .........................................


    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.

    - You tell me




    Channel & Group

    - 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

    - 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

    - Merge Linux 4.19.198
    - Revert back to old scheduling policy

    - 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

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

    - 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

    - 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

    - Linux 4.19.195
    - Fix google photos video lag on custom ROMs

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

    - Fix kernel panic when using terminal

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

    - Fix kernel panic when subsystems crash

    - 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.

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

    - 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

    - 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

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

    - 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

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

    - 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

    - 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

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

    - 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

    - 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

    - 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

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

    - Fix cyberpunk theme
    - Fix cloud service on hydrogen os

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

    - 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.

    - Merge Linux 4.19.173
    - Ship builds with zips

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

    - 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

    - 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

    - 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

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

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

    - 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

    - 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

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

    - 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

    - 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

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

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

    - 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

    - Update Proton Clang version

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

    - 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)

    - 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.

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

    - 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.

    - 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.

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

    - 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.

    - 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.

    - 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

    - 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.

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

    - 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

    - 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 )

    - Initial bring up
    Download legacy builds (Before R9.3)

    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.
    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.
    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