This is a flash and go kernel, please do not tweak options unless you are an advanced user.
Weeklies: Weeklies are provided automatically via a Jenkins server, and uploaded to GitHub here https://github.com/frap129/angler-weeklies.
To download a weekly, click on the latest weekly zip in the link above, then click "View Raw" to initiate the download.
Weeklies DO NOT replace stable releases. You can find the latest stable release in the downloads section below.
NOTE: Weekly builds are not guaranteed in any way, are untested, and possibly unstable (probably not though). By flashing a weekly, you agree to not receive support so that you can be on the bleeding edge of Electron.
Electron has Spectrum support! Spectrum is a simple and easy to use kernel management app. Though it was initially intended to be a companion app for Electron, Spectrum's innerworkings have been made public so that any developer can add spectrum support to their kernel! Checkout the Spectrum XDA thread or use the link the downloads section below! Spectrum XDA Thread
Chill Governor: A conservative based gov with boosting and sleep-state functions
Relaxed Governor: A chill based gov with more gradual boosting
Electron Governor: An interactive based governor with battery life and performance
Advanced governor tuning using Chill+Relaxed
Maple I/O Scheduler: A scheduler tuned for interactivity
Fingerprint Boost driver
CDG Congestion control algorithm
Backported random driver from 4.1.39
KCAL Color Control
Faux Sound Control
PDesire Audio 10.1
UFS Controller Boosting
Enabled Dcache word access
Enabled CleanCache driver
Optimiced String Routines
Reduced CPU load
Optimized Square Root
Improved Memory I/O functions
Hardlimit Max/Min frequencies
Power Efficient workqueues
Backported Zen Interactive tunings from Zen 4.10
Fully tickless system (No kernel timer interrupt)
Improved ZRAM + ZSwap + ZPool
Improved backlight algorithm
GPU Display state awareness
Custom Linaro based GCC 7.1.1 Toolchain
Heavily tested complie-time optimizations
1. Make sure you aren't running a custom kernel; dirty flash your ROM to revert to stock if necessary.
2. Make sure all kernel tweaking apps/scripts/tools will not apply options on boot.
3. Download the kernel zip
3. Reboot to recovery
Please follow this guide by @The Flash . If reporting a crash/reboot, provide both a dmesg and ramoops. Otherwise, provide a logcat and dmesg. Guide
I would like to thank all of the great people whose support and help that I've received and whose work I've referenced to make this kernel a reality: FranciscoFranco, ak, RenderBroken, flar2, xanaxdroid, nathanchance, R3V3NT3CH, imoseyon, arter97, Faux123, DespairFactor, neobuddy89, show-p1984, and anyone I missed!
XDA:DevDB Information Electron Kernel for Angler, Kernel for the Huawei Nexus 6P
In this post, I will add descriptions of my original kernel features for users and developers to reference.
Chill CPU Governor:
Chill is based on conservative, and has two main deviations: a frequency boost interface and sleep-state power savings. The boost interface uses count based boosting, not timer based. This means that after frequency has increased X (default is 10) times in a row, the governor pushes frequency to max in order to skip checking for the remaining steps and acts on a min/max principle. This often matches the speed of interactive with improvements to battery. The sleep-state power savings entail restricting frequency to min when the screen is off, although a sleep boosting interface may be added to help with loads caused by syncing while asleep.
Maple I/O Scheduler:
Maple is based on the Zen and Simple I/O schedulers. It uses Zens first-come-first-serve style algorithm with separate read/write requests and improved former/latter request handling from SIO. Maple is biased towards handling asynchronous requests before synchronous, and read requests before write. While this can have negative aspects on write intensive tasks like file copying, it slightly improves UI responsiveness. Like chill, maple also has power saving features. When the device is asleep, maple increases the expiry time of requests so that it can handle them more slowly, causing less overhead.
Relaxed CPU Governor:
Relaxed is based on chill, and has been altered in order to achieve more gradual frequency boosting. Relaxed uses a boost ceiling variable in order to achieve this. Rather than boosting straight to the max frequency, relaxed finds the difference between boost_counter and boost_ceiling, then boosts to max minus that difference. For example, if boost_count is 8 and boost_ceiling is 12, when boost_counter reaches 8, the cpu freq will boost to 4 (12-8) levels below max, then increase if needed until boost_counter reaches boost_ceiling. This governor doesn't completely replace chill, but is intended to be used alongside it. Since the lowest frequency on a57 cores uses more power than the highest freq on a53 cores, it is still valuable to use chill on a57 in order to complete a task as quickly as possible.
Electron CPU Governor:
Electron is based on the latest interactive from the MSM8994 CAF branch with upstream improvements from Google, Linaro, and Chromium. The main differences are the inclusion of 2 new tunables, powersave_bias and screen_off_maxfreq. These allow for more granular control of your devices frequency scaling than the standard interactive governor. There are also improvements from FranciscoFranco, Imoseyon, and Neobuddy89.
Fingerprint Boost driver:
FP Boost is a custom boosting driver based on cpu-boost by Sultanxda. When input is received from the fingerprint sensor, all available cores are boosted to max frequency for 3 seconds in order to reduce the fingerprint scanner delay and wakeup lag.
Just popping in to this thread to say that I will no longer be updating this. Between college, work, and also trying to manage a social life (hah, funny joke right?), I've made the decision to only maintain my daily driver device. As of now, that's the Pixel 2 XL. I will still be maintaining CarbonROM on all of my devices, but Electron will be limited to my DD. It's been a good run, thanks for all the support, and I hope to see some of you try out my Pixel 2 XL kernel!
Some updates on the state of Electron: EAS: I've been running EAS for a week and I've noticed slightly worse battery with about the same performance. Thanks to @RenderBroken, I may be able to create a more accurate energy model for angler which should improve this.
App: I've only put in ~1.5 hours of work but it should be ready for testing (UI needs a bit of work, but functionality is mostly done). Turns out the app will require root after all (although I can make a rootless version that will need to be flashed via twrp). I plan on having a free version and a donation version (only $0.99).
Choose from Balance, Performance, Battery, and Gaming profiles