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

Hello everyone,

To keep it short: Here is Kirisakura - Kernel for the Google Pixel 6 Pro aka Raven and the Pixel 6 aka Oriole, together Raviole.

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.

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:

Main Features:

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

- Linux-Stable-Upstream included to 5.10.215

- Compiled with prebuilt Google clang 18.0.0

- EEVDF scheduler patches

- lockless slab shrinker

- Backport entire RCU subsystem to Linux 6.0

- 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

- 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

- FHD Support for Pixel 6 Pro (display is able to run at 1080p), more info here and here

- 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 (currently disabled as Google remotely disables the prop)

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

- greatly speed up camera launch time!

- Utilize an additional kswapd thread to increase throughput for memory reclaim

- 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

- improve trusty driver performance which connects to fingerprintscanner-hal by using high perf wq during fp unlock

- 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

- 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 updates from linux-main

- use improved energy model for exynos cpu cooling/thermal control

- allow GPU to scale down to 150mhz, but boost to higher value in case of interaction via powerhal

- 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

- Include LRNG, see here and here for more info, bump to v45 with 3.0.0

- important patches from kernel/common for 5.10 (here are more details)

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

- dirty pipe exploit fixed

- supports direct usb access for hi-res playback over USB-C DACs

- 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

Various Optimizations:

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

- kernfs: use buffer from the stack space

- printk: use buffer from the stack space

- kthread: use buffer from the stack space

- bpf: avoid dynamic memory allocation for small value buffers

- binder: Reserve caches for small, high-frequency memory allocations

- kernfs: use kmem_cache pool for struct kernfs_open_node/file

- cgroup: use kmem_cache pool for struct cgrp_cset_link

- f2fs: reduce timeout for uncongestion

- f2fs: Demote GC thread to idle scheduler class

- f2fs: set ioprio of GC kthread to idle

- mm: vmstat: use power efficient workingqueues

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

AK3 Helper 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 (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)

- dynamically adjust target load for memory interface during interaction

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

DOWNLOAD:

Download is always located in this folder:

4.2.0, 4.3.0, 4.4.0, 4.4.1, 4.4.2 are attached to the release posts linked below as AFH is wonky at the moment.

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

Changelog:

Android 12.0.0

1.0.0 Initial Release

1.0.2 https://xdaforums.com/t/kernel-07-1...r-pixel-6-pro-aka-raven.4358435/post-85910621

1.0.5 https://xdaforums.com/t/kernel-08-1...r-pixel-6-pro-aka-raven.4358435/post-85924419

1.3.0 https://xdaforums.com/t/kernel-11-1...pixel-6-pro-aka-raviole.4358435/post-85976139

1.4.0 https://xdaforums.com/t/kernel-15-1...pixel-6-pro-aka-raviole.4358435/post-86109665

1.5.0 https://xdaforums.com/t/kernel-16-1...pixel-6-pro-aka-raviole.4358435/post-86259863

1.7.0 https://xdaforums.com/t/kernel-15-0...pixel-6-pro-aka-raviole.4358435/post-86390563

1.8.4 https://xdaforums.com/t/kernel-08-0...pixel-6-pro-aka-raviole.4358435/post-86541727

Android 12.1.0 Stable (March feature drop and more recent)

2.0.0 https://xdaforums.com/t/kernel-08-0...pixel-6-pro-aka-raviole.4358435/post-86617873

2.0.1 https://xdaforums.com/t/kernel-22-0...pixel-6-pro-aka-raviole.4358435/post-86637233

2.1.0 https://xdaforums.com/t/kernel-25-0...pixel-6-pro-aka-raviole.4358435/post-86695911

2.3.0 https://xdaforums.com/t/kernel-28-0...pixel-6-pro-aka-raviole.4358435/post-86821331

2.4.0 https://xdaforums.com/t/kernel-30-0...pixel-6-pro-aka-raviole.4358435/post-86834981

Android 12.1.0 Stable (June feature drop and more recent)

3.0.0 https://xdaforums.com/t/kernel-03-0...pixel-6-pro-aka-raviole.4358435/post-86992705

3.0.1 https://xdaforums.com/t/kernel-07-0...pixel-6-pro-aka-raviole.4358435/post-86996237

3.0.17 https://xdaforums.com/t/kernel-08-0...pixel-6-pro-aka-raviole.4358435/post-87127695

Android 13.0.0 Stable (not QPR beta!)

4.1.0 https://xdaforums.com/t/kernel-09-0...pixel-6-pro-aka-raviole.4358435/post-87290247

4.1.6 https://xdaforums.com/t/kernel-16-0...pixel-6-pro-aka-raviole.4358435/post-87399635

4.2.0 https://xdaforums.com/t/kernel-06-0...pixel-6-pro-aka-raviole.4358435/post-87524609

4.3.0 https://xdaforums.com/t/kernel-04-1...pixel-6-pro-aka-raviole.4358435/post-87697425

4.4.0 https://xdaforums.com/t/kernel-08-1...pixel-6-pro-aka-raviole.4358435/post-87823333

4.4.1 https://xdaforums.com/t/kernel-06-1...pixel-6-pro-aka-raviole.4358435/post-87944879

4.4.2 https://xdaforums.com/t/kernel-04-0...pixel-6-pro-aka-raviole.4358435/post-88118201

Raviantha 1.0.0 https://xdaforums.com/t/kernel-09-0...pixel-6-pro-aka-raviole.4358435/post-88316223

Raviantah 1.0.2 https://xdaforums.com/t/kernel-21-0...pixel-6-pro-aka-raviole.4358435/post-88399941

Raviantah 1.1.0 https://xdaforums.com/t/kernel-11-0...pixel-6-pro-aka-raviole.4358435/post-88645115

Raviantah 1.1.2 https://xdaforums.com/t/kernel-14-0...pixel-6-pro-aka-raviole.4358435/post-88719665

Raviantah 1.1.3 https://xdaforums.com/t/kernel-06-0...pixel-6-pro-aka-raviole.4358435/post-88847787

Raviantah 1.1.5 https://xdaforums.com/t/kernel-08-0...pixel-6-pro-aka-raviole.4358435/post-89041877

Android 14.0.0 Stable (NOT QPR BETA)

Raviantah 2.0.0 https://xdaforums.com/t/kernel-24-0...pixel-6-pro-aka-raviole.4358435/post-89087375

Raviantah 2.0.2 https://xdaforums.com/t/kernel-07-1...pixel-6-pro-aka-raviole.4358435/post-89149241

Raviantah 2.1.0 https://xdaforums.com/t/kernel-08-1...pixel-6-pro-aka-raviole.4358435/post-89205122

Raviantah 2.2.0 https://xdaforums.com/t/kernel-07-1...pixel-6-pro-aka-raviole.4358435/post-89384479

Raviantah 2.2.4 https://xdaforums.com/t/kernel-06-0...pixel-6-pro-aka-raviole.4358435/post-89499821

Raviantah 2.3.0 https://xdaforums.com/t/kernel-10-0...pixel-6-pro-aka-raviole.4358435/post-89556673

Android 12L QPR Beta - Deprecated

Spoiler content hidden.

Requirements

- the kernel is made for the stock firmware provided by Google, pay attention to flash a kernel release matching the firmware (flashing on custom roms might work, but you may need workarounds!)

- 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! (take a look here)

How to flash the Kernel:

1a. Make sure you tick all the requirements above

1. Download the correct kernel.zip depending on your device (Pixel 6 = oriole || Pixel 6 Pro = raven)

2. Flash the correct kernel.zip via EXKM, FKM or kernel flasher. Root will be preserved. The AK3 magisk helper module will be automatically installed during flashing the kernel.zip and be present on next reboot.

Do not remove or disable the AK3 Magisk Helper Module otherwise the device will bootloop.

3. Reboot and profit.

Manual installation is no longer supported starting with release 3.0.0, as there´s a free open-source option to flash kernel.zips now.

Instead use the free kernel flasher, which can be found here.

Spoiler content hidden.

Spoiler content hidden.

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 pixel 6!

@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