[Kernel][02.06.2021][Android 10] Kirisakura 2.2.5 for Asus Rog Phone 3 aka OBIWAN

Search This thread

bencozzy

Senior Member
Feb 28, 2011
894
177
34
Columbus OH
Usually bootloader unlocked devices are blacklisted for OTAs indeed. But there were always some reports of very few lucky users receiving OTAs, despite being unlocked.

If you want to update you can restore stock boot.img, dtbo.img and recovery.img from stock fw and the OTA should install fine for you. (I guess)
Or you wait for the full firmware.zip to be available. (that’s what I usually do)

Keep in mind, flashing a kernel based on a kernel source not matching the current firmware source, can potentially lead to issues as well. :)
This is the first OTA I've received never got any of the other ones. That's the weird part. I did back ups and had recovery files on my pc before trying the unmatching kernel and firmware 😉

I'll wait for the full update because that's what I've been doing so far and I'm used to that way with twrp and root.
 
  • Like
Reactions: Freak07

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
4,906
15,668
Update to 2.1.1

Hey guys and girls,


Alright here´s a new update.
It includes linux-stable upstream. Kernel is now compiled with prebuilt clang 12.0.4 from google.

There´s an option for interested and curious users to use the ROG3 with a refresh rate bumped to 165fps.
To try this, follow the guide to enable the 160fps step: https://www.xda-developers.com/asus-rog-phone-3-hidden-160hz-refresh-rate-mode/
And flash the kernel.zip with 165fps in the filename.
Keep in mind there´s a certain risk involved running the phone at 165fps daily.
There´s also a difference between between the panel drawing at 165fps and an app rendering at 165fps.
Browser test can provide a way to check here:

Short overview:
For an overview of the recent display changes take a look at the previous release post linked here.

What do the tags in the kernel.zips mean?
160fps= hidden 160fps mode will run at 160fps
165fps= hidden 160fps mode will run at 165fps
stockdisplay= display setting as found on the stock kernel.
newdisplay= display setting as explained in the release post of 2.1.0 explained here


Disclaimer/Important:
Since Release 1.5.0 Selinux-Mainline patches are backported now that Magisk 21.0 and greater support it. This gives selinux a performance boost.
You need to have upgraded to magisk 21.0 or higher before flashing the kernel!
If you´re on of those that could not boot 21.0 or greater with the stock kernel, this issue is solved on magisk 21400 and above.



More details in the changelog below and on GitHub as usual.

I´d advise everybody to read the instructions in the OP and follow them. They are written for a reason, because they ensure everything will be working as expected.
Kernel is made for the latest stock rom from Asus, you must update your phone to the most recent Asus update, before flashing the kernel.

Enjoy!


Changelog:
- Linux-Stable Upstream 4.19.182
- update clang to latest prebuilt 12.0.4
- provide option for 165fps refresh rate.



I wish you all a nice day/evening!


Download is below :)

Download is in this folder:
Kernel: see attachment to this post, afh is broken at the moment
Instructions how to flash the kernel can be found in the OP!
But look at this post too :)

To make use of the CleanSlate features you need to download both CleanSlate Apps:
Please take a look at the CleanSlate thread for CleanSlate features. On the CleanSlate thread you will find links to both apps, companion and configuration app, to control the CleanSlate features.
If you use the CleanSlate features and benefit over time, maybe think about giving something back to @tbalden and purchase them from PlayStore. :)


Have fun, enjoy the kernel and your phone.

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
 

sploink

Member
Jan 11, 2021
8
0
Update to 2.1.1

Hey guys and girls,


Alright here´s a new update.
It includes linux-stable upstream. Kernel is now compiled with prebuilt clang 12.0.4 from google.

There´s an option for interested and curious users to use the ROG3 with a refresh rate bumped to 165fps.
To try this, follow the guide to enable the 160fps step: https://www.xda-developers.com/asus-rog-phone-3-hidden-160hz-refresh-rate-mode/
And flash the kernel.zip with 165fps in the filename.
Keep in mind there´s a certain risk involved running the phone at 165fps daily.

Short overview:
For an overview of the recent display changes take a look at the previous release post linked here.

What do the tags in the kernel.zips mean?
160fps= hidden 160fps mode will run at 160fps
165fps= hidden 160fps mode will run at 165fps
stockdisplay= display setting as found on the stock kernel.
newdisplay= display setting as explained in the release post of 2.1.0 explained here


Disclaimer/Important:
Since Release 1.5.0 Selinux-Mainline patches are backported now that Magisk 21.0 and greater support it. This gives selinux a performance boost.
You need to have upgraded to magisk 21.0 or higher before flashing the kernel!
If you´re on of those that could not boot 21.0 or greater with the stock kernel, this issue is solved on magisk 21400 and above.



More details in the changelog below and on GitHub as usual.

I´d advise everybody to read the instructions in the OP and follow them. They are written for a reason, because they ensure everything will be working as expected.
Kernel is made for the latest stock rom from Asus, you must update your phone to the most recent Asus update, before flashing the kernel.

Enjoy!


Changelog:
- Linux-Stable Upstream 4.19.182
- update clang to latest prebuilt 12.0.4
- provide option for 165fps refresh rate.



I wish you all a nice day/evening!


Download is below :)

Download is in this folder:
Kernel: see attachment to this post, afh is broken at the moment
Instructions how to flash the kernel can be found in the OP!
But look at this post too :)

To make use of the CleanSlate features you need to download both CleanSlate Apps:
Please take a look at the CleanSlate thread for CleanSlate features. On the CleanSlate thread you will find links to both apps, companion and configuration app, to control the CleanSlate features.
If you use the CleanSlate features and benefit over time, maybe think about giving something back to @tbalden and purchase them from PlayStore. :)


Have fun, enjoy the kernel and your phone.

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
You're so fast. Thank you!
 

bencozzy

Senior Member
Feb 28, 2011
894
177
34
Columbus OH

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
4,906
15,668
thanks for your work, i have 2 questions i'll apricate it if you answer them when you can.
1. will you implement this fix for the black crush https://zentalk.asus.com/en/discussion/46068/colorbanding-defeated/p3 or something similar in the future?
2. will i lose ota updates if i root my device?
1. Fingers crossed Freak07 pulls this to his kernel

2. Yes unlocking the bootloader blacklist the device from getting OTA updates
That fix from danishblunt looks promising. But some of the screenshot looks like it just an overlay.

to answer the first question. I can´t implement something that no source code exists for. You can read through the zentalk thread you linked for more information.

As per GPL required and being the rule on XDA, the source code for my kernel project on XDA can be viewed, examined and used by anybody here. It´s linked in the OP.
If anybody wants to help this project getting further or want any changes inlcuded they can point me to their changes done to the kernel source or create a pull request, so these changes can be used.

What I use myself, I provide here for everyone to use as well. :)

2. Unlocking means official warranty is lost and the device will receive no further OTA updates from Asus. You have to install all updates manually.
 
Last edited:
  • Like
Reactions: bencozzy

Danishblunt

Member
Jul 2, 2015
42
2
Little clarification here as I just got another DM on telegram claiming nonsense.
I decided to recently step into kernel development myself and saw that freak07 was on telegram, I added him and he helped me set the kernel development up so that I can myself do some edits. I looked into the entire display issue the rog3 has and shared some of my knowledge with him. I also told him about the display commands, how they are roughly structured and where to find them, hence you see all these display tweaks from him lately, which is absolutely his work, i merely pointing him towards a direction, I have nothing to do with what he does with his tweaks, the same goes for my kernel, he has nothing to do with my implemention either. So please stop asking him to implement my solution which he also can't do because it isn't published anywhere, I also don't want to hear any dumb conspirocy theories about freak07, you know who you are, seriously stop it.
 

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
4,906
15,668
Little clarification here as I just got another DM on telegram claiming nonsense.
I decided to recently step into kernel development myself and saw that freak07 was on telegram, I added him and he helped me set the kernel development up so that I can myself do some edits. I looked into the entire display issue the rog3 has and shared some of my knowledge with him. I also told him about the display commands, how they are roughly structured and where to find them, hence you see all these display tweaks from him lately, which is absolutely his work, i merely pointing him towards a direction, I have nothing to do with what he does with his tweaks, the same goes for my kernel, he has nothing to do with my implemention either. So please stop asking him to implement my solution which he also can't do because it isn't published anywhere, I also don't want to hear any dumb conspirocy theories about freak07, you know who you are, seriously stop it.

to conclude this whole topic:
Like stated in the quoted post, @Danishblunt asked me for help building my kernel from source. I provided help so he was able to build the kernel successfully. After all that´s a big part of what the community and open-source is about.

We talked about a few topics, one topic being the display, how it could be improved and crossed the display commands. Those display commands are not new to me, I modified the file that contains them in the past.
I have no exact knowledge about the timings in the display commands for the different FPS rates the display can switch to. You can find them here for example. There is no documentation that can be find anywhere.

During our conversation @Danishblunt told me about certain RGB and Gamma values found in those , but could not explain to me how exactly they are being calculated.
Until today I still don´t know or understand where those values come from or how to calculate them from the commands linked above.
It got me curious, then I started experimenting by trial and error. By comparing and changing values I got to the point that´s being available for everybody here.


I don´t know anything about the changes @Danishblunt did to the kernel source, after he was able to build the kernel, as @Danishblunt´s source is not published anywhere, just like mentioned in the quoted post. Nor do I know how anything of his work functions.
It´s his work and as mentioned in my previous post, any details about his implementation can be found over at the zentalk thread.

Let´s end this topic here. There´s no need to accuse anybody.
 
Last edited:
  • Like
Reactions: bencozzy

sploink

Member
Jan 11, 2021
8
0
Update to 2.1.1

Hey guys and girls,


Alright here´s a new update.
It includes linux-stable upstream. Kernel is now compiled with prebuilt clang 12.0.4 from google.

There´s an option for interested and curious users to use the ROG3 with a refresh rate bumped to 165fps.
To try this, follow the guide to enable the 160fps step: https://www.xda-developers.com/asus-rog-phone-3-hidden-160hz-refresh-rate-mode/
And flash the kernel.zip with 165fps in the filename.
Keep in mind there´s a certain risk involved running the phone at 165fps daily.
There´s also a difference between between the panel drawing at 165fps and an app rendering at 165fps.
Browser test can provide a way to check here:

Short overview:
For an overview of the recent display changes take a look at the previous release post linked here.

What do the tags in the kernel.zips mean?
160fps= hidden 160fps mode will run at 160fps
165fps= hidden 160fps mode will run at 165fps
stockdisplay= display setting as found on the stock kernel.
newdisplay= display setting as explained in the release post of 2.1.0 explained here


Disclaimer/Important:
Since Release 1.5.0 Selinux-Mainline patches are backported now that Magisk 21.0 and greater support it. This gives selinux a performance boost.
You need to have upgraded to magisk 21.0 or higher before flashing the kernel!
If you´re on of those that could not boot 21.0 or greater with the stock kernel, this issue is solved on magisk 21400 and above.



More details in the changelog below and on GitHub as usual.

I´d advise everybody to read the instructions in the OP and follow them. They are written for a reason, because they ensure everything will be working as expected.
Kernel is made for the latest stock rom from Asus, you must update your phone to the most recent Asus update, before flashing the kernel.

Enjoy!


Changelog:
- Linux-Stable Upstream 4.19.182
- update clang to latest prebuilt 12.0.4
- provide option for 165fps refresh rate.



I wish you all a nice day/evening!


Download is below :)

Download is in this folder:
Kernel: see attachment to this post, afh is broken at the moment
Instructions how to flash the kernel can be found in the OP!
But look at this post too :)

To make use of the CleanSlate features you need to download both CleanSlate Apps:
Please take a look at the CleanSlate thread for CleanSlate features. On the CleanSlate thread you will find links to both apps, companion and configuration app, to control the CleanSlate features.
If you use the CleanSlate features and benefit over time, maybe think about giving something back to @tbalden and purchase them from PlayStore. :)


Have fun, enjoy the kernel and your phone.

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
Is it possible to overclock the cpu too? Like the cpu freq of SD 870?
 

BLUEPOP

Senior Member
Apr 23, 2017
95
14
im not sure why people are causing you trouble danish, i get that freak helped u and i don't really care personally and i don't think others should care aswell...
i was just wondering if freak would be able to add your fix since it seems to work well.
sorry for any trouble caused to any of you
 

MrxSiN

Senior Member
Jan 22, 2013
1,191
548
Dungun, MY
Is it possible to overclock the cpu too? Like the cpu freq of SD 870?
865+ is overclocked version of 865. 3100 vs 2840 MHz. Snapdragon 865+ is cherry picked chip which can run higher clock speed while not sacrifice as much energy as an 865 needed to reach 3.1GHz. In current technology we had, pushing the last few hundreds of MHz out of a chip is trading a few indistinguishable performance improvement for exponential power consumption and heat output to the device. I know that there a news about Snapdragon 865+ prime core can be overclocked up to 3.4GHz. Trading over 50+% chance of bricking your device for a 5% performance improvement , do you want to do it?
 
  • Like
Reactions: bencozzy

bencozzy

Senior Member
Feb 28, 2011
894
177
34
Columbus OH
maybe stupid question, but there is no way to shot down core 7 (prime) right?
Yes you can do it with a kernel controlling app I use francokernelmanager
Screenshot_20210328-092333313.jpg
Screenshot_20210328-092340735.jpg
 

Top Liked Posts

  • There are no posts matching your filters.
  • 2
    Update to 2.2.5

    Hey guys and girls,


    I hope everybody started into a good week. Here´s the next update it includes the source code for the latest firmware update.

    The kernel is now made for the firmware 17.0823.2104.147. Please make sure to update to this firmware before flashing the kernel to avoid potential issues. You can always flash the previous kernel, before I find time to update the kernel with the latest source, just don´t report issues if you decide to do so.


    Disclaimer/Important:
    Since Release 1.5.0 Selinux-Mainline patches are backported now that Magisk 21.0 and greater support it. This gives selinux a performance boost.
    You need to have upgraded to magisk 21.0 or higher before flashing the kernel!
    If you´re on of those that could not boot 21.0 or greater with the stock kernel, this issue is solved on magisk 21400 and above.


    More details in the changelog below and on GitHub as usual.

    I´d advise everybody to read the instructions in the OP and follow them. They are written for a reason, because they ensure everything will be working as expected.
    Kernel is made for the latest stock rom from Asus, you must update your phone to the most recent Asus update, before flashing the kernel.

    Enjoy!


    Changelog:
    - Include Source for 17.0823.2104.147

    I wish you all a nice day/evening!


    Download is below :)

    Download is in this folder:
    Instructions how to flash the kernel can be found in the OP!
    But look at this post too :)

    To make use of the CleanSlate features you need to download both CleanSlate Apps:
    Please take a look at the CleanSlate thread for CleanSlate features. On the CleanSlate thread you will find links to both apps, companion and configuration app, to control the CleanSlate features.
    If you use the CleanSlate features and benefit over time, maybe think about giving something back to @tbalden and purchase them from PlayStore. :)


    Have fun, enjoy the kernel and your phone.

    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
  • 9
    Kirisakura-Kernel for the Rog Phone 3

    Hello everyone,

    To keep it short: Here is Kirisakura - Kernel for the Rog Phone 3 aka OBIWAN.
    I would appreciate if everybody that flashes the kernel, reads at least once through this opening post and the following ones.

    Kirisakura - Kernel is designed to bring a handful of beneficial features to the device, while ensuring excellent performance and smoothness to get you safely through the day!

    This project aims to keep most of the subsystems updated, way ahead of the stock kernel, thereby improving security and performance, while keeping stability as the foucs during testing! This includes Linux-Stable, CAF-Upstream and kernel/common.
    Kernel Control Flow Integrity (Kernel-CFI), which is achieved by linking the kernel with LLD and Link Time Optimization (LTO), more precisely ThinLTO, are quite unique security features. In fact this, alongside Kirisakura-Kernel for the OnePlus 8 Pro, may be (and probably is) the first 4.19 msm kernel with a fully working Kernel-CFI implementation and CFI-Violations fixed on a smartphone.
    The only kernels made by OEMs offering this security feature are the ones for the Pixel 3 and Pixel 4 devices.
    The recently released Kirisakura-Kernel for the OnePlus 8 Pro was featured on the XDA-Portal due to the inclusion of CFI. The featured article explains CFI in great details, is easy to understand and definitely worth to read.

    Another security feature is Shadow Call Stack (SCS). Similar to CFI, only the Pixle 3 and 4 Kernel use this security feature.
    SCS is another security patchset that is aimed at preventing attacks via return oriented programming (ROP).
    ROP is a technique where the attacker gains control of the kernel stack to overwrite function return addresses and redirect execution to carefully selected parts of existing kernel code.
    If you´re interested here are a few good links:
    Google Security Blog explaining SCS.
    LLVM doc about SCS
    Android DOCs documenting SCS

    If reading about upstream in the paragraph above 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.

    Quick explanation of CAF-Upstream. CAF is short for Codeaurora-Forums. This is the place where development from Qualcomm for their SoCs happens. This includes the Snapdragon 865/+ that´s built into the different SKUs of the Rog Phone 3.
    The kernel-bases available on the Codeaurora-Forums, are basically the foundations OEMs use, to build their own kernel additions on top for devices featuring Qualcomm SoCs.
    The Qualcomm developers push regular updates to the bases of the different SoCs, a bit similar to how Linux-Upstream works. OEMs usually stop updating the initial base after the phone is released.
    This kernel focuses amongst the other features to provide the latest CAF-Updates merged in a regular manner, to provide updates, improvements and enhancements for SoC specific drivers and subsystems! This might take a while, because a lot of device specific testing is done on my end to ensure stability.

    The kernel includes a lot of improvements and contributions from other developers as well. Without this kernel would not exist.
    I´d like to mention @tbalden ´s excellent CleanSlate features at this place. They improve usability by a big margin for me personally. The highly customizable sweep to sleep implementation (adjustable to different navigation settings), long tap to bring down status bar (very useful on a big device), backlight dimmer and notification reminder are very useful features that I use personally every day.
    Another 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!


    Main Features:
    - Based on latest kernel sources from Asus for Android 10 and intended for use on the latest Asus Stock-Firmware (currently 17.0823.2104.147)
    - compiled with Clang 12.0.5 and built with -O3 speed optimizations
    - Linux-Stable-Upstream included to 4.19.190
    - CAF base for the Snapdragon 865/+ (SD865/+) updated to upstream CAF
    - Kernel Control-Flow-Integration (CFI) andLink-Time-Optimization (LTO) ported from 4.19 kernel/common and Pixel 4/XL Kernel
    - Shadow Call Stack (SCS) Security-Feature
    - Use ThinLTO which was first used in the Pixel 4 XL Android R-Preview Kernel instead of full LTO for full program visibility (needed by CFI)
    - fix CFI-Violations found in various subsystems like Asus/device specific drivers and qualcomm drivers
    - Link the kernel with LLD and use RELR-Relocation
    - include important fixes/improvements from kernel/common
    - Flashing the kernel will keep root!
    - Cleanslate Features included! See @tbaldens´s CleanSlate Thread for more information
    - Flashable via EXKM, FKM or TWRP on a rooted system!
    - Anykernel zip is based on the Anykernel3 release from @osm0sis
    - disable various debugging configs, that are not needed in a perf build kernel according to google.
    - disable selinux auditing (we don´t have to adress selinux denials running a stock rom)
    - display tweaks to reduce power consumption on statically rendered images
    - tweak display to allow better visibility of black levels/colours on low brightness ( example pictures )
    - allow experimental 165hz refresh rate for the panel. (use with caution)

    EAS related features:
    - EAS implementation patched up to latest CAF state
    - disable autogroups and use cgroups for more efficient task placement!
    - updates from kernel/common
    - scheduler updates from Googles Pixel kernel

    CPU related features:
    - Change various drivers (WLAN, MM, audio, charger, power, thermal, glink etc) to user power efficient workingqueues. This compliments EAS
    - include cpuidle patches from CAF
    - improvements to cpufreq/times/stats
    - improve memory allocations in binder driver
    - use s2idle for deepsleep, as pixel 4/5
    - vdso32 patches as found on Google Pixel devices (brief documentation here)
    - enable lse atomics
    - arm64: lse: Prefetch operands to speed up atomic operations, thanks @kdrag0n
    - implement fast refcount checking

    GPU related features:
    - GPU driver updated to latest CAF-State
    - remove POPP functionality from GPU driver to avoid constant fight about downscaling with msm-adreno-tz
    - don´t wake the gpu on touch input, instead wake when receiving an ioctl
    - don´t copy fence names by default to save a bit of cpu-time (explanation)
    - msm: kgsl: Stop slab shrinker when no more pages can be reclaimed
    - gpu/kgsl improvements from pixel 4/pixel 5 kernel

    File System related features:
    - improve memory allocations in sdcardfs
    - improve eventpoll logging to stop indicting timerfd (improves kernel wakelock readability)
    - improve memory allocations in kernfs
    - writeback: hardcode dirty_expire_centisecs=3000 based on this commit
    - f2fs-stable upstream, that includes ATGC
    - ufs improvements from pixel 4/ pixel 5 kernel

    UI/UX/Usability related features from CleanSlate:
    - CleanSlate features made by @tbalden
    - Disclaimer: All CleanSlate features can be controlled via the free companion and config app found on CleanSlate thread here on the ROG 3 Forums on XDA. Please consider buying the premium versions if you enjoy using the CleanSlate features, to give a little something back to @tbalden.
    - Flashlight Notification/Call blinking
    - Vibrating Notification Reminder
    - Sweep to Sleep touchscreen gesture - highly customizable
    - DoubleTap on Sweep2Sleep's area gestures - new way to pull down android Notification Area
    - Face down screen off - new gesture
    - Backlight Dimmer - possibility to use lower panel brightness
    - Force FPS Level on Low Brightness
    - Squeeze Control
    - advanced notification LED control, chromatic charge LED, pulsating LED, LED dimming

    Network related features:
    - Wireguard Support (Details)
    - advanced TCP algorithms enabled
    - includes new bbr and bbr2
    - fix CVE-2020-14386

    Memory related features:
    - Speculative Page Faults left enabled (1. 2) (CAF default)
    - various fixes for PSI-Monitor, which is used by the userspace lowmemorykiller-daemon
    - Fix various memory leaks in different subsystems
    - improved mm with patches from mainline
    - various other changes from mainline
    - included zstd as an option for ZRAM-algorithm (lz4 is probably the best all around, so only change it if you know why and what you are doing)
    - improve memory allocations in various subsystems
    - ported per process reclaim from Pixel 5 kernel, instead of using outdated CAF implemenation
    - Backport to enable CONFIG_HAVE_MOVE_PMD (see here) , thanks @arter97
    - Backport to enable CONFIG_HAVE_MOVE_PUD (commit here) , thanks @arter97

    Security related features:
    - Control-Flow-Integration (CFI) and Link-Time-Optimization (LTO) ported from 4.19 kernel/common and Pixel 4/XL Kernel
    - Use ThinLTO which was first used in the Pixel 4 XL Android R-Kernel instead of full LTO
    - Shadow Call Stack (SCS) Security-Feature
    - fix various CFI-Violations found in various subsystems like Asus/device specific drivers and qualcomm drivers
    - enable init_on_alloc for even more security, more information can be found in the commit message
    - Backport mainline Selinux commits, thanks @arter97 (you must be on magisk 21.0, otherwise the kernel won´t boot)


    Misc Features:

    TCP Congestion Algorithms:
    - advanced algorithms enabled, enable them with your favorite kernel manager
    - includes new bbr2
    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
    - blocking a kernel wakelock should only be done in case of firmware incompatabilities (WiFi network at work (can´t be changed) causes deep sleep to not work on the phone.) That´s the only use case I see for this feature. The kernel does not features this to improve battery life!

    Other features:
    - disable logging and debugging to make the kernel more lightweight in various places (includes binder, mm, vma, gpu, ipa etc)
    - fix several coding issues detected by newer Clang-Toolchains
    - add support for steam controller
    - add support for nintendo switch controller
    - ufs improvements from pixel 4/ pixel 5 kernel
    - gpu/kgsl improvements from pixel 4/pixel 5 kernel
    - display tweaks to reduce power consumption on statically rendered images

    Feature section for the "non visible" but perceptible improvements:
    - updated binder section (responsible for interprocess communication)
    - updated sdcardfs ; have a read about it here:



    Flashing Guide, Download and Changelog

    A description how to flash the kernel, links for download and a changelog can be found in the second post!


    Contributors
    Freak07
    Source Code: https://github.com/freak07/Kirisakura_OBIWAN

    Version Information
    Status:
    Stable
    7
    Update to 1.8.2

    Hey guys and girls,


    New Update. It includes the source for the new firmware 17.0823.2012.122.
    Make sure to update to this firmware, before flashing the kernel. The zip won´t flash by default on older firmware.

    On 1.8.2 Linux-Stable Upstream is merged, as well as CAF-Upstream.
    Memory improvements, small update to the scheduler, vdso32, and some others are mentioned in the changelog as usual. Some with links for those that like to read it.

    Disclaimer/Important:
    Since Release 1.5.0 Selinux-Mainline patches are backported now that Magisk 21.0 and greater support it. This gives selinux a performance boost.
    You need to have upgraded to magisk 21.0 before flashing the kernel!
    The download can be found here: https://github.com/topjohnwu/Magisk/releases/download/v21.0/Magisk-v21.0.zip
    Alternatively download latest magisk manager from here: https://github.com/topjohnwu/Magisk/releases/download/manager-v8.0.2/MagiskManager-v8.0.2.apk
    Go to Settings and set Magisk Channel to Beta to get Magisk 21.0!
    If you´re on of those that can´t boot 21.0 or greater with the stock kernel, update to 21.0 or higher and flash Kirisakura Kernel without a reboot. Your device should boot up fine.



    More details in the changelog below and on GitHub as usual.

    I´d advise everybody to read the instructions in the OP and follow them. They are written for a reason, because they ensure everything will be working as expected.
    Kernel is made for the latest stock rom from Asus, you must update your phone to the most recent Asus update, before flashing the kernel.

    Enjoy!


    Changelog:
    - Update Source Code to Asus Source 17.0823.2012.122 (make sure to update your phone before attempting to flash the kernel)
    - Linux-Stable Upstream 4.19.164
    - Merge latest CAF-Upstream
    - kernel/common updates
    - vdso32 patches as found on Google Pixel devices (brief documentation here)
    - Backport to enable CONFIG_HAVE_MOVE_PMD (see here) , thanks @arter97
    - Backport to enable CONFIG_HAVE_MOVE_PUD (commit here) , thanks @arter97
    - enable lse atomics
    - arm64: lse: Prefetch operands to speed up atomic operations, thanks @kdrag0n
    - f2fs improvements
    - scheduler improvements
    - other changes please take a look at github


    I wish you all a nice day/evening!


    Download is below :)

    Download:

    Kernel:
    https://www.androidfilehost.com/?fid=17248734326145705484
    Instructions how to flash the kernel can be found in the OP!
    But look at this post too :)

    To make use of the CleanSlate features you need to download both CleanSlate Apps:
    Please take a look at the CleanSlate thread for CleanSlate features. On the CleanSlate thread you will find links to both apps, companion and configuration app, to control the CleanSlate features.
    If you use the CleanSlate features and benefit over time, maybe think about giving something back to @tbalden and purchase them from PlayStore. :)


    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
    6
    Update to 2.1.0

    Hey guys and girls,


    Alright here´s a new update.
    It includes CAF-Upstream as well as Linux-Stable upstream.

    However there´s an interesting new change I´m sure many will be interested in.
    The display commands were changed so visibility in dark scenes is improved when watching videos on lowest brightness.
    Here´s an example scene from the "infamous" batman trailer. Both pictures were taken with lowest brightness setting on the phone and the same iso, aperture and shutter on the camera.

    Stock:

    New:

    These changes allowed me to greatly reduce the minimal brightness in the kernel, while still improving visibility and black levels on lowest or very low brightness setting compared to the stock kernel.
    If you don´t use already the brightness dimmer setting in the CleanSlate config app, the minimum brightness on a pure white background will now be by default on 3.7 lux, while it is on 13.5 lux on the stock kernel.

    If that´s too low for you and you prefer a brighter minimal brightness install the CleanSlate Config app and change the backlight dimming min value to your liking.
    The app is available to download in the CleanSlate thread.
    Here´s a screenshot, on which setting to change. Enable the dimmer setting, choose your desired min value with the slider, hit the save icon at the bottom and profit!
    The following are rough guidelines on the value you can choose in the CleanSlate config app and the corresponding min brightness measured against a white background.

    40 (default setting on my kernel, without having CleanSlate config app installed) = 3,7 lux min brightness
    90 =6,7 lux min brightness
    120 = 8,1 lux min brightness
    180 = 13,7 lux min brightness (same as stock kernel)

    You will notice a brightness/colour shift on low brightness once you open a "VideoApp" like YouTube, Netflix, Prime Video. The same happens to popular Gallery Apps like Google Photos or Asus Gallery.
    This is an overlay from the Pixelworks daemon that is triggered, when such an app is detected. This behaviour can´t be blocked in the kernel (yet, probably never).
    However there´s a trick to disable this mechanism. When using A11 navigation gestures, swipe up from the bottom so you can see the "pill". Drag the pill a little to the left or right as if you´d switch apps. You´ll see again a brightness and color shift, as the pixelworks daemon is fooled to believe you exited the app.
    That´s helpful if you want to watch the video on that "lower" unmodified brightness level.
    It´s not a perfect solution but better than nothing.
    Keep in mind, when using this trick on lowest brightness you will lose a bit of visibility of those dark details again.

    But it´s all about choices and I feel this offers plenty now.

    These changes to the display also shift colours on higher brightness a bit towards green. That means the "dark, red-blueish hue" from the ROG 3 is reduced and the screen looks more natural/neutral. I compared a lot with other devices and think I finally found a good spot, that´s hopefully acceptable for everyone.
    There´s always splendid to fine tune the display!

    I will also attach two kernel.zips. One with the display changes and one with stock "settings" for the display.
    So if you don´t like the new changes, you can just use like everything is on stock.

    Disclaimer/Important:
    Since Release 1.5.0 Selinux-Mainline patches are backported now that Magisk 21.0 and greater support it. This gives selinux a performance boost.
    You need to have upgraded to magisk 21.0 or higher before flashing the kernel!
    If you´re on of those that could not boot 21.0 or greater with the stock kernel, this issue is solved on magisk 21400 and above.



    More details in the changelog below and on GitHub as usual.

    I´d advise everybody to read the instructions in the OP and follow them. They are written for a reason, because they ensure everything will be working as expected.
    Kernel is made for the latest stock rom from Asus, you must update your phone to the most recent Asus update, before flashing the kernel.

    Enjoy!


    Changelog:
    - Linux-Stable Upstream 4.19.180
    - Merge latest CAF-Upstream
    - kernel/common updates
    - improve visibility of dark scenes when watching video on lowest brightness



    I wish you all a nice day/evening!


    Download is below :)

    Download:

    Kernel:
    see attachment to this post, afh is broken at the moment
    Instructions how to flash the kernel can be found in the OP!
    But look at this post too :)

    To make use of the CleanSlate features you need to download both CleanSlate Apps:
    Please take a look at the CleanSlate thread for CleanSlate features. On the CleanSlate thread you will find links to both apps, companion and configuration app, to control the CleanSlate features.
    If you use the CleanSlate features and benefit over time, maybe think about giving something back to @tbalden and purchase them from PlayStore. :)


    Have fun, enjoy the kernel and your phone.

    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
    6
    Update to 1.9.4

    Hey guys and girls,


    New Update. It includes the source for the new firmware 17.0823.2012.131.
    Make sure to update to this firmware, before flashing the kernel so no conflicts arise.

    1.9.4 includes latest Linux-Stable Upstream as well as CAF-Upstream.

    I also created a magisk module to hide the hardwarestub service warning for those with converted devices on my kernel. No paid app is required for it. Flash it via Magisk Manager and the notification will be hidden.
    Please note that refresh rate can´t be changed when the module is flashed. To able to change refresh rate or to remove the module, simple remove it in Magisk Manager and do a full reboot. I´ll attach it to the third post on this thread. There will be no support for this module from my side and no other support for converted devices.

    Disclaimer/Important:
    Since Release 1.5.0 Selinux-Mainline patches are backported now that Magisk 21.0 and greater support it. This gives selinux a performance boost.
    You need to have upgraded to magisk 21.0 before flashing the kernel!
    If you´re on of those that could not boot 21.0 or greater with the stock kernel, this issue is solved on magisk 21400 and above.



    More details in the changelog below and on GitHub as usual.

    I´d advise everybody to read the instructions in the OP and follow them. They are written for a reason, because they ensure everything will be working as expected.
    Kernel is made for the latest stock rom from Asus, you must update your phone to the most recent Asus update, before flashing the kernel.

    Enjoy!


    Changelog:
    - Update Source Code to Asus Source 17.0823.2012.131 (make sure to update your phone before attempting to flash the kernel)
    - use latest clang 12.0.2 prebuilt by google and fix clang errors
    - Linux-Stable Upstream 4.19.172
    - Merge latest CAF-Upstream
    - kernel/common updates
    - updates to usb_accessory
    - f2fs-stable upstream
    - implement fast refcount checking
    - other changes please take a look at github


    I wish you all a nice day/evening!


    Download is below :)

    Download:

    Kernel:
    https://www.androidfilehost.com/?fid=17248734326145726355
    Instructions how to flash the kernel can be found in the OP!
    But look at this post too :)

    To make use of the CleanSlate features you need to download both CleanSlate Apps:
    Please take a look at the CleanSlate thread for CleanSlate features. On the CleanSlate thread you will find links to both apps, companion and configuration app, to control the CleanSlate features.
    If you use the CleanSlate features and benefit over time, maybe think about giving something back to @tbalden and purchase them from PlayStore. :)


    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
    5
    Requirements

    - unlocked Bootloader
    - USB-Debugging in developer options enabled
    - latest adb and fastboot binaries
    - working adb and fastboot environment
    - magisk root


    How to flash the Kernel:

    1. Download the latest kernel.zip and make sure you have properly updated to the latest matching Asus Stock-Firmware. When the Rog 3 receives an update it takes Asus a while to release the source code for the new OS and me a while to build a new kernel. If you don´t want to face any issues, wait until I either release an updated kernel or give green light because there were no kernel changes.
    Always make sure to run the firmware the kernel is built for!

    1a. Optional: While it may not be necessary all times, you may want to restore stock boot.img, re-root with magisk and optionally install twrp.zip if coming from another kernel. Before reporting issues make sure you do that! Thank you!

    2. Make sure to use at least Magisk 21.0. , otherwise your phone won´t boot due to Selinux-Mainline being present in the kernel. If you´re one of those that can´t use magisk 21.0 or greater on stock kernel, update to beta/canary channel in magisk manager settings, update magisk to 21.0 or greater via magisk manager, do not do a full reboot instead proceed to step 3 without a full reboot!

    3. Flash the kernel.zip via latest EXKM or FKM app, or TWRP (haven´t tested TWRP myself as I don´t need it) and do a full reboot.

    4. Reboot and profit.


    DOWNLOAD:
    Download is located always in this folder:
    https://www.androidfilehost.com/?w=files&flid=316676

    Important: Read after Download
    Please take a look at the second post after flashing the kernel!

    Changelog:

    Android 10

    1.0.0 Initial Release
    1.0.1 https://forum.xda-developers.com/showpost.php?p=83393257&postcount=12
    1.0.2 https://forum.xda-developers.com/showpost.php?p=83409591&postcount=28
    1.1.7 https://forum.xda-developers.com/showpost.php?p=83518681&postcount=32
    1.2.2 https://forum.xda-developers.com/showpost.php?p=83539471&postcount=33
    1.2.3 https://forum.xda-developers.com/showpost.php?p=83552967&postcount=38
    1.5.0 https://forum.xda-developers.com/showpost.php?p=83815367&postcount=74
    1.8.2 https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-84199477
    1.9.4 https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-84404331
    2.1.0 https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-84693785
    2.1.1 https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-84717725
    2.2.0 https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-84752157
    2.2.2 https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-84762283
    2.2.4 https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-85029489
    2.2.5 https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-85119205


    Donations:
    Donations are not mandatory but very welcome if you want to support development or just buy me a coffee/tea :)
    If you like my work: http://paypal.me/freak07

    Credits:
    Asus for the development device, giving me the opportunity to create this project!
    @osm0sis for all his work, including the ak3 installer!
    @tbalden for being the best HTC, Pixel, OnePlus and now Asus wingman!
    @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!