[Google Pixel 7 Pro] Freak07:
Kirisakura-Kernel for the Pixel 7/Pro

Hello everyone,

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 those contributtion this kernel would not exist as it is.

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:

Main Features:

- Based on latest A14 kernel sources from Google, Kernel is made for Android 14 Stable

- Linux-Stable-Upstream included to 5.10.216

- Compiled with prebuilt Google clang 18.0.1

- EEVDF scheduler patches

- lockless slab shrinker

- Backport entire RCU subsystem to latest linux

- Lazy RCU which should result in power-savings while the device is lightly-loaded or idling, more information here

- Backport Maple tree from Linux 6.1

- improve preallocations from maple tree (affects especially android)

- reduce necessity to rewalk the maple tree

- Per VMA-locks in conjunction with Maple Tree RCU-Mode (improve app launch time, this feature in general benefits greatly from lazy rcu!)

- further improve maple tree/per-vma locks introduced in an earlier release

- Dynamic Energy Models depending on device state

- make TEO-Cpuidle util-aware (improves latency, performance and decreases energy consumption for certain workloads, more information here)

- introduce runnable boosting, wire it up with pixel_sched

- improve CPU throttling behaviour

- improvements to uclamp, prevent capacity inversion (reduce missed frames)

- greatly speed up camera launch time!

- merged kernel/common (improvements to android-common-kernel straight from google)

- MM subsystem reworked (more info and some patchsets linked in this post)

- Multi-gen LRU backported/reworked and enabled (more info here, here as well and here) to improve mm and reduce cpu cycles, latest V15 state (current state disabled, as google remotely controls the prop)

- pelt multiplier tied into powerhal to speed up scheduler during interaction (more info here)

- prevent frequency spikes caused by small transient tasks when the device is idle(more info here)

- 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, more information here)

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

- merge and enable f2fs block_age-based extent cache (improve the accuracy for data temperature classification, reduce the garbage collection overhead after long-term data updates)

- 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 (here are more details)

- increase priority of GPU work

- 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

- improve ZRAM usage

- reduce overhead

- improve performance and efficiency by properly wiring up pixel_sched with teo util awareness (thanks @ada12 for spotting this!)

- update to cpuset/cgroup subsystem (speeds up camera launches, device unlocks etc as cpusets are switched on those conditions, patches reduce overhead in those conditions)

- flashing the kernel will preserve root

CleanSlate Features

- CleanSlate Features from @tbalden, big applause here! (s2s, notification booster, battery saver, flashlight notifications. Please note: cleanslate features that work otherwise with rooted devices like kadaway (adblocking) are not implemented on this kernel since I´m running rooted)

- Check the CleanSlate thread for more information about those features

- The CleanSlate thread also contains the apps that allows you to control those features!

- If you consider those features useful, maybe consider purchasing the apps in the PlayStore or a small donation to @tbalden, he deserves it! Don´t forget to switch to beta channel for those apps, as this is needed for device running A13!

Various Optimizations:

- update several drivers to use power efficient workingqueues (for example wlan driver)

- f2fs: reduce timeout for uncongestion

- f2fs: Demote GC thread to idle scheduler class

- f2fs: set ioprio of GC kthread to idle

- tcp: enable advanced tcp, give user more options for tcp alorithm

- mm: vmstat: use power efficient workingqueues

Wakelock Blocker:

- advanced wakelock blocker with the ability to block kernel wakelocks (dangerous, use with caution, please read this for further info). You should only block kernel wakelocks in case you face uncontrollable scenarios, like company wifi causing a wakelock to be active 100% of the time! Blocking kernel wakelocks to "improve" battery life almost always backfires and causes issues!

Powerhint Module:

- restrict little cluster to 1,4ghz mid cluster to 1,4ghz and big cluster to 1,4ghz during screen off, to reduce battery usage for example during music playback

- only use little cores during screen off/device suspend

- account for scheduler and other changes done to the kernel

- boost memory interface controller during interaction (decreased missed frames, improved soc efficiency according to google docs)

- tie pelt multiplier into the powerhal (more info here)

- prevent frequency spikes caused by small transient tasks during idle operation (more info here)

- boost scheduler using the pelt multiplier during fingerprint unlock operation

- setup and control PMU limiter via powerhal (more info here)

- switch between default and custom idle energy model on device is being interacted with / device idle.

- reduce missed frames during scrolling/device interaction by adjusting uclamp boosts

- dynamically adjust target load for memory interface during interaction.

- remove dynamic GPU policy change as it´s causing instability and is unneeded due to GVFS period

- implement handling during video recording of CPU like Google did on QPR A13

- more small improvements

DOWNLOAD:

Downloads are attached to the release posts linked below in the changelog section.

Please note that androidfilehost is currently not working properly.

Link to AFH:

Spoiler content hidden.

Changelog:

Android 13.0.0/14.0.0 Stable (not QPR beta!)

1.0.0 Initial Release | Mirror for Download in case AFH is not working

1.1.0 https://xdaforums.com/t/kernel-24-1...-pixel-7-pro-aka-pantah.4509795/post-87743627

1.2.0 https://xdaforums.com/t/kernel-18-1...-pixel-7-pro-aka-pantah.4509795/post-87822161

1.2.1 https://xdaforums.com/t/kernel-06-1...-pixel-7-pro-aka-pantah.4509795/post-87878321

1.2.2 https://xdaforums.com/t/kernel-19-1...-pixel-7-pro-aka-pantah.4509795/post-87944505

1.2.3 https://xdaforums.com/t/kernel-04-0...-pixel-7-pro-aka-pantah.4509795/post-87960183

1.2.4 https://xdaforums.com/t/kernel-07-0...-pixel-7-pro-aka-pantah.4509795/post-88108123

1.3.0 https://xdaforums.com/t/kernel-07-0...-pixel-7-pro-aka-pantah.4509795/post-88286027

Raviantah_1.0.0 https://xdaforums.com/t/kernel-14-0...-pixel-7-pro-aka-pantah.4509795/post-88316285

Raviantah_1.0.1 https://xdaforums.com/t/kernel-21-0...-pixel-7-pro-aka-pantah.4509795/post-88323527

Raviantah_1.0.2 https://xdaforums.com/t/kernel-23-0...-pixel-7-pro-aka-pantah.4509795/post-88399915

Raviantah_1.0.4 https://xdaforums.com/t/kernel-11-0...-pixel-7-pro-aka-pantah.4509795/post-88497279

Raviantah_1.1.0 https://xdaforums.com/t/kernel-04-0...-pixel-7-pro-aka-pantah.4509795/post-88645103

Raviantah_1.1.2 https://xdaforums.com/t/kernel-14-0...-pixel-7-pro-aka-pantah.4509795/post-88719667

Raviantah_1.1.3 https://xdaforums.com/t/kernel-06-0...-pixel-7-pro-aka-pantah.4509795/post-88847285

Raviantah_1.1.4 https://xdaforums.com/t/kernel-08-0...-pixel-7-pro-aka-pantah.4509795/post-88866285

Raviantah_1.1.5 https://xdaforums.com/t/kernel-12-0...-pixel-7-pro-aka-pantah.4509795/post-89038079

Raviantah_1.1.6 https://xdaforums.com/t/kernel-23-0...-pixel-7-pro-aka-pantah.4509795/post-89079103

Raviantah_2.0.0 https://xdaforums.com/t/kernel-03-1...-pixel-7-pro-aka-pantah.4509795/post-89085294

Raviantah_2.0.2 https://xdaforums.com/t/kernel-06-1...-pixel-7-pro-aka-pantah.4509795/post-89149195

Raviantah_2.1.0 https://xdaforums.com/t/kernel-08-1...-pixel-7-pro-aka-pantah.4509795/post-89205141

Raviantah_2.2.0 https://xdaforums.com/t/kernel-07-1...-pixel-7-pro-aka-pantah.4509795/post-89384467

Raviantah_2.2.1 https://xdaforums.com/t/kernel-06-0...-pixel-7-pro-aka-pantah.4509795/post-89420910

Raviantah_2.2.4 https://xdaforums.com/t/kernel-26-0...-pixel-7-pro-aka-pantah.4509795/post-89499719

Raviantah_2.3.0 https://xdaforums.com/t/kernel-10-0...-pixel-7-pro-aka-pantah.4509795/post-89556678

Requirements

- vbmeta flags for verity/verification disabled (this requires a wipe if you´re coming from stock with those flags enabled), check the FAQ for information on how to do this -> not required starting from Raviantah 2.0.0

- 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, use 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!

- it´s handy to have a backup and a way to return back to stock (check the faq for that)

- make sure to download the correct kernel version for your firmware. (you can´t flash a kernel made for stable firmware on a QPR beta or dev preview and expect there to be no isses, the release posts mention which firmware the respective kernel releases are compiled for)

- this kernel is tested on stock google firmware. If you want to use it on custom roms you´re kind of on your own as I can´t account and give support for any changes custom roms apply that could render the kernel incompatible. (e.g. if you´re custom rom is still on the previous months update, there may be issues flashing an updated kernel for the next month on top or custom roms requiring specific kernel changes to work correctly )

- it´s always best to start on stock images and don´t have another custom kernel flashed when flashing this kernel for the first time. consecutive flashes can just be installed on top, if not I´ll mention it in the release post

- read the first and second post, there's a lot of valuable information

How to flash the Kernel:

1a. Make sure you tick all the requirements above

1b. Make sure to flash the release made for your firmware! Usually the release post contains information on that

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, starting from raviantah 2.0.0 the module is unified ) no longer necessary since Raviantah 2.0.2

2. Flash the powerhint module via magisk manager as you would any other magisk module! Make sure to flash the latest one. It will be mentioned in the release post if there´s an update. No longer necessary since Raviantah 2.0.2

Make sure to remove all previous installed powerhint modules before flashing Raviantah 2.0.2 and later

3. Flash the kernel.zip via EXKM, FKM or kernel flasher. Root will be preserved.

4. Reboot and profit.

Donations:

Donations are not mandatory but very welcome if you want to support development or just buy me a coffee/tea/beer :)

If you like my work: http://paypal.me/freak07

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!

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