@milouk any chance to see this updated to Android 10?
It's the only bullhead kernel with voltage control, and this is very useful since the device tends to overheat? Just to know, thank you anyway
I decided to share my personal custom kernel with all of you. The main reason i started developing this kernel is to balance performance / battery / security and also add features.
I believe i have included most of the usually requested features. If your feature is not included you can ask for it and i will try to include it as long as you don't ask for ETA's. I am a student and i do this on my spare time.
This kernel is based on LineageOS 16.0 sources for bullhead and has been upstreamed to version 3.10.108.
Moreover, it is compiled with GNU GCC Toolchain which is based on latest gnu.org changes and patched with AOSP and Linaro Android patches for optimal performance/battery.
So let's jump to the interesting part!
Sphinx Kernel Features
Upstream Linux version from 3.10.73 to 3.10.108
Compiled with GNU GCC Toolchain 8.2.1
Built with -O2 optimizations
Makefile Optimizations
Always Latest Security Patch (December)
Some CVE Patches
Overclock to 2150 MHz for the Big and 1747 MHz for the Little
Special Thanks
@razorloves, @nathanchance, @mr.ace, @flar2
Notes
I bear absolutely no responsibility. If you brick your device. If you are not sure what a kernel is, how to flash it or how to restore your phone in case something goes wrong then do NOT proceed.
Morever, you should flash this kernel only over the stock kernel that came with your Rom.
I have dedicated countless hours developing this kernel so if you like my work consider buying me a coffee to help me stay awake an keep improving Sphinx.
New Version is up! Sorry for the delay i had so many things to do the past weeks, i barely had enough time to sleep.
Changelog :
-Merged September Security Patch
-Updated Wireguard
-Updated Toolchain to 8.0.1
-Added TTL Target Control for more info check here https://www.linuxtopia.org/Linux_Firewall_iptables/x4799.html
-Enabled Mangle
-Enabled Netfilter Advanced
Ok, guys I have arrived home and it's time for version 2.9.
Note : In version 2.9 i decided to invest in the compiling procedure too instead of just adding features. I think that the compilation procedure is very critical in terms of performance and battery and thus should not be neglected. For this reason the changelog below includes many building/compiling changes that have vastly improved performance and battery life
Changelog :
-Added Wake Up Boost Driver
-Default Thermal Threshold is now 43 - it is the golden spot (you can always change it)
-Prioritize Fingerprint unlock when screen is off
-Display Optimizations for better battery
-Workqueue Improvements
-Merged a "hack" that can improve internet speed
-Fixed the bug that didn't let UnderVolting the highest frequency of the A57
-Update WireGuard Backend Module to version 0.0.20180625
-sdFAT Support for vFAT and exFAT filesystems
-Added Relaxed Governor
-Adapted Chill Governor to Little.Big Architecture
-Overclocked SLIMbus - This will provide the best possible audio our hardware can support. For more info on SLIMbus click here https://en.wikipedia.org/wiki/SLIMbus
-Now Compiling with UBER Toolchain 8.0.0 - This is the first kernel for bullhead to be compiled with the latest and greatest version of GCC
-Makefile Optimizations for better performance and battery life.
-New Hima Hotplug Script Attached
I finally gathered some money and moved on to a Mi 8.
Sphinx was my first android project and i would like to thank all of you for the support i got. It was a quick but amazing journey. I hope i see you around.
Im going to continue and maintain Sphinx security- wise but i won't be adding any more features.
[msm_thermal Tunable options]
= poll_ms - msm_thermal will check the device's temperature every this milli seconds.
= temp_threshold - Limit the frequency of LITTLE when the temp is reached to this value.
= temp_big_threshold - Limit the frequency of big when the temp is reached to this value.
= temp_big_off_threshold - Turn off the big cores when the temp is reached to this value.
= temp_step_little - If 'temp_step_little = 4' and 'temp_threshold = 60', frequency will decrease like below.
└─temp = 60 --> LITTLE's max frequency will decrease one step.
└─temp = 62 --> LITTLE's max frequency will decrease one step.
└─temp = 63 --> LITTLE's max frequency will decrease one step.
└─temp = 64 --> LITTLE's max frequency will decrease two steps.
└─temp = 65 --> LITTLE's max frequency will decrease two steps.
└─temp = 68 --> LITTLE's max frequency will decrease three steps.
= temp_step_big - If 'temp_step_big = 2' and 'temp_threshold = 60', frequency will decrease like below.
└─temp = 60 --> big's max frequency will decrease one step.
└─temp = 61 --> big's max frequency will decrease one step.
└─temp = 62 --> big's max frequency will decrease two steps.
└─temp = 63 --> big's max frequency will decrease two steps.
└─temp = 64 --> big's max frequency will decrease three steps.
= freq_step_little - Frequency decrease step for little.
= freq_step_big - Frequency decrease step for big.
= temp_count_max_little - If this value is 3, LITTLE's max frequency will decrease 1 to 3 steps.
= temp_count_max_big - If this value is 5, big's max frequency will decrease 1 to 5 steps.