Update to 3.0.0
Hey guys and girls,
Alright here´s the next update and it´s a very big one that´s why I decided to bump the kernel version to 3.0.0.
I decided to rebase the kernel ahead of time. The base kernel is now build upon the Android 13 branch, but made to work on A12 by reverting a few changes that depend on too much firmware updates outside the kernel. That will also ease the transition for me once A13 stable is dropped.
Thanks to the way the kernel is build the GKI way, the rest of the device specific drivers could be adjusted to work on A12 as well.
There are quite a few improvements overall on the A13 branch and now we can take advantage of them before A13 drops as stable. Please note this kernel is made to work on
A12 stable June firmware, not A13 beta.
Thanks to
@capntrips and all his hard work on hashtree patcher, there should be no problems flashing the updated kernel.zip on latest magisk canary (which some users may want to use to fix certain apps otherwise detection root) while leaving the verity/verification flags enabled when updating the phone as it´s integrated in the kernel.zip now. A huge thanks to
@capntrips at this point.
I will also stop distributing the files for the manual install as flashing via
@capntrips kernel flasher app, which
can be found here, is open source and free, works perfectly fine for me and that spares me a lot of work for each release.
Now to the actual kernel changes:
The kernel was rebased on the A13 branch for the Pixel 6 Pro but made to work on A12, which brings a lot of improvements all around.
There´s a PMU limiting feature introduced in the A13 kernel. It was imported in the previous 2.4.0 release too and configured to try to reduce heat, reduce the usage of high cpu freqs when it isn´t needed. The explanation can be found in the
release post of 2.4.0.
I went ahead and refined the implementation and usage of that feature again.
Short explanation: The PMU limiter can cut back max cpu freq if the PMU (performance monitoring unit) doesn´t cross a certain threshold. If that threshold is crossed the limit is lifted and the phone is allowed to use peak performance.
While the previous approach restricted the cores just to a single limit of 1,4GHZ/1,6GHZ/2,4GHZ (for little/mid/big cores), the new approach restricts to different limits based on interaction and scenario what´s happening.
That means there are different limits and thresholds for app launches, interaction (tapping the screen, scrolling), display idle (no movement on screen content, nothing interactions with the display, no tapping the screen etc).
If none of the conditions below are met the limits are 1,19GHZ/1,32GHZ/1,42GHZ (for little/mid/big cores) if the performance threshold is not crossed.
During app launches we keep the limit of 1,4GHZ/1,6GHZ/2,4GHZ (for little/mid/big cores) if the performance threshold is not crossed. (that´s useful to not boost too much if an app is already in memory)
During scrolling limits of 1,4GHZ/1,6GHZ/1,8GHZ (for little/mid/big cores) will be set. The reason for that I will explain later.
During idle screen limits of 1,19GHZ/1,0GHZ/1,1GHZ (for little/mid/big cores) will be set if the threshold is not crossed.
If the device really needs max perf, the limits will be crossed and it will also perform to its max. The performance impact by the PMU limiter is minimal to negligible/non-existent.
Uclamp value of top-app tasks, rt-tasks and sf-tasks are raised during interaction. This improves scrolling performance as it biases tasks to start on a mid or big CPU rather than a small one. By restricting the maxfreq of mid and big cores via the PMU limiter during scrolling/interaction we do not generate additional heat by doing that. The threshold was specifically tuned by doing a lot of tracing to achieve not crossing the PMU limit during scrolling. For example gmail scrolls a lot smoother now. Some apps like twitter just need to fix scrolling on their own end.
BFQ improvements from linux-main were backported.
Scheduler updates for pelt, load, tasks placement were backported from linux-main.
LRNG was bumped to V45.
An improved energy model for thermal control is used.
And a huge bunch of additional changes.
If you´re one of the unfortunate ones that suffer from the device is corrupt bug on pixel 6 series please take a look at the FAQ at the beginning of this thread it contains a solution. The issue is probably caused by a bug that affects pixel 6 devices and has nothing to do with magisk or a kernel, it just happens to get triggered when using any of those.
Changelog:
- Rebase kernel on A13 branch and make it work on A12
- preserve all previous features and improvments
- Linux-stable merged to 5.10.120
- Use prebuilt Google Clang 14.0.7 for compilation
- Scheduler improvements from latest linux kernel
- BFQ improvements from latestlinux kernel
- LRNG bumped to V45
- use improved energy model for exynos cpu cooling/thermal control
- MGLRU changes and updates
- affine IRQS to CPU 7 during camera usage for improved performance as it tends to overload the little cores
- allow GPU to scale down to 150mhz, but boost to higher value in case of interaction via powerhal
- safetynet issues some users were experiencing while running 2.4.0 official release, but fixed later via the release
here are solved and gone (if your app does not work due to root on stock kernel, the same will be the case here)
- updated anykernel3.zip (thanks to
@osm0sis) -> allow flashing using latest canary with enabled vbmeta flags ( huge thanks to
@capntrips )
- loads of other changes, please check github
Download:
Download GApps, Roms, Kernels, Themes, Firmware, and more. Free file hosting for all Android developers.
www.androidfilehost.com
Instructions can be found in the OP! Please follow the instructions to avoid any issues and read this post carefully. Don´t use magisk canary 24303 or more recent to avoid potential issues!
If you´re coming from another kernel restore stock boot.img, dtbo.img, vendor_boot.img and vendor_dlkm.img before flashing. Thank you.
I wish everybody a great day/evening!
Have fun, enjoy the kernel and your phone.
If you like my work please consider a donation.
Donations are not mandatory but very welcome.
If you like my work and want to buy me a coffee/green tea:
http://paypal.me/freak07