[OnePlus 7 Pro ROMs, Kernels, Recoveries, & Other D] Freak07:
Kirisakura-Kernel for the One Plus 7 Pro

Hello everyone,

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!

This project aims to keep most of the subsystems updated, way ahead of the stock kernel, thereby improving security and performance, while keeping stability as the foucs during testing! This includes Linux-Stable, CAF-Upstream and kernel/common.

Kernel Control Flow Integrity (Kernel-CFI), which is achieved by linking the kernel with LLD and Link Time Optimization (LTO), more precisely ThinLTO, are quite unique security features.

The only kernels made by OEMs offering this security feature by default are the ones for the Pixel 3, 4 and 5 devices.

The recently released Kirisakura-Kernel for the OnePlus 8 Pro was featured on the XDA-Portal due to the inclusion of CFI. The featured article explains CFI in great details, is easy to understand and definitely worth to read.

If possible the latest Kirisakura-Kernel releases for various devices aim to include CFI in enforcing mode so users can benefit from this security features.

Another security feature is Shadow Call Stack (SCS). Similar to CFI, only the Pixel 3, 4 and 5 kernels use this security feature.

SCS is another security patchset that is aimed at preventing attacks via return oriented programming (ROP).

ROP is a technique where the attacker gains control of the kernel stack to overwrite function return addresses and redirect execution to carefully selected parts of existing kernel code.

If you´re interested here are a few good links:

Google Security Blog explaining SCS.

LLVM doc about SCS

Android DOCs documenting SCS

If reading about upstream in the paragraph above got you curious,have a read about Linux-Stable and why it is important here. The stable-process is not the same for every subsystem, but the general idea, rule of thumb and benefits are applicable for other subsystems as well.

Quick explanation of CAF-Upstream. CAF is short for Codeaurora-Forums. This is the place where development from Qualcomm for their SoCs happens. This includes the Snapdragon 855/+ that´s built into the different SKUs of the OP7/T/Pro.

The kernel-bases available on the Codeaurora-Forums, are basically the foundations OEMs use, to build their own kernel additions on top for devices featuring Qualcomm SoCs.

The Qualcomm developers push regular updates to the bases of the different SoCs, a bit similar to how Linux-Upstream works. Most OEMs usually stop updating the initial base after the phone is released, and only cherry-pick certain commits to be in line with the android security bulletin.

This kernel focuses amongst the other features to merge CAF-Updates in a regular manner, to provide updates, improvements and enhancements for SoC specific drivers and subsystems! This might take a while, because a lot of device specific testing is done on my end to ensure stability.

The EAS implementation from 4.19 CAF (sd865/+) was ported to this kernel. There are several interesting mechanisms qcom worked on. The basic layout of the soc architecture ( 4xLittle- , 3xBig- and 1x Prime-Core(s)) has not changed from SD855 to SD865. That means instead of revolution there was a very nice evolution the scheduler underwent.

The kernel includes a lot of improvements and contributions from other developers as well. Without this kernel would not exist.

Many of the improvements originate from @arter97´s, @kdrag0n´s, @RenderBroken´s and @Sultanxda´s work. Many others contributed in some way or another to this kernel.

A big thanks to all of them at this place!

Now lets continue with a list of features in the next paragraph!

Main Features:

- Based on latest kernel sources from OnePlus for Android 11 primarily intended for use on OOS stock firmware

- Upstreamed against latest CAF

- Linux-Stable-Upstream included to latest 4.14.243

- compiled with Clang 13.0.1 prebuilt from Google

- built with -O3 speed optimizations

- Link-Time-Optimization (ThinLTO)

- Kernel Control-Flow-Integration (CFI)

- Shadow Call Stack (SCS) Security-Feature

- Use ThinLTO which was first used in the Pixel 4 XL Android R-Preview Kernel instead of full LTO for full program visibility (needed by CFI)

- fix CFI-Violations found in various subsystems like OnePlus/device specific drivers and qualcomm drivers

- Link the kernel with LLD and use RELR-Relocation

- include important fixes/improvements from kernel/common

- Flashing the kernel will keep root!

- Anykernel zip is based on the Anykernel3 repo from @osm0sis

- include vDSO 32 patches to improve 32-bit performance

- devfreq backports from 5.4 (sd 888 qcom kernel base)

- disable various debugging configs, that are not needed in a perf build kernel according to google.

- Removed RTB(interrupt) logging entirely

- disable selinux auditing (we don´t have to adress selinux denials running a stock rom)

- fix several coding issues detected by newer Clang-Toolchains

EAS related features:

- EAS scheduler backported from 4.19 CAF and 5.4 CAF / QCOM SOurce(SD865/SD888)

- adjust powerhal to account for scheduler backports

- disable autogroups and use cgroups for more efficient task placement!

- updates from kernel/common

- scheduler updates from Googles Pixel kernel

CPU related features:

- dynamic WALT-Windows based on FPS (more information here and here )

- 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

- include cpuidle patches from CAF

- improvements to cpufreq/times/stats

- improve memory allocations in binder driver

- vdso32 patches as found on Google Pixel devices (brief documentation here)

- arm64: lse: Prefetch operands to speed up atomic operations

- improve bluetooth performance

- improve /proc performance

- remove VLA-usage (info)

- option to disable touchboost in msm_performance

- disable coresight, enable coresight placeholder and add proper disabled clocks for sd 855

File System related features:

- improve memory allocations in sdcardfs

- improve memory allocations in kernfs

- writeback: hardcode dirty_expire_centisecs=3000 based on this commit

- ufs improvements from pixel 4/ pixel 5 kernel

- default IO scheduler to CFQ and readahead to 128

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

- add support for steam controller

- add support for nintendo switch controller

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

- display tweaks to save power on statically rendered images (taken from samsung galaxy source, which uses a very similar panel)

- improve memory allocation

GPU related features:

- 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

- add low_prio_worker thread for gpu driver (Improves performance when tearing down processes (eg, via LMK) and not blocking currently running UI from submitting work to the GPU

- remove debugging tracing from GPU driver

- improve memory allocation

Network related features:

- Wireguard Support (Details)

- advanced TCP algorithms enabled

- includes new bbr and bbrv2 (default to bbr as advised by @kdrag0n )

Memory related features:

- Memory Management patches from mainline kernel

- Speculative Page Faults (1. 2) (CAF-default)

- Fix various memory leaks in different subsystems

- allow ZRAM to use higher swappiness values than 100

- default ZRAM algorithm set to lz4 (fastest compression/decompression speeds)

- possibility to use lzo-rle as default ZRAM compression algorithm (more information here and there )

- possibility to use zstd as default ZRAM compression algorithm ( higher compression ratio, slightly lower compression decompression speed, more information and benchmarks here)

- free up memory by removing unused memory regions from dts

- improved performance for unity based games

- improved lz4 performance

Security related features:

- Control-Flow-Integration (CFI) and Link-Time-Optimization (LTO) ported from 4.19 kernel/common and Pixel 4/XL Kernel

- Use ThinLTO which was first used in the Pixel 4 XL Android R-Kernel instead of full LTO

- Shadow Call Stack (SCS) Security-Feature

- fix various CFI-Violations found in various subsystems like Asus/device specific drivers and qualcomm drivers

- enable init_on_alloc for even more security, more information can be found in the commit message

WLAN Driver:

- use CAF wlan driver and compile it inline, the only way to ensure working wlan with this kernel

- the kernel cannot even force load prebuild WLAN module as the kernel base is way to far from stock!

- do no longer rely on the pre compiled wlan driver module

- completely removed qcom_rx wakelock in the wlan driver

- removed debugging from wlan driver

- removed logging from wlan driver

Scheduler Setup and Kernel Settings:

- kernel setting get automatically applied at boot

- an AK3 helper module is automatically installed during flashing ( do not remove it in magisk manager)

Misc Features:

Wakelock Blocker:

- advanced wakelock blocker with the ability to block any wakelocks (dangerous, use with caution)

- please read [URL="https://arstechnica.com/gadgets/2018/08/p-is-for-power-how-google-tests-tracks-and-improves-android-battery-life/"]this for further info

- blocking a kernel wakelock should only be done in case of firmware incompatabilities (WiFi network at work (can´t be changed) causes deep sleep to not work on the phone.) That´s the only use case I see for this feature. The kernel does not features this to improve battery life!

Requirements

- unlocked Bootloader

- USB-Debugging in developer options enabled

- latest adb and fastboot binaries

- working adb and fastboot environment

- magisk root

- be aware kernel is primarily made for OOS, certain custom roms might not boot or have features broken

How to flash the Kernel:

1. Download the latest kernel.zip

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!

1b. Optional: The stock kernel can be restored by either dirty flashing the firmware.zip or by restoring the stock dtbo.img as well as boot.img. Those can be extracted via payload extractor from the firmware.zip.

2. Make sure to use latest Magisk stable.

3. Flash the kernel.zip via latest EXKM or FKM app. Alternatively via TWRP if TWRP is working.

4. Reboot and profit. After flashing the kernel in magisk manager there will be a module called AK3 Helper Module, do not delete it.

DOWNLOAD:

Download is located always in this folder:

Android 11:

Downloads for : -Android- Generic Device/Other | AndroidFileHost.com | Download GApps, Roms, Kernels, Themes, Firmware and more. Free file hosting for all Android developers.

Download GApps, Roms, Kernels, Themes, Firmware, and more. Free file hosting for all Android developers.

www.androidfilehost.com

Android 10:

https://www.androidfilehost.com/?w=files&flid=300422

Android Pie:

https://www.androidfilehost.com/?w=files&flid=294636

Important: Read after Download

Please take a look at the second post after flashing the kernel!

Changelog:

Android 9/Pie

1.0.0 Initial Release

1.2.0 https://xdaforums.com/showpost.php?p=79657888&postcount=133

1.3.0 https://xdaforums.com/showpost.php?p=79681205&postcount=212

1.4.0 https://xdaforums.com/showpost.php?p=79715609&postcount=266

1.5.0 https://xdaforums.com/showpost.php?p=79759064&postcount=369

1.6.0 https://xdaforums.com/showpost.php?p=79812896&postcount=533

1.7.0 https://xdaforums.com/showpost.php?p=79870285&postcount=624

2.0.0 https://xdaforums.com/showpost.php?p=79958105&postcount=732

2.3.0 https://xdaforums.com/showpost.php?p=79994692&postcount=821

2.8.0 https://xdaforums.com/showpost.php?p=80174759&postcount=1003

2.9.0 https://xdaforums.com/showpost.php?p=80246585&postcount=1062

Android 10/Q:

1.0.0 https://xdaforums.com/showpost.php?p=80519841&postcount=1164

1.0.1 https://xdaforums.com/showpost.php?p=80533419&postcount=1186

1.2.0 https://xdaforums.com/showpost.php?p=80606335&postcount=1275

1.3.0 https://xdaforums.com/showpost.php?p=80789819&postcount=1381

1.4.0 https://xdaforums.com/showpost.php?p=81033561&postcount=1472

1.6.0 https://xdaforums.com/showpost.php?p=81399355&postcount=1574

1.7.0 https://xdaforums.com/showpost.php?p=81684441&postcount=1675

1.9.1 https://xdaforums.com/showpost.php?p=82120413&postcount=1737

1.9.7 https://xdaforums.com/showpost.php?p=82743109&postcount=2002

2.0.0 https://xdaforums.com/showpost.php?p=83555997&postcount=2163

Android 11/R

1.1.0_R https://xdaforums.com/t/kernel-22-0...r-op7-pro-aka-guacamole.3933916/post-84786595

1.1.1_R https://xdaforums.com/t/kernel-06-0...r-op7-pro-aka-guacamole.3933916/post-84793145

1.1.3_R https://xdaforums.com/t/kernel-10-0...r-op7-pro-aka-guacamole.3933916/post-84812661

1.1.4_R https://xdaforums.com/t/kernel-10-0...r-op7-pro-aka-guacamole.3933916/post-84853537

1.1.6_R https://xdaforums.com/t/kernel-17-0...r-op7-pro-aka-guacamole.3933916/post-84900619

1.3.9_R https://xdaforums.com/t/kernel-25-0...r-op7-pro-aka-guacamole.3933916/post-85510637

Donations:

Donations are not mandatory but very welcome! :)

If you want to support development or just buy me a coffee/tea to get development going: http://paypal.me/freak07

Credits:

@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

@kdrag0n for giving me advice

@topjohnwu for magisk!

@osm0sis for anykernel!

Contributors

Freak07

Source Code: https://github.com/freak07/Kirisakura_OP7Pro_A11

Kernel Special Features:

Version Information

Status: Stable

Created 2019-05-26

Last Updated 2020-09-26