After rising to the most popular Kernel on Pixel 3/XL, here it is for the One Plus 7/Pro!
Kirisakura - Kernel is designed to bring a handful of beneficial features to the device, while ensuring excellent performance and smoothness to get you safely through the day!
Being the first kernel on the Pixel 3/XL forum, which features completely merged CAF, it´s now here one the One Plus 7/Pro Forums too!
It´s the first kernel on the OP7/Pro forums to have latest CAF - Source as well as latest linux-stable upstream merged in.
The kernel is fully rebased to latest available CAF source from the Codeaurora-Forums for the 4.14 msm kernel. (except charging driver for now, don´t have the same means as One Plus for testing Battery longevity, no risks there)
The kernel is also upstreamed to latest linux stable for enhanced security and stability.
Have a read about linux-stable and why it is important here
The EAS implementation is heavily updated with changes from CAF, kernel/common and other improvements.
To have a read about our scheduler, which is called EAS, take a look here:
- Based on latest kernel sources from One Plus for Android Pie
- Fully rebased on the latest SDX CAF-tag for the SD855
- Linux-Stable-Upstream included to latest 4.14.135
- compiled with Clang 9.0.5 and built with -O3 speed optimizations
- ZRAM patched up to latest kernel/common state and use LZ4 as default compression algorithm to improve memory managment
- Safety Net patches are included -> Kernel passes Safety Net
- Wake Gestures from @flar2 included
- Flashing the kernel will keep root!
- Kernel zip is flashable via EXKM app
- Anykernel zip is based on the all new Anykernel3 release from @osm0sis
- F2FS updated to latest F2FS stable (see post 3 on how to convert your phone to f2fs!)
EAS related features:
- EAS implementation patched up to latest CAF state
- disable autogroups and use cgroups for more efficient task placement!
- disable core_ctl for improved task placement and load balancing
- improved schedutil governor
- mimic pixels setup of the schedutil governor
- use schedtune boost from @joshuous to mimic Pixel-like EAS schedtune boosting behaviour
- setup cpusets like on pixel for more efficiency and better performance
CPU related features:
- Power saving workingqueues enabled by default (toggleable in EXKM)
have a read here: https://lwn.net/Articles/731052/
this complements EAS in general
- Change various drivers ( MM, audio) to user power efficient workingqueues. This should work well in conjunction with EAS
- Add hold functionality to schedtune CPU boost
- cpufreq/times vastly improved
File System related features:
- Set the bio REQ_NOENCRYPT flag (When lower layers such as dm-crypt observe the REQ_NOENCRYPT flag, it helps the I/O stack avoid redundant encryption, improving performance and power utilization. ) (CAF default)
- use blkio/cfq/cgroup setup from Pixel 3a devices (improves overall IO performance, under IO load) more information linked -> here in this post
Usability related features:
- High Brightness Mode for increasing backlight level related to brightness accessible via EXKM app
- Vibration Intensity adjustable via EXKM app
- DC Dimming setting now fully functional
GPU related features:
- KCAL to control the display
- KLAPSE integrated
- KCAL/KLAPSE: changes safety measures -> allow completely disabling two RGB values (this was requested to, for example, only have red values on night dimming)
- Enabled NAP power saving state of Adreno 630
- ability to use the new 675mhz GPU step officially introduced by CAF (OP7/Pro is set to only use 585mhz as max)
more information and benches in the 1.2.0 release post
- some display tweaks to save power on statically rendered images
The camera driver is updated to the latest state found on CAF for 4.14 devices with SD855.
These commits contain hundres of changes improving performance, fixing memory leaks, race conditions and general enhancements for the camera driver!
Network related features:
- Wireguard Support (Details)
- advanced TCP algorithms enabled
- includes new bbr
- TCP controller Agile-SD included. more information here and here
Memory related features:
- Memory Management patches from mainline kernel
- Speculative Page Faults (1. 2)
- Fix various memory leaks in different subsystems
- Reap memory of a task that receives sigkill
- disabled smartboost and memboost from OP
- enabled per process reclaim
- change the way ZRAM is used by quite a bit
- allow ZRAM to use higher swappiness values than 100
- you can find more information about ZRAM and the swapfile and how it is utilized differently than the stock kernel in the release post of 1.2.0
- ZRAM compression algorithm lz0-rle added -> more information linked here
Security related features:
- built with clang found on google repo
- use CAF wlan driver and compile it inline, the only way to ensure working wlan with this kernel
- the kernel cannot even force load OP prebuild WLAN module as the kernel base is way to far from stock!
- do no longer rely on the pre compiled OP wlan driver module, where OP doesn´t bother to release the source for
- completely removed qcom_rx wakelock (the amount of wakeups caused by this wakelock over a single night is more than 3 times as high as on my pixel 3 -> this improved overnight deep sleep by a considerable margin)
- removed debugging from wlan driver
- removed logging from wlan driver
- update it to latest CAF state
- use power efficient workingqueues
Magisk Companion Module
- it is necessary to ensure the device is in a fully working state without me needing to hard edit many system files!
- it is necessary so the kernel can still run enforcing selinux
- fix many selinux denials via magiskpolicy
- set kernel settings like I intend them to be, without the need to hard edit/add to many files to /system or /vendor
- you´re able to use auxiliary camera in GCAM
- advanced wakelock blocker with the ability to block any wakelocks (dangerous, use with caution)
- please read this for further info
- disable logging to make the kernel more lightweight in various places
- use VDSO_32 patchset from the pixel devices
Feature section for the "non visible" but perceptible improvements:
- updated binder section (responsible for interprocess communication)
- updated sdcardfs ; have a read about it here:
- unlocked Bootloader
- USB-Debugging in developer options enabled
- latest adb and fastboot binaries
- working adb and fastboot environment
- magisk root
How to flash the Kernel:
1. Download the latest kernel.zip and the latest companion magisk module
1a. Optional: While it may not be necessary all times, you may want to restore stock boot.img, re-root with magisk and optionally install twrp.zip if coming from another kernel. Before reporting issues make sure you do that! Thank you!
2. Make sure to use latest Magisk stable.
3. Flash the magisk companion module in Magisk Manager.
4. Flash the kernel.zip either in TWRP or via EXKM (starting with app version 5.07)
4a. Important: Only for flashing via EXKM: If you´re coming from the stock kernel or any kernel with AVB intact, you have to flash the kernel.zip twice with a reboot in between via EXKM! If you are unsure about avb, just flash it twice and don´t ask here.
5. Reboot and profit. Now change the wake gestures in EXKM app to your personal liking! The kernel and the magisk module itself ensure you´re running the setup that´s intended. If you change settings, you will probably lose some optimizations. Don´t come back here and complain.
You can make sure everything worked by taking a look at ZRAM and SWAP in EXKM and verifying that ZRAM is smaller than 2GB and SWAP is disabled! The ZRAM size should equal 1/8th of your total RAM size
In case you want to return to another kernel flash the cleanup zip from here and restore the stock boot.img via fastboot or simply dirty flash your rom:
Download is located always in this folder:
Important: Read after Download
Please take a look at the second post after flashing the kernel!
1.0.0 Initial Release
Donations are not mandatory but very welcome if you want to support development or just buy me a coffee
If you like my work: http://paypal.me/freak07
@osm0sis for all his work, including the ak2 installer!
@tbalden for being the best HTC wingman!
@LeeDroid for his awesome roms!
@Captain_Throwback for all the mentoring and guidance!
@Eliminater74 for bringing me into the game and the Inspiration
@nathanchance for his upstream guidance and assistance
@RenderBroken for helping me out
@flar2 for all his work
@joshuous for all the help he provided to me in the past!
@arter97 for giving me advice
@topjohnwu for magisk!
@osm0sis for anykernel!
Kirisakura-Kernel, Kernel for the OnePlus 7 Pro
Source Code: https://github.com/freak07/OP7PRO
Kernel Special Features:
Last Updated 2019-07-31