Neutrino Kernel began as an effort to keep the stock LineageOS 15.1 kernel up-to-date with the latest linux-stable releases and has since evolved into an intensive crash course in maintaining my own custom kernel. Although some of you would accuse me of modesty, I think it's important to acknowledge that I am a "kernel developer" in the same way that Amy Schumer is a "comedian". That is to say, my work is highly derivative and built on the backs of individuals who are far more talented than I am. My role here is to have a vision, establish a design philosophy, and use the resources at my disposal to bring that vision to fruition.
Those of you who've perused my staging repo will know that I'm very particular about cleanliness. All changes and additions are vetted based on viability and purpose. Neutrino is based on kernel.lnx.4.4.r35-rel, pure CAF source for Android 9.0 tracking and upstreamed to the latest linux-stable release. I have manually rebased Essential's stock kernel source on top of CAF using relevant OEM commits from PPR1.181005.034. All major features and patchsets are assembled on independent staging branches of this codebase base and merged into the release repository.
I do not commit changes that I cannot justify or explain, and I do not go on indiscriminate cherry-picking sprees. There are a handful of developers that I highly respect, and who's projects have served as inspiration for my own. My intention is to incorporate the best of what they've brought to the table in a way that most effectively achieves and enhances this project's design goals.
I like to think that Neutrino is relatively subdued in terms of "features", with a stronger focus on optimizations over fluff. That being said, there have been quite a few additions which I feel have merit in terms of increased performance and/or efficiency provided the former does not compromise the later:
Broader subsystem support for Power Efficient Workqueues
KCAL Color Control
Backlight Dimmer
Fsync Toggle (enabled by default)
GPU Underclock @ 180 MHz
CPU (partial) Overclock, Silver Cores @ 2035 MHz
Boeffla Wakelock Blocker v1.1.0
Wireguard Support
VDSO Support
Treewide memory allocation/overflow patches from mainline
OOM Reaper and various memory management enhancements to improve LMK
Treewide compiler warnings corrected
Built with self-compiled Clang 8.0.3 and GCC 8.2.0 toolchains, with a local initialization sanitizer and polly optimization flags
INSTALLATION: **Neutrino now utilizes AnyKernel2 zip format for universal compatibility**
As a result, you can now flash this kernel on just about anything including Oreo/Pie custom and stock ROMs. The only requirement is that your firmware is current and up-to-date with PPR1.180905.036 at a minimum. Flashing on older firmware will result in broken input detection and a non-functional touchscreen.
That being said, this is an EAS kernel and is best suited for use on EAS-compatible ROMs. Just because it can be flashed on stock does not mean that you should do so. Installation on ROMs which do not natively support EAS (such as stock) will likely result in sub-optimal battery performance and I will not entertain any complaints stemming from the use of Neutrino on ROMs which are incompatible with EAS. Stock support is a perk and an experiment on my part, please do not make me regret giving you the ability to flash on stock, I will drop public support for it if this disclaimer is routinely ignored. If you choose not to heed my recommendations, you are doing so at your own discretion.
For ease of use, I would recommend using an app with built-in zip flashing functionality such as EX Kernel Manager or FK Kernel Manager. Of course, I cannot expect all of you to utilize a paid app for installation and as such, conventional installation via TWRP is certainly possible as well.
Neutrino will preserve existing Magisk installation during kernel update, meaning if you already have Magisk installed on your device you need not worry about reflashing Magisk when updating your kernel. If you do not already have Magisk installed and desire root access then Magisk zip must be flashed following kernel zip via TWRP.
DOWNLOADS:
Current releases can be downloaded here.
Archival builds (boot images) for lineage-15.1 can be found here.
For the sake of courtesy to anyone who still cares, I will be requesting the closure of this thread. This does not mean I am effectively throwing in the towel on this project, it's just indicative of the fact that I have run up against a wall which I am currently unable to overcome on my own accord. It seems I am currently the only person on the entirety of the internet trying to implement EAS on the new CAF Pie tags, and my individual attempts have had embarrassing results to say the least. I have no desire to maintain an HMP based kernel as there is very little that I'd be able to offer on that end that you wouldn't be able to find elsewhere, by someone more talented than I am. With that being said, until I get smarter, or find a like minded collaborator I see no reason to keep this thread open for the time being and passively stoke expectations for a future release that is unlikely to materialize in any sort of timely manner.
So, I pretty much spent all day getting back to the point I was at yesterday but such is life. On a positive note I've rebased OEM source on kernel.lnx.4.4.r34-rel (our new CAF branch for 9.0), and upstreamed to 4.4.152. It was a slog considering there was no android-linux-stable repo to work off of this time, but it was good exercise to go through the process myself and I'm extremely pleased with how clean the result turned out to be. Really looking forward to seeing how this progresses, apologies in advance for the delay that ensues, but I promise I'm working as quick as I possibly can (just ask the last 8 hours of my life). If you're at all interested, you can follow the progress here.
With all do respect guys, I requested this thread be reopened in preparation for new releases. I was hoping that it would silently remain unbumped until I was ready to update it but it seems that ship has sailed.
Yes, there is a new build and I will be continuing work on this project. Some of you may very well already be running it, but there are a few things I need to take care of before it hits XDA officially and more importantly there is some pertinent information that I need to make clear in the OP in an attempt to mitigate future headaches. I will attempt to summarize some of these points for the times being..
- New builds will be in AnyKernel zip format
- They will run on anything including stock and oreo/pie custom ROMs provided that your firmware is up to date with PPR1.180905.036 (September) or newer.
- Just because it runs on stock does not mean that you should flash it. This is an EAS kernel and is best suited for use with EAS compatible ROMs, I will not entertain complaints stemming from the use of Neutrino on stock or any other ROM that does not natively support EAS.
- If you choose to flash Neutrino on stock YMMV and you are doing so at your own discretion. Stock/universal support is a perk and an experiment on my part. Do not make me regret giving you the ability to flash on stock, I will drop public support for it like a hot potato.
That's more or less the gist of it, I'm going to take the next day or two to get a few things in order at which point I will update this thread and officially drop the new release. Thank you for your patience.