[Google Pixel 6 Pro] Freak07:
Update to 1.4.0

Hey guys and girls,

Unfortunately I had no idea that magisk 23016 would remedy the need to disable the vbmeta flags via fastboot. Additionally I released the kernel a few minutes after the canary dropped, so I had no idea.

Sorry for those that updated later than me to December, used 23016 and didn´t disable vbmeta verity/verification via the fastboot command and ended up in bootloops.

I re-uploaded 1.4.0, which will now work fine on devices rooted with 23016 and with vbmeta flags not disabled by fastboot when updating/flashing the phone.

1.4.0 will need December firmware, it won't boot on November firmware.

I´ll also upload a separate boot.img and powerhint module for people that don´t use FKM/EXKM. I´ll put the instructions in the fourth post as to not create confusion, but also link in the OP to it.

I´ll include the changelog from 1.4.0 again in this post again in case people have missed it.

If you´re already running 1.4.0 then there´s no need to flash this update.

Alright here´s the next update and it´s a really big one. There are several significant changes in this release.

Please read through the whole post to understand the changes.

Flashable kernel.zip

I decided to ship the kernel now as a flashable zip. (thanks to @eng_stk and @osm0sis)

I was hesitant to do this at first, since vendor_dlkm is part of super. That means it´s no ordinary partition, which is the reason vendor_dlkm needs to be flashed in fastbootd. Luckily simply dd´ing vendor_dlkm does still work as a bandaid on a running device, until we find a way to "properly" flash vendor_dlkm to super. But for now that way works and is sufficient. What´s more important, I couldn´t cause havoc when I tried.

That means no more flashing via fastboot. The kernel can be flashed via EXKM or FKM app. Due to ramdisk in vendor_boot being different on Pixel 6 (oriole) and Pixel 6 Pro (raven) there are two seperate zips now.

That means this project is now completely like I envisioned it in the beginning. The prior release missed several improvements that ended up in the kernel modules, which sit in vendor_boot.img.

Since we´re flashing all four images now, module verification can be enforced and I don´t need to force load the kernel modules from the stock vendor_boot any longer.

Flashing the kernel.zip will preserve root.

Shipping the kernel.zip will allow for easier flashing and for several other changes to be installed when flashing the kernel.zips, which also brings us to the next change.

Flashable kernel.zip - AK3 Helper Module

The kernel.zip flashes now all four images that are related to the kernel. boot.img, dtbo.img, vendor_boot.img and vendor_dlkm.img.

Alongside the kernel.zip a magisk module called AK3 Helper Module will be flashed. It will show up in magisk manager after the reboot following the flash of the kernel.zip. Do not delete this module, it ships a modified powerhal, which is an integral part to the changes in this release.

The powerhal will also restrict CPU-Freqs when the screen is off to save battery during e.g. music/podcast playback.l

If you used the old powerhint module, please remove that before flashing the kernel.zip.

Improvements to the Scheduler/Powerhal - Pelt Multiplier

Next big change, the pelt multiplier. This commit allows to change pelt half-life during runtime, instead of choosing before compilation as was the only way in the past.

Straight from the documentation:

Spoiler content hidden.

Default is 32ms, however this value was changed for example by @kdrag0n on the pixel 5 kernel to 16ms to improve performance. The downside of this approach is, that this needs to be chosen at compilation time, and can´t be changed during runtime. choosing 16ms or lower can lead to higher energy consumption and less battery life, but also better performance.

The inclusion of the pelt multiplier, together with an edited powerhal allows this kernel now to change pelt half-life depending on workload and interaction while the device is running. If there are certain events like interaction (scrolling, touching the screen), app launches, camera launches, taking a picture the pelt half-life will get changed dynamically. Interaction will result in 16ms half-life while app launches and camera usage will result in 8ms half-life, resulting in a performance boost when performance is needed.

If there´s no interaction happening, half-life will bump back to default 32ms as to not waste battery.

Improvements to the scheduler - Prevent frequency spikes caused by small tasks

uclamp can cause frequency spikes, by small very frequently occurring tasks (such as binder ), as was identified by a few vendors already. The following commit from the ARM-Developers aims to improve this situation.

BFQ-IO Scheduler

BFQ is now on par with linux-mainline as those changes were backported

TCP - Improvements

A series of patches was backported for the commit mentioned by this article. It can be found in my kernel tree here

F2FS-Stable Improvments

Latest F2FS-Stable was merged and tested extensively.

Several other improvements are included as well. More details in the changelog.

Download is below.

Updated instructions in the OP!

Changelog:

- linux-stable 5.10.84

- kernel/common merged

- ship kernel as flashable zip

- ship complete gki kernel (boot, dtbo, vendor_boot, vendor_dlkm)

- update magiskboot inside ak3 zip

- include powerhal module in the flashable zip

- mainline backports to the scheduler

- introduce pelt multiplier and tie it into powerhal

- prevent frequency spikes by small transient tasks

- tcp backport from mainline

- bfq backports from mainline

- f2fs-stable included

Spoiler content hidden.

- other changes please look at my github

Download:

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

Instructions can be found in the OP! Please follow the instructions to avoid any issues.

If you´re coming from another kernel restore stock boot.img, dtbo.img, vendor_boot.img and vendor_dlkm.img before flashing. Thank you.