[Google Pixel 3 XL ROMs, Kernels, Recoveries, & Oth] Freak07:
Hey guys and girls,

Yes I know it took a very long time, but here it finally is. There are some changes now compared to the releases starting with 3.0.0.

A few words to describe why the kernel is now the way it is.

The biggest change is that the kernel has not merged a complete CAF-SDX base update, like what was done in 3.0.0. (detailed description what was done in 3.0.0 here)

I tried several times, started everytime from scratch (this process took the better part of a day or more, every single time I tried!), excluded some changes from the CAF-Base, but I cannot get the kernel to boot. I´m not able to figure out what´s preventing the kernel from booting with CAF merged completely on Q. The same changes boot fine on Pie, but something prevents booting on Q.

I spent so much time on trying to get the kernel to that state again, that releasing it without the complete CAF-Merge is a hard decision, but the decision had to be made.

On a bright side: Google updated the CAF-based camera driver heavily, very similar to what I did before :)

Several other subsystems are now on a way more recent state compared to when Pie was released. That´s very promising to see and great work by Google.

I combed through the CAF source and merged several "individual" changes in the kernel I deemed viable, one by one.

So EAS is now again at the latest CAF state, some memory leaks are fixed and other things work a bit better.

But all in all the Q Base Kernel from Google is already very good.

I tried to keep all the features of the Pie-Release available and built a good kernel for our device nonetheless. Every tester told me so far the device feels improved in at least a way and now I´m content to release the kernel.

I will update the OP to reflect some of the changes and to keep it as recent as possible. The biggest change is the absence of the complete CAF-Merge however. These were mostly under the hood changes, so it might not be obviously visible.

A few things which are still notable:

- lzo-rle is still available as a ZRAM compression algorithm

- additioanlly zstd is available as a ZRAM compression algorithm

- swappiness can be set to a higher value than the default 100

setting swappiness to a higher value than 100... WHY?

swappiness controls the relative amount of swapping memory pages and dropping the cache.

Having swappiness at 100 means memory and cache have same priority.

With swappiness set to 0, memory will never be swapped out in favor of cache, so the kernel will always drop cache first because it will never swap out any memory.

With swappiness set to a higher value than 100, swapping memory has more priority than dropping the cache

Everybody can experience with this. I will leave the 100 by google as default but I went with something between 160 and 190 on my device :)

Different ZRAM algorithms? Which is the best one for me?

This is a difficult question to answer in a very exact fashion. Have a look at this benchmark and the various graphs here: COMPRESSION BENCHMARK

The most simple answer is just use lz4, which is also the default one. Very good compromise of compression ratio and speed.

lzo-rle aims to fit the need of ZRAM better than just a "generic" compression algorithm. (there´s an explanation and link earlier in the thread, linked in a release post, search for it :) )

zstd is a "younger" algorithm, which is very fast, if one does compare the compression ratio (which is way higher than lz0 and lz4) to compression/decompression speed

Thanks to everyone for not constantly pestering me about an update, for the patience and that the thread was quiet quietly :)

Important: What to do if you face issues on Android 10/Q

You might face issues on Android 10 like non working sensors, edge sense not working properly or similar things.

Here´s a thread that has more info about it: https://xdaforums.com/pixel-3-xl/how-to/android-10-sensors-bug-t3964904

This also caused seemingly in a random fashion issues with magisk modules not unpacking properly when you flash them via magisk manager.

So if you have used TWRP in the past and went on to Q, without completely wiping you might very well be affected.

I recommend everybody who faces symptoms of random issues, which they cannot explain, to completely nuke their device and flash a factory image with -w intact, as to complete set up the device from scratch.

This will wipe your whole phone, so backup videos, photos, music, apps and other stuff you don´t want to lose!

[MENTION=4487388]jcmm11[/MENTION] and me were hunting this magisk bug for a week and it turned out it´s connected to the above mentioned issue, although it gets more prominent by the latest CAF - EAS changes, which are merged in my kernel. Probably due to the way tasks get handled a bit differently.

Please everybody keep this in mind, before reporting back.

Just in case:

If you face issues or bugs when running the kernel, please return to a stock environment, only your rom plus magisk root, without any modules, scripts, tweaks or mods and see if you can reproduce the issue.

Tell me the exact steps needed to reproduce.

Then send me a dmesg and a logcat (if the kernel crashes not) or a ramoops (in case the device reboots). Take a look at the second post for a guide on how to obtain these.

Special thanks to, [MENTION=4487388]jcmm11[/MENTION] , [MENTION=4576054]MArtyChubbs[/MENTION], [MENTION=336855]melgar[/MENTION] and [MENTION=6266829]Paddybecks87[/MENTION].

Another special thanks to [MENTION=4544860]osm0sis[/MENTION] for creating and maintaining anykernel for us all. But that´s not enough, hehelped me out big time to setup, refine and improve my AK3 zip, because my scripting skills just suck big time! Huge thanks to you!!!

I wish everybody a nice day/evening! :)

Changelog:

- I´m sorry this time you have to read my massive story again :)

- Rebased the kernel on the offical Q-Kernel Source from Google

- No complete CAF-Merge

- Upstreamed to latest linux-stable

- Keep all previous features intact

- Update EAS again to latest CAF-State!

- merge changes from kernel/common

- add zstd as available zram compression algorithm

- allow swappiness to be set to higher values than 100

Important :)

All flashing errors are now fixed. If you experience the ramdisk error please take a look at the FAQ.

Have fun flashing and enjoy your device with latest linux-stable :)

Why is linux-stable important?

Download is below :)

Download:

https://www.androidfilehost.com/?fid=1899786940962589137

or following the link in the op to the correction version

How to flash the Kernel:

1. Make sure you are rooted and either EXKM or FKM is installed. Download the kernel.zip to your device.

2. Flash kernel zip in EX Kernel Manager or FKM app. Root will be preserved!

3. Reboot and profit! Before reporting any issues make sure to read the Release-Post of Bluecross_Q_Release_1.0.0!

Instructions can be found in the OP too!

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