Development [Kernel][07.01.2023][Android 13.0.0 Stable]Kirisakura 1.2.3 for Pixel 7/Pro aka "Pantah"

Search This thread
Thank you very much for your information
In my experience it will be a little worse when you first flash the kernel but you have to give it some time to settle in. On the last release, I can't give you exact statistics but my battery life was very good. Typically I would leave home for work and it would be at around 90% and I would intentionally not charge it throughout the day and when I get home it would be in the 50% range and I use my phone for work.
 
I flashed with EXKM during first install (1.1.0), it worked out well, the second time it started giving me this error and I don't know why. Glad it worked for you all
Funny thing, the last two times I flashed the previous release, EXKM would fail and I had to use the kernel flasher app. This time the Kernel flasher app told me I was not rooted (I obviously am ) and EXKM worked perfectly
 
Last edited:

Wilaax

Member
Dec 8, 2022
9
6
In my experience it will be a little worse when you first flash the kernel but you have to give it some time to settle in. On the last release, I can't give you exact statistics but my battery life was very good. Typically I would leave home for work and it would be at around 90% and I would intentionally not charge it throughout the day and when I get home it would be in the 50% range and I use my phone for work.
Thank you very much for your feedback, I think to flash it to test
 
  • Like
Reactions: HipKat

plemen

Senior Member
Besides what @capntrips said, you can see what you have to do when rooted to pass SafetyNet, et cetera (no matter what kernel you use while rooted) at Post #2 - Unlocking Bootloader / Rooting / Updating | SafetyNet | ADB/Fastboot & Windows USB Drivers:
  • SafetyNet
I have an unlocked Canadian phone (Fido/Rogers) and I am contemplating installing this kernel and want to make sure I have my assumptions correct. My main concern is being able to use banking/wallet/google pay.

I see one of the requirements is:
- working magisk environment (a device rooted with latest magisk, use stable in case you want to be absolutely safe)

So does this mean that I need to unlock the bootloader and be rooted before I install this kernel? And once it's installed, I need to stay rooted and use the magisk module called "Universal SafetyNet Fix"?

I'm not interested in having the phone rooted - can I install this kernel and not be rooted and not need any workarounds to pass SafetyNet? Is that possible? Basically stock but with this kernel...

Thanks in advance!
 

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,020
20,734
I have an unlocked Canadian phone (Fido/Rogers) and I am contemplating installing this kernel and want to make sure I have my assumptions correct. My main concern is being able to use banking/wallet/google pay.

I see one of the requirements is:
- working magisk environment (a device rooted with latest magisk, use stable in case you want to be absolutely safe)

So does this mean that I need to unlock the bootloader and be rooted before I install this kernel? And once it's installed, I need to stay rooted and use the magisk module called "Universal SafetyNet Fix"?

I'm not interested in having the phone rooted - can I install this kernel and not be rooted and not need any workarounds to pass SafetyNet? Is that possible? Basically stock but with this kernel...

Thanks in advance!
You checked the requirements yourself. So you can answer the question yourself.
You need to be rooted with magisk to be able to install the kernel as pointed out in the instructions.
To be able to flash anything non stock you need to unlock the bootloader. No matter if root or not.
Rooting or kernel does not trip safetynet on the last few gens of devices, unlocking the bootloader does already.

I'm able to use GPay with unlocked bootloader and the safety net module you mentioned. The experience with other banking apps may vary. You have to experiment yourself.

Although that's not really subject of this thread. Check the forums, there are guides on how to pass safetynet. (y)
 

plemen

Senior Member
You checked the requirements yourself. So you can answer the question yourself.
You need to be rooted with magisk to be able to install the kernel as pointed out in the instructions.
To be able to flash anything non stock you need to unlock the bootloader. No matter if root or not.
Rooting or kernel does not trip safetynet on the last few gens of devices, unlocking the bootloader does already.

I'm able to use GPay with unlocked bootloader and the safety net module you mentioned. The experience with other banking apps may vary. You have to experiment yourself.

Although that's not really subject of this thread. Check the forums, there are guides on how to pass safetynet. (y)
Thanks - you've confirmed my understanding. One more question, if I return to stock, does the Safetynet return? Or is it like Samsung Knox where it's irreversible?

I'm a developer and used to "cook" ROMs for HTC Vogue back in the early Android days lol, and god I hate being a newb at anything, yet here I am!
 

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,020
20,734
Thanks - you've confirmed my understanding. One more question, if I return to stock, does the Safetynet return?

I'm a developer and used to "cook" ROMs for HTC Vogue back in the early Android days lol, and god I hate being a newb at anything, yet here I am!
yes, if you relock to stock, your phone will be back to factory state.

Safetynet is not a problem for now, as it can be solved by the magisk module you mentioned. The problem are some banking apps that can´t be fooled. But there are so many ways for hiding root/unlock that eventually one might work (shamiko, island, deny list etc etc).

If you plan to flash a custom kernel don´t forget to disable the verity/verification vbmeta flags (necessary to flash custom images on avb protected partitions), as disabling those requires a wipe, just like unlocking bootloader does. Saves you one wipe. :)
But that´s mentioned on the guides as well.
 
Last edited:
  • Like
Reactions: Beakhole and plemen

Wilaax

Member
Dec 8, 2022
9
6
I just finished flashing the kernel of my pixel 7 pro, is there anything to configure?
 

plemen

Senior Member
Ok - I've successfully installed this kernel and everything seems good EXCEPT my Google Play Store says "Device is not certified".

When I run YASNAC SafetyNet Attestation Checker the CTS Profile Match comes up as "Failed".

I have Universal SafetNet Fix V2.3.1 from Displax, enabled Zygisk, setup the Denylist, added Systemless hosts and Hidden Magisk app...

Several times I;ve put my phone in airplane mode and cleared Google Play Services and Google Play Store storage, rebooted. No luck...

What am I missing? Please help!

Edit: This version of SafetyNet fixed it:

 
Last edited:

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,020
20,734
Ok - I've successfully installed this kernel and everything seems good EXCEPT my Google Play Store says "Device is not certified".

When I run YASNAC SafetyNet Attestation Checker the CTS Profile Match comes up as "Failed".

I have Universal SafetNet Fix V2.3.1 from Displax, enabled Zygisk, setup the Denylist, added Systemless hosts and Hidden Magisk app...

Several times I;ve put my phone in airplane mode and cleared Google Play Services and Google Play Store storage, rebooted. No luck...

What am I missing? Please help!
I don't know to be frank. But safetynet issues are generally unrelated to the kernel.
The only thing that comes to my mind: some people reported a few weeks ago that a version of the safety net fix module was floating around that didn't work properly.
Maybe you accidentally found that.

Might be worth opening a new thread with that specific question or ask maybe in one of the guide threads, as I think others can help you better there. :)
 

Attachments

  • Screenshot_20221210-093806.png
    Screenshot_20221210-093806.png
    253.8 KB · Views: 80
  • Screenshot_20221210-093854.png
    Screenshot_20221210-093854.png
    238.5 KB · Views: 76

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,020
20,734
I wanted to know how to do the security update after flashing the kernel?
Please check the guide threads available on XDA pixel 7 forums.
You can either use factory image, full OTA.zip or the web flash tool.
Just don't forget to keep the verity/verification vbmety flags disabled. You end up on updated stock firmware after flashing the new firmware.

Afterwards flash the kernel again according to the instructions provided.
 

plemen

Senior Member
I don't know to be frank. But safetynet issues are generally unrelated to the kernel.
The only thing that comes to my mind: some people reported a few weeks ago that a version of the safety net fix module was floating around that didn't work properly.
Maybe you accidentally found that.

Might be worth opening a new thread with that specific question or ask maybe in one of the guide threads, as I think others can help you better there. :)
Ok - I will keep searching. I'm just getting started using this kernel but want to say thank you for all your hard work - it is appreciated!!
 

Wilaax

Member
Dec 8, 2022
9
6
Please check the guide threads available on XDA pixel 7 forums.
You can either use factory image, full OTA.zip or the web flash tool.
Just don't forget to keep the verity/verification vbmety flags disabled. You end up on updated stock firmware after flashing the new firmware.

Afterwards flash the kernel again according to the instructions provided.Than

Please check the guide threads available on XDA pixel 7 forums.
You can either use factory image, full OTA.zip or the web flash tool.
Just don't forget to keep the verity/verification vbmety flags disabled. You end up on updated stock firmware after flashing the new firmware.

Afterwards flash the kernel again according to the instructions provided.
Thanks you
 

Schroeder09

Senior Member
Nov 6, 2017
993
152
Google Pixel 7 Pro
Updated to December and have this kernel running again. I've never ran my p7p on stock kernel, social don't have anything to compare to. I liked your kernel in November though. Thanks!
 
Updated to December and have this kernel running again. I've never ran my p7p on stock kernel, social don't have anything to compare to. I liked your kernel in November though. Thanks!
I’m having extremely much better battery life on this version then I did on 1.1.

I took it off the charger at 100% at about 4 o’clock yesterday afternoon and when I put it back on the charger a couple hours ago it was at 59%. Didn’t have a lot of use other than the typical phone calls and text dangling killing time playing Klondike solitaire a few times.
 

Schroeder09

Senior Member
Nov 6, 2017
993
152
Google Pixel 7 Pro
I’m having extremely much better battery life on this version then I did on 1.1.

I took it off the charger at 100% at about 4 o’clock yesterday afternoon and when I put it back on the charger a couple hours ago it was at 59%. Didn’t have a lot of use other than the typical phone calls and text dangling killing time playing Klondike solitaire a few times.
Good to hear. I did a lot of stuff today and had to wipe cache and data on the Google, Google play services, and dialer app in order to fill uninstall the Pixelfy magisk module. I was trying to get free unlimited original quality googe drive photos backup. It seems battery drain is fast at the moment. I hope things just need a few days to straighten out. On the November update and 1.1 kernel I was getting consistently 7.9hrs SOT. I was very happy with that.
 

Top Liked Posts

  • 4
    Disabling the vbmeta flags will require a wipe.

    If you restore the images to go back to stock, you won´t need a wipe.
    🤦‍♂️🤦‍♂️I am so silly, I realised my mistake. I was flashing the original 1.0.0 version from AFH without noticing that it wasn't the latest 1.2.3 attached to your XDA post which was the reason for my bootloops. Just flashed 1.2.3 with v4 of the Powerhint module and it worked like a charm, booted up straight away. Looking forward to trying this kernel out!!
    1
    I could figure it out eventually. After flashing the module and kernel via FKM, and rebooting the phone I got the same issue. Bummer. But after going to stock kernel I had to wipe Google Play Services and Wallet, and reboot to get rid of the problem. So did I after flashing your kernel. The error message in Wallet is gone and I just paid in a bakery. You might want to add this to your FAQ/ troubleshooting category. Finally I'm back on your fine kernel. 👌
    Nice catch, glad you found a workaround that solved the issue. :)

    But I´m still pretty sure something else might be up on yourend that´s causing that issue in the first place. I went back between stock kernel and my kernel probably a few hundreds of times, as well as running with or without the module and google wallet never stopped working.

    I did everything as described but my device keeps getting stuck in a bootloop =/
    Any suggestions?
    I'd love to run this kernel
    which firmware are you running?

    custom roms might be hit or miss and qpr beta firmware is not supported.
    1
    🤦‍♂️🤦‍♂️I am so silly, I realised my mistake. I was flashing the original 1.0.0 version from AFH without noticing that it wasn't the latest 1.2.3 attached to your XDA post which was the reason for my bootloops. Just flashed 1.2.3 with v4 of the Powerhint module and it worked like a charm, booted up straight away. Looking forward to trying this kernel out!!
    Oh my...I did the exact same thing! Haha, smooth sailing now and no bootloops anymore!
  • 20
    Hi, could you please implement a JSON update method?

    As you know, FKM supports kernel download configuration (JSON schema) so user does not need to go to AFH/Github releases/etc. manually.
    I suppose publishing kernel builds to GH releases so it would be much easier to create such schema ( I bet AFH parsing is much more difficult =) ).
    Bluspark repos can be taken as reference, it worked flawlessly when I was on oneplus.

    Thanks in advance!
    No I won´t implement this.

    I want users to check this XDA thread before flashing, ideally read the release post, the faq and check maybe the last few pages of posts (when a new release drops there´s often new information). I think it´s easy enough to flash a kernel. Especially with some of the difficulties around the pixel 7 pro, vbmeta stuff, a/b stuff, different partitions it´s better to have everything covered here.
    If there´s any important information it will always be here.

    AFH is broken at the moment anyway, or at least it was last time I checked it. Attaching the downloads to the release post seems to work fine as there were no complaints.

    The first post, the faq and this thread is good enough as a central point to get the kernel and everything around the kernel.
    Maintaining those is a lot of work and I think there are not many threads that contain as much useful information.
    That´s why I don´t want to divert traffic from this thread here.
    Additionally maintaining/updating the json´s would be just another thing to maintain.

    I hope you understand. :)
    17
    Really? Wow. It's good to hear I'm not crazy. This guy on telegram is the only other instance I've ever seen anyone mention this. I was absolutely stunned to see he captured an image of it with another phone or device. No idea how he did it unless the image was from a video from a go-pro he wore on his head for hours until the issue recreated itself. Then there's the issue of the glitch occuring between frames on the recording even if you were happening to record when it happened. He's never replied to my DM or posted back in the main p7p telegram channel since asking if anyone else has had the issue, so idk what's going on for him yet or what custom software if any that he's running.

    I have posted about it on here and no one has ever noted they've experienced this. I highly suspect it's something with the software we're using since the 2nd pixel 7 pro has the same issue. My wife's doesn't according to her. The "glitch" is so fast though that, again, it's barely perceivable. It is even LESS noticable if not non-existent on smooth display (120hz).

    It *seems* like the issue occurs during typing on the Gboard more than anything. Like the constant work of animating and enlarging the keys you press on causes the GPU to glitch out. However, it *has* happened at other- seemingly entirely random- occasions.

    Has this been your experience? What software are you all running? I'm using:
    Magisk 25.2
    Lsposed 1.8.5
    Aosp mods 2.5.0
    Substratum lite
    Kiri kernel (always the latest)

    I'm using other modules, but I'd be stunned to find that any of them are causing GPU issues. One reason I suspect AOSP mods is because I have some options selected to modify the keyboard placement, and the issue seems to show itself during typing. I've not been able to collect any info via logs, but I must admit I'm not great at interpreting them anyways.

    I have always used the Kiri kernel. Due to the need to wipe the phone to install a custom kernel I have never ran thwsw phones with stock Google kernels. From day one I've used the Kiri kernel so I can not speak to whether or not the issue was or was not present without the Kiri kernel. Perhaps I'll turn smooth display off today to see if I see the issue with the 1.2.3 kernel using the stable GPU driver.
    Yea it happens to me also very often during typing on keyboard....
    Having this issue from end October..( on first qpr)..
    No matter what kernel...rooted or unrooted..
    Was fixed on November stable..and after Google has merged QPR .. appeared again ...
    Ive send two ramoops logs to a kernel developer...but unfortunately he didn't care that much...( Or he's not so good on debugging...lol)
    I'd appreciate if the discussion about this topic can be stopped at this point.
    It's not related to the kernel project here and just derails the thread even more.
    Lsposed and AOSP mods are some pretty big modifications alongside substratum.
    Feel free to open a new thread with the correct tags @Schroeder09 and see if others can contribute something helpful.

    If it happens on complete stock firmware as well, your best bet is to open an issue on the Google bugtracker and provide a bugreport there.

    Also stop talking about other developers whoever they are in my thread in that disrespectful way @cultofluna. My thread is no place for this.
    Besides that, a ramoops is not suited to debug runtime issues and it might not even be the kernel.



    To everyone else: Please try to report issus from now on as described in the FAQ with at least proper logs.

    I don't want to involve any moderators or need to start reporting posts.

    I know the thread is popular, a lot of people are running the kernel and you're likely to receive an answer here when posting (random) issues (unfortunately it seems google introduced a lot of them in the December qpr release for some users) but please follow the rules, read the FAQ, use the search function and don't create a chaos in here.
    7
    I'm not sure if it's related to Jan update or v1.2.3 of kernel but the phone does not connect to car stereo now via Bluetooth, initially if gives pairing code but does not connect. Before I updated firmware & kernel all was fine.
    Many people who updated to the January security update are reporting this, so not kernel related.

    6
    I hope it's okay to ask this here (always wondered and never had the courage to ask but you seem to be the perfect guy for a reply):

    When flashing this kernel why don't I have to flash to both kernels (via "--slot all" command)?

    Thanks :)
    You don´t flash to both kernels, but I think I get what you´re referring to.

    I´m assuming you´re wondering why you only have to flash to one partition, when there´s are for example two boot partitions, boot_a and boot_b.
    The simple answer is: Only one of those partitions is active, while the other is inactive. In case you didn´t know, if you flash a full OTA zip via adb sideload, it will flash the update to the opposite slot (same happens every time updating via the inbuilt OTA function if you´re not rooted). The following boot, will automatically switch to the previously inactive, but now updated active slot. The other slot becomes the "inactive" one.

    The logic inside the kernel.zip determines automatically where to flash to, when you flash the kernel.zip as per the instructions.

    Why are there multiple partitions involved?
    To explain it quickly. The kernel is now spread across multiple partitions, instead of a single partition as it was a few years earlier.
    A few years earlier everything that is commonly referred to as the "kernel" was contained in the boot.img, but now that has changed. There are multiple variants of this, depending on the generation of phone you look into. Pixel 6 Pro is different to Pixel 7 pro etc.
    On Pixel 7 Pro:
    GKI zImage is in the boot.img, kernel device tree overlay is in the dtbo.img, vendor_kernel_boot contains first stage drivers, which are compiled as kernel modules and the kernel device tree lastly vendor_dlkm contains later stage drivers compiled as kernel modules.

    If the device is currently on Slot A, only boot_a, dtbo_a etc. need to updated.
    6
    Additionally, even if you select "Force Flash Partitions" using Android Flash Tool, it will still only flash to the active slot. I've seen people get this confused, thinking selecting this will flash to both slots, but it doesn't.

    Apologies for the somewhat off topic post...
  • 72
    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 A13 kernel sources from Google, Kernel is made for Android 13 Stable
    - Linux-Stable-Upstream included to 5.10.162
    - Compiled with prebuilt Google clang 16.0.2
    - 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
    - Dynamic Energy Models depending on device state
    - improve CPU throttling behaviour
    - 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
    - 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
    - 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
    - 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 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

    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
    - 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:
    Download is always located in this folder:
    Mirror for Download 1.0.0, in case AFH is not working
    Mirror for Download 1.1.0, in case AFH is not working
    Mirror for Download 1.2.0, in case AFH is not working



    Changelog:
    Android 13.0.0 Stable (not QPR beta!)

    1.0.0 Initial Release | Mirror for Download in case AFH is not working
    1.1.0 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-87743627
    1.2.0 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-87822161
    1.2.1 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-87878321
    1.2.2 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-87944505
    1.2.3 https://forum.xda-developers.com/t/...-pixel-7-pro-aka-pantah.4509795/post-87960183




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

    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! Make sure to flash the latest one. It will be mentioned in the release post if there´s an update.
    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
    49
    Update to 1.2.1

    Hey guys and girls,


    So here´s the next release. As already hinted it includes some of the kernel changes from the QPR2 Beta. Please note the kernel is made for the stable firmware! You need to be on December stable firmware release to be able to install and run this kernel properly!
    Make sure to flash both, the kernel.zip and the powerhint magisk module as both are updated.

    Google did some significant updates in that latest qpr2 update, which is great to see.

    The GPU driver is now based on version r38p1. This fixes several vulnerabilities that made the news recently.

    AOC driver and WiFi driver were also updated and most of those improvements ended up in this kernel release as well.
    There were several improvements to memory management done by google, which should result in improved efficiency, improved reclaim and also reduced jank.
    There are a few other nice patches that should improve performance and generally improve system responsiveness. For specifics please check those on github. :)

    Scheduler patches from linux-main are also included.
    The lazy rcu patchset was updated to the latest state that was also recently merged into the linux kernel. (more info about lazy rcu check here)

    Kernel is now compiled with latest 16.0.2 prebuilt Clang from Google.


    There are other small improvements as well. Please check my github for those.


    I wish everyone a nice day.


    Changelog:

    - Linux-Stable bumped to 5.10.159
    - Bump prebuilt clang to latest 16.0.2 from Google
    - include most of the QPR2 improvements so we can enjoy them ahead of time
    - fixes/improvements to to memory management
    - import all improvments from google QPR2 to powerhint module
    - other fixes please check github



    Download:
    Attached to release post as AFH is currently down.
    I´ll push to AFH once it´s back up.


    Make sure to update the powerhint module via Magisk Manager!


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

    Make sure to meet the requirements and read the OP as well as the FAQ before flashing.

    I wish everybody a great day/evening!
    Have fun, enjoy the kernel and your phone.



    If you like my work please consider a donation.
    Donations are not mandatory but very welcome.
    If you like my work and want to buy me a coffee/green tea: http://paypal.me/freak07
    41
    Update to 1.1.0

    Hey guys and girls,

    So here´s the next release. I finally feel it´s ready to be publicly released as there was not a single issue encountered over the last two weeks.
    Make sure to flash both, the kernel.zip and the powerhint magisk module!

    The kernel is now at 5.10.155 way ahead of the stock kernel. To further emphasize the importance of this. About 90% of kernel security issues are solved in linux stable.
    5.10.148 and 5.10.149 fixed the CVEs discussed here and here. Those were fixed on kernel common on November 2nd. It might take up to a few months until they trickly down into any officially shipped android kernel!
    The initial 1.0.0 release, had those CVEs fixed already as 5.10.149 was merged.
    What also needs to be kept in mind is that a big part of those security issues are resolved in linux-stable, sometimes months ago, before those patches end up in a monthly security patch. Additionally to that, the security patches on android devices are about 3 months behind the discovery of those vulnerabilities.

    This release features a few major changes, which I want to explain in greater details, so excuse the longer release post. I´d appreciate if everyone takes the time to at least read it. :)

    Introduction of Lazy RCU

    1.1.0 has the entire(!) RCU subsystem updated to latest linux 6.0 kernel state. This also allowed for Lazy RCU to be merged into the kernel, which should result in power-savings while the device is lightly-loaded or idling (which is basically the case all the time a smartphone isn´t being interacted with (nothing touching the screen and no other workload such as video editing is done).
    If you´re interested in details check the slides, which are also linked in the article I linked above.
    A very simplified explanation: RCU functionality can be called 1000s of times a second, batching RCU calls can save power by not calling as often.

    That´s one of the changes I wanted to be tested extensively, as there are a few 10000 lines of code changes.

    Please keep in mind, those are kernel changes and battery life will not be improved magically by huge amounts, due to such a change, even if the change itself is massive.
    Example: If you raise or lower the display brightness by around 10% over an entire day, you´ll see a bigger impact.
    Reading the OP gives you a good idea what this project is about! :)


    Dynamic Energy Model

    Google introduced the possibility to use different Energy Models "on the fly" a while back in the Pixel 6 and Pixel 7 kernel.
    I played around with this during the last few weeks and ironically Google did something similar in the QPR A13 Beta when I checked the firmware dump. Google switches to a different Energy Module while taking Videos. Based on my understanding to control heat better during video recordings.

    However I had another idea, but the mechanism I use to switch the profiles taps into the same system.
    While the device is idle, a different Energy Model is used, compared to when interaction is happening.
    While interaction is happening there are many boosts in play already to bias tasks to get executed as quickly as possible anyway. But switching to a different energy model allows us to basically bias tasks to get even more prominently scheduled to the little and middle cores. Since the mid cores are a78 on p7 and way more energy efficient, this should give as a double positive effect. As during idle state there are no boosts active the scheduler can now freely decide how to use EAS to the best to place the tasks as efficiently as possible.
    The energy module was tuned, so the scheduler prefers little and mid cores during idle. (nothing touching the screen, watching videos, listening to music, reading websites etc.)

    Additionally to this I decided to include the changes Google did on A13 QPR Beta while taking video to also include already in the kernel.

    Powerhal

    Switch between default and idle energy model on device is being interacted with / device idle.
    Reduce missed frames during scrolling/device interaction by adjust 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 stable
    Raise minfreqs during screen off to 1,4ghz


    Playback over USB C to 3.5mm Dongles
    Some users were experiencing issues while using usb-c to 3.5mm dongles while running my kernel. After a long time I finally discovered how to reproduce the bug as the logs did not point towards any kernel error. It happens only if default usb configuration in developer options is set to anything else than "no data transfer". If "no data transfer" is selected there´s no issue at all.
    A few commits from linux-stable for the usb dwc3 driver breaks playback when screen is shut off or cycling through the "default usb configuration" settings, which causes the aoc driver that´s responsible for playback to shut down.
    Reverting those commits fixes the issue.

    Thanks to @WhoIsJohnGalt1979 and @Hurt Copain for nagging me about the issue and providing logs, I finally found a way to reproduce the issue so I was able to debug it.

    Given that playback is "glitchy" (a brief audio stutter) on stock kernel as well, when either cycling through different "default usb configuration" settings or turning screen on/off, that driver is generally very wonky. A user told me however that this glitch is solved in QPR Beta. So that´s good to hear if that´s the case.


    Other improvements
    Several other improvements from kernel/common (for higher branches than 5.10) and linux-main were backported to this branch so we can benefit from those improvements. For details please check my git.


    I´d like to write all of this with more detail, but at the moment I lack the time to do so.

    Kernel is compiled for stable A13, not A13 QPR Beta!


    I wish everyone a nice day.


    Changelog:

    - Linux-Stable bumped to 5.10.155
    - 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
    - Dynamic Energy Models depending on device state
    - Fix audio playback stopping for some users when turning screen off (thanks for @WhoIsJohnGalt1979 and @Hurt Copain for nagging me about the issue and providing logs)
    - improve CPU throttling behaviour by backporting a QPR Beta change
    - improvements to MGLRU
    - improvements from linux-mainline for several subsystems
    • scheduler
      • 02595c9fb4ec sched/core: Fix comparison in sched_group_cookie_match()
        407e4ccbb158 sched/fair: Move call to list_last_entry() in detach_tasks
        0ea56a65b686 sched/fair: Cleanup loop_max and loop_break
        0461c9736ec2 sched/fair: Make sure to try to detach at least one movable task
        f2489ca21b11 sched/fair: Cleanup for SIS_PROP
        5a3074a7ac79 sched/fair: Default to false in test_idle_cores()
        bb95868debb0 sched/fair: Remove useless check in select_idle_core()
        50112e040e6a sched/fair: Avoid double search on same cpu
        2457687f35d3 sched/fair: Remove redundant check in select_idle_smt()
    • memory management
      • 6bf69138a12b mm: rename p4d_page_vaddr to p4d_pgtable and make it return pud_t *
        9819fcefb782 mm: rename pud_page_vaddr to pud_pgtable and make it return pmd_t *
        997cdba71861 mm: add vma_lookup(), update find_vma_intersection() comments
        eb1eccad20cb mm/page_alloc: fix obsolete comment in deferred_pfn_valid()
        1f30d4f3fb20 mm/page_alloc: remove obsolete gfpflags_normal_context()
        17dd220de848 mm/page_alloc: use costly_order in WARN_ON_ONCE_GFP()
        4d7be8d8d6d4 mm/page_alloc: init local variable buddy_pfn
        521b49f4067c mm/page_alloc: use helper macro SZ_1{K,M}
        9838ea6feaee mm/page_alloc: use local variable zone_idx directly
        d049e3821e8b mm/page_alloc: add missing is_migrate_isolate() check in set_page_guard()
        5dc1c3c60469 mm: remove obsolete pgdat_is_empty()
        55e89c7708e3 mm/page_alloc: fix freeing static percpu memory
        bd801ed8eace mm/page_alloc: add __init annotations to init_mem_debugging_and_hardening()
        ce00e122335e mm/page_alloc: remove obsolete comment in zone_statistics()
        cc20df37215b mm: remove obsolete macro NR_PCP_ORDER_MASK and NR_PCP_ORDER_WIDTH
        97e15d20dd79 mm/page_alloc: make zone_pcp_update() static
        f7425d856d30 mm/page_alloc: ensure kswapd doesn't accidentally go to sleep
        236a9831f7e4 mm: add merging after mremap resize
        bd1537226f30 mm: mremap: fix sign for EFAULT error return value
        4fe39974c254 mm/mremap: avoid unneeded do_munmap call
        3983a53d85a6 mm/mremap:: use vma_lookup() instead of find_vma()
        b832f38c3630 mm, hugepages: add mremap() support for hugepage backed vma
        23aa8d328a4c mm/mremap: allow arch runtime override
        b029910a3ec8 mm/mremap: use pmd/pud_poplulate to update page table entries
        53093a2f034d mm/mremap: don't enable optimized PUD move if page table levels is 2
        c7b8580c66ff mm/mremap: convert huge PUD move to separate helper
        d7e1ce9e582e mm/mremap: fix memory account on do_munmap() failure
        a2a195324435 mm/mremap: use vma_lookup() in vma_to_resize()
        7f87797e053b mm/mremap: don't account pages in vma_to_resize()
        bbebb360b5e2 mm: forbid splitting special mappings
        9fce5b920e9d mremap: check if it's possible to split original vma
        089557da4960 vm_ops: rename .split() callback to .may_split()
        c180d1867972 mremap: don't allow MREMAP_DONTUNMAP on special_mappings and aio
        e7404be1ba61 mm/mremap: for MREMAP_DONTUNMAP check security_vm_enough_memory_mm()
        5bae8c6fbfff mm/mremap: account memory on do_munmap() failure
        281904d82593 mm: refactor of vma_merge()
    • PSI
      • d95535a6cabf sched/psi: Fix periodic aggregation shut off
        73abf1a6b993 psi: dont alloc memory for psi by default
        UPSTREAM: psi: Fix psi state corruption when schedule() races with cgroup move
        df3995427bf1 sched/psi: Remove unused parameter nbytes of psi_trigger_create()
        feb99cdbd69e psi: Fix PSI_MEM_FULL state when tasks are in memstall and doing reclaim
        83fc90cd1a63 psi: Reduce calls to sched_clock() in psi
        f6af1db49cbd psi: Optimize task switch inside shared cgroups
        317f29565dd3 psi: Pressure states are unlikely
        7e17bae683a3 psi: Use ONCPU state tracking machinery to detect reclaim
        118d212fd15e psi: Add PSI_CPU_FULL state
    • more details please check github
    - patches to f2fs
    - increase priority of GPU work
    - binder fix
    - updates from kernel/common to several subsystems
    - tweak powerhal for improved performance/efficiency
    • Switch between default and idle energy model on device is being interacted with / device idle.
    • Reduce missed frames during scrolling/device interaction by adjust 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 stable
    • Raise minfreqs during screen off to 1,4ghz


    Download:
    Attached to release post as AFH is currently down.
    I´ll push to AFH once it´s back up.


    Make sure to update the powerhint module via Magisk Manager!


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

    Make sure to meet the requirements and read the OP as well as the FAQ before flashing.

    I wish everybody a great day/evening!
    Have fun, enjoy the kernel and your phone.



    If you like my work please consider a donation.
    Donations are not mandatory but very welcome.
    If you like my work and want to buy me a coffee/green tea: http://paypal.me/freak07
    37
    I´m currently testing the next release which includes most of the improvements from the new QPR2 Beta kernel.

    That way we can enjoy those changes a bit in advance on the latest stable A13 firmware.

    Stay tuned, if everything goes well I hope I can release it sooner rather than later. :)
    37
    Update to 1.2.0

    Hey guys and girls,


    So here´s the next release. It includes the QPR (quartly platform release) changes and is now on the same state as A13 QPR Beta was previously. You need to be on December firmware release to be able to install this kernel!
    Make sure to flash both, the kernel.zip and the powerhint magisk module as both are updated.

    Amongst the QPR changes from Google, which are a big step ahead of the initial A13 release (always the case the last years, the december update fixes tons of things of the major android version bump), MGLRU was bumped to latest V15 state, which was also merged to the linux-kernel recently. Was testing this out for nearly a month, before releasing. For those interested about MGLRU, here´s an excellent writeup by @MishaalRahman.

    Kernel is now compiled with latest 16.0.1 prebuilt Clang from Google.

    A few important improvements to binder and memory management code. One of those fixes should improve performance during memory pressure quite a bit. (e.g. when taking pictures, extremely RAM intensive tasks with GCAM)

    There are other small improvements as well. Please check my github for those.


    I wish everyone a nice day.


    Changelog:

    - Linux-Stable bumped to 5.10.157
    - Bump prebuilt clang to latest 16.0.1 from Google
    - important improvements and fixes to binder
    - bump MGLRU to latest V15 state
    - fix to memory management
    - import all improvments from google QPR to powerhint module
    - other fixes please check github



    Download:
    Attached to release post as AFH is currently down.
    I´ll push to AFH once it´s back up.


    Make sure to update the powerhint module via Magisk Manager!


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

    Make sure to meet the requirements and read the OP as well as the FAQ before flashing.

    I wish everybody a great day/evening!
    Have fun, enjoy the kernel and your phone.



    If you like my work please consider a donation.
    Donations are not mandatory but very welcome.
    If you like my work and want to buy me a coffee/green tea: http://paypal.me/freak07