Kirisakura Kernel

60
0

By Freak07. To keep it short: Here is Kirisakura – Kernel for the Google Pixel 7 Pro aka Cheetah and the Pixel 7 aka Panther, together Pantah.
I would appreciate if everybody that flashes the kernel, reads at least once through this opening post and the following ones.

The kernel aims to keep most of the subsystems updated, way ahead of the stock kernel, thereby improving security, stability and performance!
This includes Linux-Stable, F2FS-Stable and kernel/common!
If that 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.
By merging linux-stable regularly we get most security updates months ahead of the stock kernel and also before they even end up in the android security bulletin.

The kernel includes a lot of improvements and contributions from other developers as well. Without this kernel would not exist.
A big part of improvements originate from arter97´s, kdrag0n´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!

Features:

– Based on latest A13 kernel sources from Google, Kernel is made for Android 13 Stable;
Linux-Stable-Upstream included to 5.10.149;
– Compiled with prebuilt Google clang 15.0.3;
– Merged kernel/common (improvements to android-common-kernel straight from google);
– MM subsystem reworked;
Multi-gen LRU backported/reworked and enabled (more info here, here as well and here) to improve mm and reduce cpu cycles;
Pelt multiplier tied into powerhal to speed up scheduler during interaction;
– Prevent frequency spikes caused by small transient tasks when the device is idle;
– Tie mechanism to prevent frequency spikes caused by small tasks also into powerhal;
– Scheduler improvements for RT (realtime) tasks;
– Introduce and setup PMU limiter (prevents CPU from spiking to max when it isn´t needed, based on PMU reads);
– Improve camera performance by tuning the powerhal during recording;
– Bias tasks of rt, sf and ta groups to prefer high capacity cpus during app launches, interactions;
– Improve app launches via powerhal;
– Restrict maximum CPU-Freqs during screen off/ idle to 1.1GHZ for all clusters to save power;
– Introduce unfair f2fs rwsems to prevent writer starvation and improve IO perf under heavy load;
– Fuse: give wakeup hints to scheduler to speed up compress/decompress in internal storage (details);
– Enable RCU_BOOST (details here), also fix RCU_BOOST behaviour;
– F2FS-Stable updated;
– TCP backports from mainline;
– SSG IO scheduler for reduced overhead and less CPU cycles (more lightweight and android optimized);
– Scheduler backports from linux-main;
– Mm updates from linux-main;
– Locking updates frm linux-main;
– Improve memory performance by tweaking google´s eh zram implementation;
– Fix sysfs endpoint for googles eh zram;
– Affine IRQS to CPU 7 during camera usage for improved performance as it tends to overload the little cores;
– Use bbr as default TCP congestion algorithm (fasted algo according to this excellent research from kdrag0n found here );
– Include bbrv2 from google, more info here;
– Enable support for TTL spoofing;
– Important patches from kernel/common for 5.10;
– Several updates from QPR beta, and a few from Pixel 6 that googles missed to include in the pixel 7 kernel;
– Improve thermals;
– Change compaction proactiveness based on device state for improveed memory management;
– Flashing the kernel will preserve root.
Powerhint Module

– Restrict little cluster to 1,19ghz mid cluster to 1,19ghz and big cluster to 1,1ghz during screen off, to reduce battery usage for example during music playback;
– Only use little cores during screen off/device suspend;
– Tie pelt multiplier into the powerhal;
– Prevent frequency spikes caused by small transient tasks during idle operation;
– Boost scheduler using the pelt multiplier during fingerprint unlock operation;
– Setup and control PMU limiter via powerhal;
– Change boosts to reduce jitter, jank and greatly reduce missed frames during scrolling;
– More small improvements…
Requirements:

– Vbmeta flags for verity/verification disabled (this requires a wipe if you´re coming from stock with those flags enabled);
Unlocked Bootloader;
– USB-Debugging in developer options enabled;
– Latest adb and fastboot binaries; – Working adb and fastboot environment so you can flash back to stock in case something goes wrong;
– Working Magisk environment (a device rooted with latest magisk stable in case you want to be absolutely safe).

IMPORTANT: Unrelated to the kernel, but update both slots of your phone to A13 before you flash anything to your device!

How to flash:

Make sure you tick all the requirements above:
1 – Download the kernel.zip (unified for both devices) and the correct powerhint module depending on your device (Pixel 7 = panther || Pixel 7 Pro = cheetah)
2 – Flash the powerhint module via magisk manager as you would any other magisk module;
3 – Flash the kernel.zip via EXKM, FKM or kernel flasher. Root will be preserved;
4 – Reboot and profit.

Extra Info:
Credits:

osm0sis for all his work on AK3.
tbalden for being the best HTC, Pixel, OnePlus and Asus wingman!
capntrips for all his work on the pixels, avb, hashtree patcher, the counsel and the kernel flasher!
LeeDroid and mwilky for their awesome roms and work I used on multiple devices!
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 his help and advices!
topjohnwu for magisk and his entire work!

Leave a Reply