Development [Kernel][16.08.2022][Android 13.0.0]Kirisakura 4.1.0 for Pixel 6/Pro aka "RAVIOLE"

Search This thread

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
5,669
18,861
I tried flashing in exkm but got corrupt again.
Follow the instructions in the FAQ, involving flashing an older boot.img to get rid of the corruption message.

There still seem to be users running into this corruption issue. Unfortunately there´s nothing I can do about it. The last few Magisk canary releases and some google stuff seems to be wonky, as google faces the corruption issues themselves and dropped a patch note about it.

I am on the stock kernel for now waiting for an update.
The issues some users are getting unfortunately have nothing to do with the kernel. It´s a mixture of google having some problems with the corruption thingy themselves as they revealed in the patchnotes and the other issues are due to magisk canary being experimental canary builds.
If everything is "working as expected" on a device and you follow the instructions in the OP and the release post, flashing should go without a hitch.

This kernel works great with Magisk 24301. Why not use it with this Kernel?
Good question ;)
 

ttle54

Member
Sep 19, 2018
34
25
OnePlus 7 Pro
Google Pixel 6 Pro
I'm in love with the 2.00 Kirisakura Kernel so far. Great battery performance, stability and no crash at all.
 

Attachments

  • Screenshot_20220325-135919.png
    Screenshot_20220325-135919.png
    206.6 KB · Views: 99
  • Screenshot_20220325-135909.png
    Screenshot_20220325-135909.png
    179.3 KB · Views: 97

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
5,669
18,861
Update to 2.0.1

Hey guys and girls,

So here´s the next update for stable march 12.1.0 firmware! This kernel release is not meant to be flashed on Android 12L QPR3 Beta firmware. (for QPR3 beta kernel check this link, it is not yet updated to beta 1.1)
I´ll update the A12L QPR3 kernel to Beta 1.1 when I find time the next few days.

Android 12 QPR3 Beta 1.1 finally added direct USB access support. It means HiRes Playback via USB C DACs is now supported via the kernel. This release has that change "ported" to stable 12.1.0 march update as that is what most users seem to be still running, including myself.

HiRes playback is confirmed working over HiBy app as well as Neutron Player running stable 12.1.0 march update. :)
Check twitter for more information and screenshots:
This release also tunes the powerhal quite a bit. More tasks are scheduled to the little cluster during screen off.
Camera launching should be improved a bit as well.


I´ll keep the warning for preferably using magisk stable as well here in this post.
Important:
Make sure you´re being rooted with magisk 24300 stable before flashing the kernel. Any magisk version above 24303 will lead to a reboot back to bootloader since android 12.1.0 and A12L QPR3 Beta. At the moment this only affects canary, but I put the warning just in case this will not get resolved in upstream magisk in time until the next stable drops. I saw a post that some modules also have problems with latest canary, so there´s a lot going on at magisk´s side at the moment.
A post containing a short write-up how to "downgrade" magisk can be found following this link.


In case some did not have time to update their device to stable march and did not read the 2.0.0 release post I´ll keep this here as well:
This update has stable march 12.1.0 firmware merged (we already had most of this code, but the device specific drivers needed to be adjusted properly) and some other small fixes.
In case you missed it, since most people update their device once a new firmware is out each month, the previous release had the dirty pipe exploit fixed. This exploit is not fixed in the stock kernel on march stable 12.1.0 yet.
I´ll attach a link to the release post of 1.8.4 with a detailed changelog again, so changes are not missed. This post also contains info and links regarding the dirty pipe exploit. Link to 1.8.4 release post




Changelog:
- changelog for 2.0.0 in case it was missed
- add direct usb access which allows HiRes music playback over USB C DACs via HiBy or Neutron
- tune powerhal to reduce idle drain (schedule more tasks on little cores)
- improve camera launching


Download:


Instructions can be found in the OP! Please follow the instructions to avoid any issues and read this post carefully. Don´t use magisk canary 24303 or more recent!
If you´re coming from another kernel restore stock boot.img, dtbo.img, vendor_boot.img and vendor_dlkm.img before flashing. Thank you.
 
Last edited:

krystiano

Senior Member
Nov 15, 2012
204
115
Update to 2.0.1

Hey guys and girls,

So here´s the next update for stable march 12.1.0 firmware! This kernel release is not meant to be flashed on Android 12L QPR3 Beta firmware. (for QPR3 beta kernel check this link, it is not yet updated to beta 1.1)
I´ll update the A12L QPR3 kernel to Beta 1.1 when I find time the next few days.

Android 12 QPR3 Beta 1.1 finally added direct USB access support. It means HiRes Playback via USB C DACs is now supported via the kernel. This release has that change "ported" to stable 12.1.0 march update as that is what most users seem to be still running, including myself.

HiRes playback is confirmed working over HiBy app as well as Neutron Player running stable 12.1.0 march update. :)
Check twitter for more information and screenshots:
This release also tunes the powerhal quite a bit. More tasks are scheduled to the little cluster during screen off.
Camera launching should be improved a bit as well.


I´ll keep the warning for preferably using magisk stable as well here in this post.
Important:
Make sure you´re being rooted with magisk 24300 stable before flashing the kernel. Any magisk version above 24303 will lead to a reboot back to bootloader since android 12.1.0 and A12L QPR3 Beta. At the moment this only affects canary, but I put the warning just in case this will not get resolved in upstream magisk in time until the next stable drops. I saw a post that some modules also have problems with latest canary, so there´s a lot going on at magisk´s side at the moment.
A post containing a short write-up how to "downgrade" magisk can be found following this link.


In case some did not have time to update their device to stable march and did not read the 2.0.0 release post I´ll keep this here as well:
This update has stable march 12.1.0 firmware merged (we already had most of this code, but the device specific drivers needed to be adjusted properly) and some other small fixes.
In case you missed it, since most people update their device once a new firmware is out each month, the previous release had the dirty pipe exploit fixed. This exploit is not fixed in the stock kernel on march stable 12.1.0 yet.
I´ll attach a link to the release post of 1.8.4 with a detailed changelog again, so changes are not missed. This post also contains info and links regarding the dirty pipe exploit. Link to 1.8.4 release post




Changelog:
- changelog for 2.0.0 in case it was missed
- add direct usb access which allows HiRes music playback over USB C DACs via HiBy or Neutron
- tune powerhal to reduce idle drain (schedule more tasks on little cores)
- improve camera launching


Download:


Instructions can be found in the OP! Please follow the instructions to avoid any issues and read this post carefully. Don´t use magisk canary 24303 or more recent!
If you´re coming from another kernel restore stock boot.img, dtbo.img, vendor_boot.img and vendor_dlkm.img before flashing. Thank you.
New kernel on board 🥰🥰
 

Attachments

  • Screenshot_20220325-191451.png
    Screenshot_20220325-191451.png
    214.4 KB · Views: 128
  • Screenshot_20220325-191617.png
    Screenshot_20220325-191617.png
    140.5 KB · Views: 124
  • Like
Reactions: Lycidias and jcp2

ttle54

Member
Sep 19, 2018
34
25
OnePlus 7 Pro
Google Pixel 6 Pro
Update to 2.0.1

Hey guys and girls,

So here´s the next update for stable march 12.1.0 firmware! This kernel release is not meant to be flashed on Android 12L QPR3 Beta firmware. (for QPR3 beta kernel check this link, it is not yet updated to beta 1.1)
I´ll update the A12L QPR3 kernel to Beta 1.1 when I find time the next few days.

Android 12 QPR3 Beta 1.1 finally added direct USB access support. It means HiRes Playback via USB C DACs is now supported via the kernel. This release has that change "ported" to stable 12.1.0 march update as that is what most users seem to be still running, including myself.

HiRes playback is confirmed working over HiBy app as well as Neutron Player running stable 12.1.0 march update. :)
Check twitter for more information and screenshots:
This release also tunes the powerhal quite a bit. More tasks are scheduled to the little cluster during screen off.
Camera launching should be improved a bit as well.


I´ll keep the warning for preferably using magisk stable as well here in this post.
Important:
Make sure you´re being rooted with magisk 24300 stable before flashing the kernel. Any magisk version above 24303 will lead to a reboot back to bootloader since android 12.1.0 and A12L QPR3 Beta. At the moment this only affects canary, but I put the warning just in case this will not get resolved in upstream magisk in time until the next stable drops. I saw a post that some modules also have problems with latest canary, so there´s a lot going on at magisk´s side at the moment.
A post containing a short write-up how to "downgrade" magisk can be found following this link.


In case some did not have time to update their device to stable march and did not read the 2.0.0 release post I´ll keep this here as well:
This update has stable march 12.1.0 firmware merged (we already had most of this code, but the device specific drivers needed to be adjusted properly) and some other small fixes.
In case you missed it, since most people update their device once a new firmware is out each month, the previous release had the dirty pipe exploit fixed. This exploit is not fixed in the stock kernel on march stable 12.1.0 yet.
I´ll attach a link to the release post of 1.8.4 with a detailed changelog again, so changes are not missed. This post also contains info and links regarding the dirty pipe exploit. Link to 1.8.4 release post




Changelog:
- changelog for 2.0.0 in case it was missed
- add direct usb access which allows HiRes music playback over USB C DACs via HiBy or Neutron
- tune powerhal to reduce idle drain (schedule more tasks on little cores)
- improve camera launching


Download:


Instructions can be found in the OP! Please follow the instructions to avoid any issues and read this post carefully. Don´t use magisk canary 24303 or more recent!
If you´re coming from another kernel restore stock boot.img, dtbo.img, vendor_boot.img and vendor_dlkm.img before flashing. Thank you.
Installed the latest 2.0.1 Kirisakura Kernel and no boot lops nor crash. Things are running great, confirmed.
 

Attachments

  • Screenshot_20220325-141740.png
    Screenshot_20220325-141740.png
    203.5 KB · Views: 74

knopie

Member
Sep 16, 2007
41
12
Update to 2.0.1

Hey guys and girls,

So here´s the next update for stable march 12.1.0 firmware! This kernel release is not meant to be flashed on Android 12L QPR3 Beta firmware. (for QPR3 beta kernel check this link, it is not yet updated to beta 1.1)
I´ll update the A12L QPR3 kernel to Beta 1.1 when I find time the next few days.

Android 12 QPR3 Beta 1.1 finally added direct USB access support. It means HiRes Playback via USB C DACs is now supported via the kernel. This release has that change "ported" to stable 12.1.0 march update as that is what most users seem to be still running, including myself.

HiRes playback is confirmed working over HiBy app as well as Neutron Player running stable 12.1.0 march update. :)
Check twitter for more information and screenshots:
This release also tunes the powerhal quite a bit. More tasks are scheduled to the little cluster during screen off.
Camera launching should be improved a bit as well.


I´ll keep the warning for preferably using magisk stable as well here in this post.
Important:
Make sure you´re being rooted with magisk 24300 stable before flashing the kernel. Any magisk version above 24303 will lead to a reboot back to bootloader since android 12.1.0 and A12L QPR3 Beta. At the moment this only affects canary, but I put the warning just in case this will not get resolved in upstream magisk in time until the next stable drops. I saw a post that some modules also have problems with latest canary, so there´s a lot going on at magisk´s side at the moment.
A post containing a short write-up how to "downgrade" magisk can be found following this link.


In case some did not have time to update their device to stable march and did not read the 2.0.0 release post I´ll keep this here as well:
This update has stable march 12.1.0 firmware merged (we already had most of this code, but the device specific drivers needed to be adjusted properly) and some other small fixes.
In case you missed it, since most people update their device once a new firmware is out each month, the previous release had the dirty pipe exploit fixed. This exploit is not fixed in the stock kernel on march stable 12.1.0 yet.
I´ll attach a link to the release post of 1.8.4 with a detailed changelog again, so changes are not missed. This post also contains info and links regarding the dirty pipe exploit. Link to 1.8.4 release post




Changelog:
- changelog for 2.0.0 in case it was missed
- add direct usb access which allows HiRes music playback over USB C DACs via HiBy or Neutron
- tune powerhal to reduce idle drain (schedule more tasks on little cores)
- improve camera launching


Download:


Instructions can be found in the OP! Please follow the instructions to avoid any issues and read this post carefully. Don´t use magisk canary 24303 or more recent!
If you´re coming from another kernel restore stock boot.img, dtbo.img, vendor_boot.img and vendor_dlkm.img before flashing. Thank you.
Nice, I was waiting for this fix. Thanks.
 
  • Like
Reactions: yyz71 and Freak07

DanielF50

Senior Member
Jul 22, 2010
543
334
Hampshire, England
Google Pixel 6 Pro
Awesome work on 2.0.1!

Maybe a stupid question, but was the below ever looked into? I still see it happening in my logcat every few seconds if I don't have the Cleanstate apps installed (I don't need need them) & also seem to have the selinux permissive 1/0 thing happening after it looks for those config files too.

Code:
03-26 12:41:39.950 16208 16208 E         : [uci]File Open Error:/storage/emulated/0/Android/data/org.cleanslate.csconfig/cache/uci_user.cfg -2
03-26 12:41:39.950 16208 16208 I         : parse_uci_cfg_file [uci] cannot read file /storage/emulated/0/Android/data/org.cleanslate.csconfig/cache/uci_user.cfg
03-26 12:41:39.950 16208 16208 I         : set_kernel_permissive --- setting to: 0,  kp usage count: 0
03-26 12:41:39.950 16208 16208 I         : set_kernel_permissive --- setting to: 1,  kp usage count: 1  
03-26 12:41:39.950 16208 16208 I         : set_kernel_permissive --- setting to: 0,  kp usage count: 0

Edit: I'm not too worried about it logging that the config files can't be found, but I am definitely curious about the selinux bit - is this just something that's supposed to be written to the missing file(s), or is selinux being switched from enforcing to permissive constantly (doubt this)? If I create those files manually, will these messages stop showing up?
 
Last edited:
  • Like
Reactions: Freak07

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
5,669
18,861
Awesome work on 2.0.1!

Maybe a stupid question, but was the below ever looked into? I still see it happening in my logcat every few seconds if I don't have the Cleanstate apps installed (I don't need need them) & also seem to have the selinux permissive 1/0 thing happening after it looks for those config files too.

Code:
03-26 12:41:39.950 16208 16208 E         : [uci]File Open Error:/storage/emulated/0/Android/data/org.cleanslate.csconfig/cache/uci_user.cfg -2
03-26 12:41:39.950 16208 16208 I         : parse_uci_cfg_file [uci] cannot read file /storage/emulated/0/Android/data/org.cleanslate.csconfig/cache/uci_user.cfg
03-26 12:41:39.950 16208 16208 I         : set_kernel_permissive --- setting to: 0,  kp usage count: 0
03-26 12:41:39.950 16208 16208 I         : set_kernel_permissive --- setting to: 1,  kp usage count: 1
03-26 12:41:39.950 16208 16208 I         : set_kernel_permissive --- setting to: 0,  kp usage count: 0
Yeah. Discussed it with @tbalden a while ago and we concluded for now it doesn't hurt anything.
Sleep/performance is not impacted as that's just a kernel operation, but with a log that's being printed, which is visible to you.

If you worry about the selinux thing. It just changes a few selinux rules very very briefly (you can check them on my git) to permissive for kernel context (not apps, untrusted app, services etc), so the config file can get parsed.
It doesn't switch selinux completely permissive or disables it.

One of the problems is when to stop polling. If the device is up for a certain amount of time, and the CleanSlate apps are being installed later, if a time based limit is imposed it would break.
Similarly if the device is booted, time limit for polling passes but user hasn't yet unlocked, it would break.

I can remove the lines from printing to the log. But then you just won't see those lines appearing.
Also some debugging lines can be helpful when hunting bugs.
Some debug lines being printed to the kernel log, do not harm battery life/performance in a way that's clearly perceptible in real world usage.



I talked to @tbalden just now and maybe the retry isn't needed any longer. :)
It's being looked into and maybe another solution is found in one of the next releases. But for now, nothing really to worry about.


Edit: @DanielF50 should be gone in the next release. ;)

 
Last edited:

DanielF50

Senior Member
Jul 22, 2010
543
334
Hampshire, England
Google Pixel 6 Pro
Yeah. Discussed it with @tbalden a while ago and we concluded for now it doesn't hurt anything.
Sleep/performance is not impacted as that's just a kernel operation, but with a log that's being printed, which is visible to you.

-snip-
Awesome, I was kind of worried that it allowed apps/services use of selinux in permissive mode, but that's great to know - thank you for the in-depth explanation! 🙌
 

Top Liked Posts

  • 3
    So, is it enough to Update and Root Factory Image? Or better skip 1a and flash boot, dtbo, vendor_boot, vendor_dlkm.img like in #4 instruction?
    Again, you are reading from old instructions. Manual installation of the kernel is no longer supported.
    3
    So, how can I safely go back to stock then? Sorry for my ignorance, I'm tryna do my best :)
    Second post, first question in the FAQ. :)
    2
    Long press power and volume down.
    Thanks for support mate. It works. I almost lost my mind.
    2
    Where can I find powerhint magisk module for P6P? Going to back to stock for a while. Following steps from 4#:

    1.a : Download the powerhint magisk module found in downloads section and flash it via Magisk Manager like any other magisk module. Don´t forget to flash it, it´s tied to changes in the kernel. It´s crucial for the kernel to work. Without the module flashed before flashing the images the device will not boot!
    you don't need to do this
    2
    Where can I find powerhint magisk module for P6P? Going to back to stock for a while. Following steps from 4#:

    1.a : Download the powerhint magisk module found in downloads section and flash it via Magisk Manager like any other magisk module. Don´t forget to flash it, it´s tied to changes in the kernel. It´s crucial for the kernel to work. Without the module flashed before flashing the images the device will not boot!
    There isn't a separate module anymore since he includes it in the kernel. That quote is from old instructions.

    Ninja'd 🤪
  • 42
    Update to 4.1.0

    Hey guys and girls,

    I hope everyone started into a good week. Here´s the next release. It´s for stable Android 13.
    Thanks to Google releasing the kernel source for the previews and the betas I´m able to push this update out very quickly. As in the past, the code didn´t change between last beta and stable release.

    There are again a lot of changes in this release. I´ll try to keep the release post short as I don´t have that much time lately.


    FHD/1080P Support for Pixel 6 Pro

    The biggest change is FHD support for the Pixel 6 Pro. If you follow twitter you might have seen this tweet from @MishaalRahman.
    Instead of using the display driver that´s supposedly for the Pixel 7 Pro, FHD support was added to the Pixel 6 Pro display driver. There were a few obstacles to make it run properly on the Pixel 6 Pro, but I got it working nicely so far. If anyone has more experience than me regarding panel timings, display drivers etc, feel free to push any improvement as a pull request to my github or point me towards any improvement.

    As a result you can now select 1080p resolution from settings after flashing the kernel. Dynamic refresh rate works, brightness scaling works, no tints, colour shifts or contrast issues either. AOD has a 1080p Low-Power timing as well.

    You´ll find a few more infos with a short video on my tweet here:
    Screenshot_20220816-083147.png
    Screenshot_20220816-083204.png

    It´s perfectly usable on a daily basis so far. I ran it for a few days without issues on my end. While the advantage might be debatable (saving battery, less load on GPU, still needing to drive the same amount of pixels in the end even on lower resolution, etc etc) having options is nice and this is why I decided to ship it.

    Apps need to redraw after switching resolution, sometimes 1080p on big display size selected in settings the UI looks a bit sketchy. So I think Google is still working on that.

    There´s however one bug I found so far that makes me believe this is still very much a WIP from google. If having the "show current refresh rate" option from dev settings enabled while switching resolutions, the display will black out and a restart needs to be forced by keeping the power button pressed or using adb interface to restart the phone. This is not due to the kernel, but display settings in framework getting scrambled as it´s not yet implemented 100% on googles end. So be warned. :)


    MM Subsystem Rework

    MM subsystem was completely reworked including many improvements from linux-mainline. During this MGLRU was also reworked a bit and works better now. I´ll include links to a few of the improvements/patchsets in hide-tags below, if you´re interested beyond that please check out my github.
    links:

    Additionally tie in a few of the MM changes into the powerhal. For example Proactive compaction is more aggressive during screen-off/device suspended operations to improve long term-performance.

    Other changes:

    Also tune the powerhal and implement all A13 changes, according to the changes that were already present on A12.

    Latest changes from f2fs-stable are included, which include several bugfixes and small improvements.
    Binder improvments/fixes, scheduler improvements from kernel/common, performance for exfat formatted storage device improved (niche use case, but still nice) and other little improvements.
    For other changes and details please take a look at github.


    I wish everyone a nice day.

    If you´re one of the unfortunate ones that suffer from the device is corrupt bug on pixel 6 series please take a look at the FAQ at the beginning of this thread it contains a solution. The issue is probably caused by a bug that affects pixel 6 devices and has nothing to do with magisk or a kernel, it just happens to get triggered when using any of those.



    Changelog:

    - Rebase kernel fully on A13 trees
    - Linux-Stable bumped to 5.10.136
    - FHD/1080p support for Pixel 6 Pro
    - all previous features and improvements kept intact
    - bump f2fs-stable to latest available
    - rework mm subsystem (check git for more details)
    - scheduler improvements
    - binder improvements from kernel/common
    - improve exfat performance (if someones uses exfat formatted devices)
    - loads of other changes from kernel/common
    - update powerhal to account for a13 changes and port existing changes over
    - loads of other changes, please check github



    Download:


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

    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
    12
    Update on my Android 13 Kirisakura 4.1 Kernel:
    1. Much better battery life, I'm looking at 19 hrs for 80% of battery.
    2. Butter smooth, no crashes so far, knock on wood.
    3. The resolution change from 1440p to 1080p is great. However, running the phone at 1080p won't make much difference to battery life.

    Notes: I'm running NapTime, Servicely, and disable auto-sync in FKM app. A bunch of other apps are not allowed to run in background by using Servicely.








    View attachment 5688705
    I turn my phone off and get 2 months battery
    10
    Is it safe to flash over the august update?
    Probably not since @Freak07 was supporting the Stable Android version only, and not Android 13 Beta. Now that 13 is Final, I'd just wait.

    But perhaps someone who enjoys risk more than me these days will test the theory! 😲😜
    if you want to know if it´s safe to flash the A13 stable factory image over A12 firmware with this kernel installed, yes it is since it replaces everything.

    if you want to know if the A12 kernel runs on A13, it won´t.
    10
    Perfect timing. Just updated to 13 stable a minute ago, and saw the update get posted. Flashed and working so far. Thanks again! (y)
    Thanks for the fast kernel update! Working behind the scenes on it for a while huh?

    I'm currently testing using 1080p to see if there is indeed any battery savings to be had to make it worthwhile. Using custom DPI of 340 so that it scales nicely (to my eyes).
    Enjoy the ride and happy tinkering/testing :) :cowboy:

    I'd really like this too.

    Mods like AOSP Mods for magisk have the feature, which kinda works, but it keeps the single tap I found and the double tap sometimes takes 3/4 double taps to wake up!

    Would also love the classic double tap to wake to ambient screen, but realise this may be more a rom feature than kernel?
    Awesome! Any chance we can have double tap2wake implemented in this kernel? I find the single tap to cause issues with the screen always waking up, just like lift to wake.
    unfortunately no.


    And the other feature is something google needs to implement to the framework/nanohub rather than kernel. So you already answered that yourself...

    Just to be absolutely clear, would this be ok on latest A13 beta or is this strictly for stable only?
    Should work on latest beta just fine too. :)

    will you support update json for franco kernel manager?
    No, ideally i want everybody to read the release post and check the thread here. :)

    @Freak07 is it still recommended to have verity/vbmeta disabled or can we safely enable it again (Android 13)?
    I haven't had mine disabled since last December or so. Still working great with this kernel on Android 13 Stable, as it has every month.
    Should work fine with flags left enabled :) thanks @roirraW "edor" ehT for confirmation!

    Thanks for adding the FHD option. I've set it to 1080p with 400 DPI and the object scaling is nearly identical to my 1440p setup. Curious to see how this affects battery life.
    It absolutely effects image quality. Rendering at a lower resolution is absolutely going to be fuzzy and look worse.
    I guess it doesn't have a big impact on battery life, but maybe a rather slight one.
    However it might be interesting during gaming or similar usage.

    You're absolutely correct. Rendering on/using lower resolution will produce a less sharp output on the panel.
    Some people will notice it more than others, just like some people notice the difference between 60, 90 and 120hz on the panel more than others. As usual it's also due to usage. If you're looking at a lot of text, use a rather low DPI setting you're probably more likely to notice a difference.

    It's not just "rendering" at a lower resolution on 1080p setting though. It's possible to use wm size command in terminal to render on 1080p resolution while keeping the panel itself running on the 1440p setting.
    While the setting available by flashing the kernel does both, screen content is rendered at 1080p and panel itself runs on 1080p too.

    Τhanks for the update..
    Only small issue is that 1080p setup ,is not surviving a reboot...( After restarting it turns on 1440p)

    You're correct. I noticed that too during testing, but forgot to mention it. It's how google implemented the feature in the framework at the moment. Can't change this behaviour via the kernel.

    Don't consider it a bug at the moment, but rather a safety measure. If you manage to somehow autostart an app (hypothetical scenario), that crashes the phone on boot while using the 1080p setting you can get out of the loop without a PC. :)

    Like I said earlier, in my eyes the feature itself is not finalized yet, so I'm curious if that will really ship on launch on pixel 7 pro.
  • 104
    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 A13 kernel sources from Google, Kernel is made for Android 12
    - Linux-Stable-Upstream included to 5.10.129
    - Compiled with prebuilt Google clang 14.0.7
    - 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 (more info here, here as well and here) to improve mm and reduce cpu cycles
    - 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
    - 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 )
    - 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
    - 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)

    DOWNLOAD:
    Download is always located in this folder:

    Changelog:
    Android 12.0.0

    1.0.0 Initial Release
    1.0.2 https://forum.xda-developers.com/t/...r-pixel-6-pro-aka-raven.4358435/post-85910621
    1.0.5 https://forum.xda-developers.com/t/...r-pixel-6-pro-aka-raven.4358435/post-85924419
    1.3.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-85976139
    1.4.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86109665
    1.5.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86259863
    1.7.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86390563
    1.8.4 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86541727

    Android 12.1.0 Stable (March feature drop and more recent)
    2.0.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86617873
    2.0.1 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86637233
    2.1.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86695911
    2.3.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86821331
    2.4.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86834981

    Android 12.1.0 Stable (June feature drop and more recent)
    3.0.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86992705
    3.0.1 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86996237
    3.0.17 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-87127695

    Android 13.0.0 Stable
    4.1.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-87290247



    Android 12L QPR Beta - Deprecated

    Requirements

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


    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.

    Manual installation without relying on paid apps like fkm/exkm:
    Please have a look at the linked post.



    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/Kirisakura_Raviole
    42
    Update to 4.1.0

    Hey guys and girls,

    I hope everyone started into a good week. Here´s the next release. It´s for stable Android 13.
    Thanks to Google releasing the kernel source for the previews and the betas I´m able to push this update out very quickly. As in the past, the code didn´t change between last beta and stable release.

    There are again a lot of changes in this release. I´ll try to keep the release post short as I don´t have that much time lately.


    FHD/1080P Support for Pixel 6 Pro

    The biggest change is FHD support for the Pixel 6 Pro. If you follow twitter you might have seen this tweet from @MishaalRahman.
    Instead of using the display driver that´s supposedly for the Pixel 7 Pro, FHD support was added to the Pixel 6 Pro display driver. There were a few obstacles to make it run properly on the Pixel 6 Pro, but I got it working nicely so far. If anyone has more experience than me regarding panel timings, display drivers etc, feel free to push any improvement as a pull request to my github or point me towards any improvement.

    As a result you can now select 1080p resolution from settings after flashing the kernel. Dynamic refresh rate works, brightness scaling works, no tints, colour shifts or contrast issues either. AOD has a 1080p Low-Power timing as well.

    You´ll find a few more infos with a short video on my tweet here:
    Screenshot_20220816-083147.png
    Screenshot_20220816-083204.png

    It´s perfectly usable on a daily basis so far. I ran it for a few days without issues on my end. While the advantage might be debatable (saving battery, less load on GPU, still needing to drive the same amount of pixels in the end even on lower resolution, etc etc) having options is nice and this is why I decided to ship it.

    Apps need to redraw after switching resolution, sometimes 1080p on big display size selected in settings the UI looks a bit sketchy. So I think Google is still working on that.

    There´s however one bug I found so far that makes me believe this is still very much a WIP from google. If having the "show current refresh rate" option from dev settings enabled while switching resolutions, the display will black out and a restart needs to be forced by keeping the power button pressed or using adb interface to restart the phone. This is not due to the kernel, but display settings in framework getting scrambled as it´s not yet implemented 100% on googles end. So be warned. :)


    MM Subsystem Rework

    MM subsystem was completely reworked including many improvements from linux-mainline. During this MGLRU was also reworked a bit and works better now. I´ll include links to a few of the improvements/patchsets in hide-tags below, if you´re interested beyond that please check out my github.
    links:

    Additionally tie in a few of the MM changes into the powerhal. For example Proactive compaction is more aggressive during screen-off/device suspended operations to improve long term-performance.

    Other changes:

    Also tune the powerhal and implement all A13 changes, according to the changes that were already present on A12.

    Latest changes from f2fs-stable are included, which include several bugfixes and small improvements.
    Binder improvments/fixes, scheduler improvements from kernel/common, performance for exfat formatted storage device improved (niche use case, but still nice) and other little improvements.
    For other changes and details please take a look at github.


    I wish everyone a nice day.

    If you´re one of the unfortunate ones that suffer from the device is corrupt bug on pixel 6 series please take a look at the FAQ at the beginning of this thread it contains a solution. The issue is probably caused by a bug that affects pixel 6 devices and has nothing to do with magisk or a kernel, it just happens to get triggered when using any of those.



    Changelog:

    - Rebase kernel fully on A13 trees
    - Linux-Stable bumped to 5.10.136
    - FHD/1080p support for Pixel 6 Pro
    - all previous features and improvements kept intact
    - bump f2fs-stable to latest available
    - rework mm subsystem (check git for more details)
    - scheduler improvements
    - binder improvements from kernel/common
    - improve exfat performance (if someones uses exfat formatted devices)
    - loads of other changes from kernel/common
    - update powerhal to account for a13 changes and port existing changes over
    - loads of other changes, please check github



    Download:


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

    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
    Update to 1.8.4

    Hey guys and girls,


    So here´s the next update. It´s kind of an off schedule update, as I planned to update the kernel with the next security update/feature drop.

    But in the light of recent events regarding the new exploit called "Dirty Pipe" (more info here), which is similar to the "Dirty Cow" exploit from a while ago, but easier to exploit this time, I decided to release an update ahead of schedule.

    This exploit was fixed in linux-stable 5.10.102, as opposed to a single commit in AKC (android kernel common, commit here). This shows once more why merging linux-stable is beneficial as explained in detail in the OP.

    Since one of the key aspects of this kernel is security and staying on par with upstream (which often fixes exploits way ahead of android security bulletin updates, even before an exploit is even known or fixed via a patch on the security bulletin) I decided to release this update as quickly as possible, so this exploit is fixed on devices running this kernel.

    Several other notable improvements and changes in this release:
    Bring in scheduler updates from Android 13 Developer Preview, which aim at improving task placement. (adjust powerhal accordingly)
    BFQ IO-Sched is now on par with linux-mainline.
    Several fixes to mm subsystem, f2fs and others.

    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.103
    - contains fix for the dirty pipe exploit
    - built with clang 14.0.2 prebuilt by google
    - improvments from kernel/common
    - fix memory leaks
    - security related patches
    - mm improvments
    - f2fs fixes
    - scheduler fixes
    - for details please check github
    - built with improvements from A13 Dev Preview to display driver
    - other changes please look at my github


    Download:


    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.
    37
    Update to 1.7.0

    Hey guys and girls,


    So here´s the next update. It includes the february security update. Most of the changes brought by the February kernel source drop, were already included in this kernel by merging kernel/common and linux-stable.


    Several other notable improvements and changes in this release:
    Improve f2fs performance by merging a patchset to prevent writer starvation for the checkpoint thread. This was discussed this month in the f2fs mailing list and is already merged to the kernel/common tree. It´ll improve performance under heavy I/O utilization.
    You can find more information following the discussion here.
    Necessary backports were brought to the kernel and the platform specific f2fs-implementation was also adjusted.
    Latest f2fs-stable was also merged to the kernel.

    Update the patchset to prevent frequency spikes caused by small tasks as well. Tie those new changes into the powerhal. (That means users not flashing the kernel.zip, but instead use the manual installation method, which are only a handful from the download count, need to flash the updated magisk helper module. Users that flash the kernel.zip via FKM/EXKM have to just flash and forget)

    Several other improvements are included as well. More details in the changelog.
    Download is below.
    Updated instructions in the OP!


    Changelog:
    - February Security update merged
    - linux-stable 5.10.96
    - include latest f2fs-stable
    - improvments from kernel/common
    - fix memory leaks
    - security related patches
    - mm improvments
    - for details please check github
    - introduce unfair f2fs rwsems to prevent writer starvation and improve IO perf
    - update patchset to prevent freq spikes caused by small transient tasks (also tie this into powerhal)
    - give pelt multiplier power hint for scheduler performance boost during fingerprint unlock
    - 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
    - update LRNG implementation (thanks to arter97 )
    - improvements/fixes for CleanSlate features
    - other changes please look at my github


    Download:


    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.
    36
    Update to 2.1.0

    Hey guys and girls,


    Alright here´s the next update. And it´s again a really big update! :)
    A few weeks ago google pushed a backport of Multi-Gen LRU for the 5.15 kernel to their aosp/kernel common branches. I went ahead and backported that to our 5.10 tree alongside other mm-improvements from linux-mainline. By now google pushed their own backport for 5.10, but I decided to go with my original implementation as it contains a lot more improvements alongside the main Multi-Gen LRU backport and ran stable for well over 3 weeks.

    Powerhal was adjusted quite significantly too. CPU-freqs are restricted to 1.1GHZ max during screen off/device idle operations to save more power. App launches and camera operation are improved as well in the powerhal. General usage benefits from those changes too.

    Latest linux-stable, f2fs-stable and kernel/common were merged as well.

    Users that decide to not use the CleanSlate features and don´t install the apps won´t see the kernel parsing for the config files extensively.
    Vibration Booster from CleanSlate was improved as well to kind of counter the weaker haptic feedback since the March update. Please check the linked thread from the changelog. Huge thanks to @tbalden for this. If you want to give a little bit back consider purchasing the apps via playstore or maybe a small donation. :)



    I´ll keep the warning as to preferably using magisk stable to avoid potential issues as well here in this post.
    Please note that 24305 works fine for me though on non beta, stable April firmware!
    Important:
    Make sure you´re being rooted with magisk 24300 stable before flashing the kernel if you´re unsure. Any magisk version above 24303 might potentially lead to a reboot back to bootloader since android 12.1.0 and A12L QPR3 Beta. At the moment this only affects canary, but I put the warning just in case this will not get resolved in upstream magisk in time until the next stable drops. I saw a post that some modules also have problems with latest canary, so there´s a lot going on at magisk´s side at the moment.
    A post containing a short write-up how to "downgrade" magisk can be found following this link.



    Changelog:

    - Update for April Source
    - Linux-stable merged to 5.10.109
    - f2fs-stable merged
    - fixes and improvements from kernel/common including several subsystems
    - multi-gen LRU ( more info here, here as well and here)
    - general LRU improvements from Linux-Mainline
    - improve camera performance by tuning the powerhal during recording
    - improve app launches via powerhal
    - restrict maximum CPU-Freqs during screen off/ idle to 1.1GHZ for all clusters to save power
    - remove cleanslate config files getting parsed excessively even if user did not install the CleanSlate apps
    - improve vibration boosting feature in CleanSlate config app to allow stronger vibration again(please have a look at this post )
    - other fixes for CleanSlate features such as sweep to sleep
    - updated anykernel 3 zip, thanks to @osm0sis
    - probably a lot more I forgot as time is short for me.


    Download:


    Instructions can be found in the OP! Please follow the instructions to avoid any issues and read this post carefully. Don´t use magisk canary 24303 or more recent to avoid potential 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.

    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