[Kernel][03.07.2022][Android 12] Kirisakura 2.0.0_S for Asus Rog Phone 3 aka OBIWAN

Search This thread

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,099
21,061
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 12 and intended for use on the latest Asus Stock-Firmware
- compiled with Clang 13.0.1 and built with -O3 speed optimizations
- Linux-Stable-Upstream included to 4.19.240
- 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

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
 
Last edited:

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,099
21,061
Requirements

- unlocked Bootloader
- USB-Debugging in developer options enabled
- latest adb and fastboot binaries
- working adb and fastboot environment
- latest magisk stable root environment
- a backup of boot.img and dtbo.img to be able to restore to stock.


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 as well as dtbo.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 meet all the requirements listed above.

3. Flash the kernel.zip via latest EXKM or FKM app, or TWRP and do a full reboot.

4. Reboot and profit. Set CleanSlate features as you desire by installing both apps and choose according to your liking.


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

Android 11
1.0.0_R https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-85434269
1.0.1_R https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-85437987
1.0.5_R https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-85540573
1.0.7_R https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-85797081
1.0.9_R https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-86238185
1.1.0_R https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-86428163
1.1.1_R https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-86444523

Android 12
2.0.0_S https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-87102871


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!
 
Last edited:

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,099
21,061
FAQ

F.A.Q:

Question:
Why does the kernel version show as "unavailable" in settings after flashing it.
Answer: Asus does not allow for custom kernel names in their settings. If the kernel string doesn´t fit their regex, it will display as unavailable there. Nothing can be done about it. Use a kernel manager to check the kernel version.

Question: Is root preserved when flashing this kernel?
Answer: Yes, the AnyKernel.zip will detect root and keep it.

Question: How do I return back to stock or another kernel.
Answer: Extract boot.img as well as dtbo.img from matching firmware you are on and flash the extracted boot.img and dtbo.img via fastboot. If you want to keep root flash back the magisk_patched_boot.img. Or dirty flash your rom.

Question: Why is having Magisk installed mandatory for this kernel?
Answer: Android 10s changes to partitions, doesn´t allow files in system/ and vendor/ to be replaced. This kernel is very far from the stock kernel. To account for this I can´t force load the stock kernel-modules for certain drivers as it happens on kernels that are closer to stock.
Instead we use Magisks function to overlay certain files during boot. Without a working Magisk environment the kernel cannot function.

Question: I have a phone that is converted from CN to WW and now there´s a warning from hardwarestub. Can I hide it?
Answer: Yes, I created a Magisk Module for those that want to hide the notification, so nobody needs to rely on paid apps.
The Magisk module can be found attached to this post.
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.

Question: How to report bugs properly?
Answer: Have a look at post #3 in the linked thread. The linked guide is a pretty good starting point.
Before reporting any bug make sure you´re running on a stock configuration. That´s means you´re not using any mods, tweaks in kernel managers or other root tweaks , magisk modules, scripts or other modifications that alter various functions like sound mods, data traffic, sleeping behaviour, scheduler, magical battery tweaks etc.
Try to describe the issue as detailed as possible! Give your exact setup, like rom, magisk version, kernel version.
Is the issue reproducible? Does it happen frequently?
Provide logs, otherwise debugging is a lot harder. If you can already reproduce the issue and provide logs it greatly limits the amount of time I have to spent until I figure out how to reproduce it.

If the device force reboots/randomly reboots (that means you see the bootloader unlocked screen!) provide a .zip with the contents of sys/fs/pstore.

If the issue happens while the device is running provide a dmesg plus a logcat that you take while/shortly after the issue happens. This will log what´s running in the current session. Try to be as detailed as possible what´s happening when the issue appears. It will also help me in reading the log!
 
Last edited:

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,099
21,061
CleanSlate Features and how to use them

CleanSlate Features and how to use them


This kernels offers its users the possibility to use CleanSlate features. CleanSlate-Kernel is developed by @tbalden.
CleanSlate kernel follows a different approach than Kirisakura-Kernel.
We know each other well over the years now and often have worked together.
For more information about CleanSlate visit @tbaldens CleanSlate thread on the Rog 3 Forums linked here.

The CleanSlate features add a lot of flexibility to a device. That´s why I like to include the features in my kernel.
Notifications Reminder, Flashlight Notifications, Turn Phone to sleep and a very advanced sweep to sleep interface that works well with Android 10 Gestures.
We decided to transform Brightness Dimmer and FPS-Override into CleanSlate accessible features as well.
That allows users to easily control these features with the CleanSlate apps.

CleanSlate features are easily accessible via the CleanSlate Configuration app. The Cleanslate Companion app provides a userspace backend for the kernel and is required for some features.
Make sure to install both of these apps, when flashing my kernel and you want to utilize these features.
The apps ask for some permissions. Enable them and do a full reboot to make sure everything is playing nicely :)

that´s how the companion app will look after enabling it.
https://photos.app.goo.gl/x6sFJc5cUFT9Q7U47
It´s needed for userspace related features, like double tap swipe area for notification pull down.


Every section of the Configuration App has different settings. Basic, Advanced and Preset. You can click on these buttons to change between them.
Advanced will offer you more customization if available.
See the screenshots here:
https://photos.app.goo.gl/avPsiHHrzPwpMqMC8

To change settings, change them according to your liking and hit the "Save" Button. It is the second from the bottom right and will be greyed out if your settings are currently applied.

As you can see in the following screenshot:
https://photos.app.goo.gl/qaFKfLbfwUuyHW717
Brightness Dimmer is enabled, FPS override is set to 144FPS on low brightness. Power button is blocked in pocket and screen gets disabled when putting the phone face down on a desk.


You should be able to find both apps for free on the CleanSlate thread. However if you benefit from the features, think about getting the premium apps on the playstore to give a little bit back to @tbalden.

I hope this post might help some :)
 
Last edited:

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,099
21,061
just a small heads up before anybody complains. :D
We, @tbalden and me, just noticed a bug went unnoticed during our previous testing.

If you flashed this kernel or CleanSlate-Kernel, have the CleanSlate config app installed and Backlight dimmer enabled in the CleanSlate Config app. Make sure to keep the screen on for 3-4 minutes after rebooting your phone and the boot process finished.
Otherwise your screen will stay black. Display-Panel driver doesn´t seem to like our mod at the moment.
After keeping the screen on for 3-4 minutes the bug will not be triggered and you can use the phone as you wish.

Sorry for the inconvenience ;)
The issue will soon be resolved in a new update :)
 

tbalden

Recognized Developer
just a small heads up before anybody complains. :D
We, @tbalden and me, just noticed a bug went unnoticed during our previous testing.

If you flashed this kernel or CleanSlate-Kernel, have the CleanSlate config app installed and Backlight dimmer enabled in the CleanSlate Config app. Make sure to keep the screen on for 3-4 minutes after rebooting your phone and the boot process finished.
Otherwise your screen will stay black. Display-Panel driver doesn´t seem to like our mod at the moment.
After keeping the screen on for 3-4 minutes the bug will not be triggered and you can use the phone as you wish.

Sorry for the inconvenience ;)
The issue will soon be resolved in a new update :)
Also just start the app manually on reboot, as a workaround.
 

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,099
21,061
Coming here from your OG Pixel kernel. Is this kernel for 2007.47 or 2007.32?

Nice to see you made the jump! Must be a hell of an upgrade on your side!
the .47 sources are merged. I´m using it on .47 at the moment.
I guess you can just give it a try and check if it boots/works on .32. :) If you decide to do so, it would be nice if you could report back here. It might help others :)
Make sure to have a PC with working fastboot environment nearby and a boot.img handy.
In case it doesn´t work, just force the phone to power down by holding power button plus volume down, once it powers off, keep holding power and volume up to boot to bootloader.
Connect to side port and flash your backup boot.img via fastboot. Always make sure to flash the matching boot.img for your firmware. :)
 
  • Like
Reactions: MrxSiN

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,099
21,061
Hey guys and girls,

Here´s the fix that solves the black screen issue, that occurred when the screen was off while Brightness Dimmer got activated via CleanSlate Config App on boot.
It wasn´t detected immediately, because usually the screen of my device is on when I boot the phone as to check the logs and ensure everything is working :)

Now everything is working, so just flash the kernel and enjoy ;) I´ll do a post soon, explaining the features a bit more for people unfamiliar with how the CleanSlate features work.


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:

- Fix Screen not being able to wake up on a certain condition.

I wish you all a nice day/evening!


Download is below :)

Download:

Disclaimer/Important:

Kernel: https://www.androidfilehost.com/?fid=8889791610682925903
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, like force FPS on Low Brightness or Brightness Dimmer you need to download both CleanSlate Apps:
Please take a look at the CleanSlate thread for CleanSlate features. I will provide the link to the free to download apps here.
If you use the CleanSlate features and benefit over time, maybe think about giving something back to @tbalden and purchase them from PlayStore. :)

CleanSlate Configuration App (to control the features):
https://www.androidfilehost.com/?fid=8889791610682925529

CleanSlate Companion App (provides additional information from userspace for CleanSlate Kernel features to work correctly)
https://www.androidfilehost.com/?fid=8889791610682925528


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
 
Last edited:

MrxSiN

Senior Member
Jan 22, 2013
1,192
548
Dungun, MY
I'm using Tencent Version, but already fully converted to Global ROM. Updated from 32 to 47. Already flash your kernel. It's works.
 

MrxSiN

Senior Member
Jan 22, 2013
1,192
548
Dungun, MY
So what's the difference after?

If you mean CN to Global ROM, Global has no China bloatware. If you mean 32 to 47, here the changelog from Asus website.

1.Added “Quick launch camera” option in System Settings->Advanced
2.Added “Navigation blocking” feature for Game Genie which disables system gesture operations to avoid accidental touches in games.
3.Improved multi-touch when three or more fingers simultaneously touch the screen in games.
4.Fixed a problem with insensitive multi-finger touch response when playing PUBG
 

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
6,099
21,061
This is amazing, can't wait for the others to try and read their reviews..

So what's the difference after?

Just to steer this a bit in the right direction. This isn´t directed towards anybody in particular it´s just a general reminder what this thread is about.

There is no need to review the kernel. The kernel offers exactly what is described in the first post of this thread.
My advice is to read the description in the OP. All changes are explained in great detail there. Look around XDA, most OPs are kept way shorter with less explanations.
If you´re not into technical details, use google when descriptions or terms are unclear to you.
This is primarily a development focused thread. That´s why it is in the development section.
If there are issues when using the kernel or its features, provide logs and I will be glad to help you. If there are questions or things unclear, ask and I will try to answer. But I expect people to put in a bit of effort.


If you expect a review like, flashing this kernel causes my phone to use more or less battery as the stock kernel, you may want to re-read the OP on what to expect. I generally don´t like to see this in my threads.
Just to give an example that a "review" will never be applicable to each user:
Everybody uses their phone different. So certain changes to the scheduler may benefit user A, while they don´t benefit user B.
There is no need for a review. Just flash the kernel and try for yourself.

It´s very easy and straightforward to flash the kernel. And it´s also easy to return back to the stock kernel. If you don´t like it describe your problem as detailed as possible, as pictured in the FAQ and I will take a look at it or consider it. :)
Usually post like: "this kernel reduces my battery life by xyz" will just be ignored :)
It´s covered in the FAQ how to do all of this.



This is also a general reminder to everyone :) Let´s keep this thread development related and I hope this will turn out to be a good project!
I´m really looking forward to it. This phone is an absolute beast and so far I really enjoy using it.

For people a bit unfamiliar how everything works I plan to soon post a little guide on how to use the CleanSlate features.


Have a nice day everybody. :)
 
Last edited:

tachiquan3

Senior Member
Oct 20, 2013
299
34
Amazing work. Low battery temp while fast charging. Now I can just leave my phone with 30w charger without worry. ♥️♥️♥️
 

ryu091

Senior Member
Oct 14, 2012
187
39
I thought its not working after i flash but suddenly all the features is needed an app CleanState Config/Companion i downloaded it and it works the 144hz in 0 brightness nice2. i will use this kernel as my daily bases.
I turn on the facedown to table to turnoff the screen or vibrate but its not working for me.

Edit: Its working btw there is a 1 sec delay after facedown :) so far so good.
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 14
    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 12 and intended for use on the latest Asus Stock-Firmware
    - compiled with Clang 13.0.1 and built with -O3 speed optimizations
    - Linux-Stable-Upstream included to 4.19.240
    - 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

    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
    10
    Update to 1.0.0_R

    Hey guys and girls,


    I hope everybody had a great week so far. Here it finally is, the update for Android 11.
    The kernel includes all previous features from Android 10.
    Due to the upstream CAF-bases being completely different and incompatible between Android 10 and Android 11 and this kernel being as far from stock kernel as it can get, the kernel needed to be rebased from scratch.
    This was a long and tedious process.

    The kernel is now made for the firmware 18.0410.2106.138. 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.

    Link to full firmware zip: https://dlcdnets.asus.com/pub/ASUS/...S_I003_1-ASUS-18.0410.2106.138-1.1.5-user.zip


    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 for Android 11
    - Include Source for 18.0410.2106.138
    - Include linux-stable upstream to 4.19.200 (stock android 11 is at 4.19.110)
    - include latest CAF-upstream for the A11 base
    - use prebuilt clang 12.0.7 from google for compilation
    - retain all previous features from android 10 (please refer to the OP)

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

    - unlocked Bootloader
    - USB-Debugging in developer options enabled
    - latest adb and fastboot binaries
    - working adb and fastboot environment
    - latest magisk stable root environment
    - a backup of boot.img and dtbo.img to be able to restore to stock.


    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 as well as dtbo.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 meet all the requirements listed above.

    3. Flash the kernel.zip via latest EXKM or FKM app, or TWRP and do a full reboot.

    4. Reboot and profit. Set CleanSlate features as you desire by installing both apps and choose according to your liking.


    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

    Android 11
    1.0.0_R https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-85434269
    1.0.1_R https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-85437987
    1.0.5_R https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-85540573
    1.0.7_R https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-85797081
    1.0.9_R https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-86238185
    1.1.0_R https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-86428163
    1.1.1_R https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-86444523

    Android 12
    2.0.0_S https://forum.xda-developers.com/t/...-rog-phone-3-aka-obiwan.4155505/post-87102871


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