[KERNEL][AOSP][AnyKernel][LOS-15.1+EAS] Gamma Kernel for [All Lineage Variants] - LG V20 ROMs, Kernels, Recoveries, & Other Developm

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
DESCRIPTION
Hey guys, I have started a custom Kernel based on LineageOS sources with 98% CAF. So I would like to share my own performance and usability improvements with minimal feature and enhancements on top. The intention is to have a minimal light-weight kernel that is very fine tuned for the device.
FEATURES
Minimal Kernel with a stripped defconfig base to be more streamlined and have less memory footprint
User space display color calibration (KCAL) with screen calibrated against iPhone 8 Plus, also helps reducing screen retention
Schedutil governor making use of EAS features with updates from Linux 4.4 and 4.12
Up to date with LineageOS sources for maximum compatibility and security bugfixes
Memory and cache subsystem optimizations, you will feel it
Adaptive LMK enabled by default
Transparent Hugepages are enabled
ZRAM/Swap partition is disabled by default
BFQ IO scheduler set by default to avoid slow-downs on task intensive scenarios
No overclocking was chosen to avoid unnecessary heat, optimizations were focused on other different areas
Kernel Samepage Sharing enabled with deferred timer by default to gain some memory usage optimizations, the process sleeps on regular basis and I've profiled it so that there's no battery drains due to it
Simple temperature controls for msm_thermals exposed
Compiled with GCC 6.x optimized toolchain and -O3 plus other hardware specific flags
Undervolted the Adreno 530 GPU voltage rail to keep things cooler
CAF Rebase on major portions of the Kernel has helped lower the memory footprint a lot
ES9218 Quad DAC automatic toggling working inside the kernel for headphone HIFI playback, please read here for details
DOWNLOADS
AnyKernel: Click Here (Or check top of the post, download tab)
Extended Screen AnyKernel : Click Here (Maintained by @iDefalt)
(Recommended) Stock Tasha XML Audio Mixer FIles : Click Here
(Recommended) Stock Thermal Engine with Tweaked Values Flashable : Click Here
(Recommended) Vulkan Adreno GPU Drivers with correct SELinux labels and permissions : Click Here
SOURCE
V20-Kernel-Gamma GitHub Source
NOTES
Here is a GeekbenchV4 result example : http://browser.geekbench.com/v4/cpu/10667886
KNOWN BUGS
Changing CPU governors will greatly impact EAS and give erratic behaivour -- please check here, here and here. This is an EAS only Kernel.
I would also like to thanks to various people who contribute tremendously such as:
@x86cpu
@EvilHowl
@USA-RedDragon
@savoca
@albinoman887
@emdroidle
@Rashed97
@joshuous
@RenderBroken
and many others!
<< If you like my work here is my hat, please donate! >>​
​
XDA:DevDB Information
Gamma Kernel, Kernel for the LG V20
Contributors
Omar-Avelar
Source Code: https://github.com/oxavelar/V20-Kernel-Gamma
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: 105.0.0
Stable Release Date: 2019-09-21
Created 2018-05-09
Last Updated 2019-09-21

CHANGELOG
105.0.0 - Increased responsiveness by adjusting input boost and stune values. Updated the thermal mod values again, revert LA.UM.6.5.r1-11700-8x96.0 to fix green tint crashes and updated to AnyKernel3.
103.0.0 - Merging LA.UM.6.5.r1-11700-8x96.0.
102.0.0 - Update SDCARDFS driver. And updated the thermal mod values to account for GPU undervolt.
101.0.1 - Re-enabled -O3 optimizations and increased little cores boost.
101.0.0 - Compiled with Linaro GCC 8.3.
99.0.0 - Experimental performance values.
90.0.0 - Adding dynamic_stune_boost_ms as part of input boost schedtune.
88.0.0 - Performance increase while phone is used.
87.0.0 - Dynamic schedtune adjustments.
86.0.0 - BFQ enhancements and fixing the last watchdog timer bites.
85.0.0 - Merging LA.UM.6.5.r1-10900-8x96.0 with stability fixes and no green-screen crashes. Tweaking further the input boost frequencies, and enabling IO wait boost on big.LITTLE cores. More BFQ merges from upstream Kernel.
84.0.0 - Back to the performance levels, after being stable for 24 hours without green screening on tag LA.UM.6.5.r1-09800-8x96.0.
83.0.0 - Revert a merge which I believe be the culprit of the kernel panics. Tag is now based on LA.UM.6.5.r1-09800-8x96.0.
82.0.0 - Synced wireless drivers, as I think this was causing kernel panics.
80.0.0 - Merge LA.UM.6.5.r1-10600-8x96.0, fixing infrared and updating AnyKernel.
78.0.0 - Align memlat with gpubw frequency tables to prevent jerking. Backporting a few of BFQ Linux 5.0 mainline changes and enhancements into Linux 3.14.
77.0.0 - Further tweak schedtune values and dynamic boosting.
76.0.0 - Enable schedtune 3.0 boosting, finer Kernel CPU boosting, and disabling user-space perfd.
74.0.0 - Extracting more performance by tweaking BCL and memory bandwidth scaling again.
73.0.0 - Optimized BFQ a tad bit, and some power saving features on the memory bandwidth scaling ramp values on idle.
72.0.0 - Updated BFQ-v8r12 for 3.14 and some UFS clock scaling tweaks for the IO subsystem.
71.0.0 - iowait_boost_enable save and restore working. Keeping this enabled for MSM8996 EAS as well as keep allow_attach just like Wahoo.
70.0.0 - Add debug.gralloc.gfx_ubwc_disable=0, as well as reverting to default OpenGL renderer due to whatsapp camera glithces and other misc glitches depending on GPU driver.
68.0.0 - Adjusting allocstall_threshold.
67.0.0 - Updated AnyKernel files and fixed a regression caused by down_thres that was there for a lot of builds.
66.0.0 - Enabling Skia OpenGL rendering by default. Also please update the "(Recommended) Stock Thermal Engine with Tweaked Values Flashable" file, updated some timer values to keep the smoothness consistency overall with this Kernel version better with these thermal and timer values.
65.0.0 - Relaxing memlat to see how much battery improvements we get from this.
64.0.0 - Updated the EAS timer values and the memory subsystem. Re-increased the freq mitigation freq back again to 1.3 GHz on big cluster for less jank.
63.0.0 - Carved out the memory map back of some ADSP devices and modem back to what LGE is using, let's see if this fixes the sporadic Kernel panics on H990DS.
62.0.0 - Further tweaked our GPU Adreno drivers setprop values on boot.
60.0.0 - Overhauled the charging code by removing a lot of factory junk and taking some pieces from Alice. Tweaked a tad bit the the memlat governor values again.
59.0.0 - Changes in MTP handling that came from LGE to see if it helps the Kernel panics seen with MTP file transfers. (Tired to see if the panel can be bumped to 90 Hz refresh rate but decided to not include as screen seems to not be responding after trying it for a while...).
58.0.0 - Shaved off 4 MiB from unused msm8996pro-*.dtsi files.
57.0.0 - Better charging mitigation. Updated to CONFIG_LGE_PM_CHARGING_SCENARIO_V18.
56.0.0 - Charging detection logic clean-up based on CAF and less of LGE's.
55.0.0 - Merged the charger controller scenarios code with Oreo.
54.0.0 - MDSS display cleanup and memlat tweaks. Should feel snappier. Merged a few USB Type-C code portions from the Oreo source, hopeful fixed h918 static on boot as well with my experiments.
53.0.0 - Charger logic detection was taking longer sometimes, fixed this. And removed some extra dtsi junk that helped shave 300 KiB of Kernel image size.
52.0.0 - Backported a few things from newer schedutil. And fixed h910 static on boot I had introduced due to my own experiments.
51.0.0 - Converged to only two panel files, "dsi-panel-sw49407-dsc-qhd-cmd.dtsi" and "dsi-panel-sw49407-dsc-qhd-cmd-global.dtsi", experimental. Fixed on mem subsystem tweaks not being honored due to me starting perfd earlier than expected by mistake.
50.0.0 - Converged on single "dsi-panel-sw49407-dsc-qhd-cmd.dtsi" file. Added lge,skip-auto-mute in the audio *.dtsi. Increased the panel qcom,switch-freq-khz to 800 based on latest Oreo sources as well.
49.0.0 - LGE's Panel & MDSS extra clean-up.
47.0.0 - Re-adjusted the thermal and tasha files, updated the lpm cpuidle and memory subsystem parameters.
46.0.0 - Updated memory sybsystem parameters, and re-ajdusted thermal and tasha files.
45.0.0 - LA.UM.6.5.r1-09800-8x96.0 merge and ramdisk module debugging disable fixes.
44.0.0 - More MSM ISP CAF merges that keep LGE compatibility intact.
43.0.0 - firmware_class: make firmware caching disabled by default. Since NETLINK wakelocks are disabled in our Kernel keeping this disabled makes the most sense.
42.0.0 - Re-did the BCL freq mitigation to override Elsa variant for now, reverted the anx7688 firmware and updated the screen calibration further.
40.0.0 - Re-did the BCL voltage and freq mitigation changes to make the phone usable when battery levels drop and prevent any potential kernel panics.
39.0.0 - Re-introduced MSM_PERFORMANCE and tamed a tiny bit the memory scaling subsystem to keep a better active power consumption.
38.0.0 - fs: sdfat: Update to version 2.0.8 and more ARM64 related memory optimizations.
37.0.0 - Display color calibration was re-adjusted using iPhone panel as reference again. It got shifted a little bit after *.dtsi merges months ago and just had noticed.
36.0.0 - Major cleanup in the qpnp-smbcharger.c portion. Playing with BCL removal.
35.0.0 - Keeping ULPS and LP11 both in the *.dtsi files for the Panel and tuned further with micro-benchmarks.
34.0.0 - Changing compiler flags a little bit. Adding explicitly the LP64 ARM ABI, and using UPSTREAM: arm64: lib: improve copy_page to deal with 128 bytes at a time. Reverted the arm64 prefetchers during memcpy, and re-introduced the msm_thermal sysfs entries that I had take out during debug.
33.0.0 - Fixed a MSM ISP Bug when taking photos from certain applications was fixed. It would sometimes crash when taking pictures from Whatsapp with the recent merges I have been trying and the bug went unnoticed by me. Fixed USB not charging under certain USB cables as well as qpnp-smbcharger.c code cleanup.
32.0.0 - MSM ISP Upstream changes that improve msm-camera daemon performance. Also noticed this has improved focusing speed with the camera.
31.0.0 - Performance boosts changes to memory scaling and latency had to be adjusted after using CONFIG_SCHED_AUTOGROUP to take into account.
30.1.0 - Rebased now from LA.UM.6.5.r1-09300-8x96.0 CAF and CONFIG_SCHED_AUTOGROUP is being enabled.
29.0.0 - BCL big freq fixes from ls997 Oreo's source as well merge on USB's ANX7688 code.
28.0.0 - Stopping and restarting perfd when doing cpu tweaks to be safer on the state of EAS when changing things up. Fix for Ok google, returned LGE's VTS.
27.0.0 - Removing sched while keeping schedutil, updating the BCL masks, and removing LGE's VTS. Updating GCC's Linaro 6.4 to the 2018 pre-builts.
24.1.0 - Triggering enable-cpu-tweaks on events enable-low-power, property:sys.perf.profile=1 to see if it fixes gaming performance profile switching.
24.0.0 - mmc: move to a SCHED_FIFO thread, power: make sync on suspend optional.
23.0.0 - Disabling BCL hotplugging for voltage based while still keeping the temperature one. Added a commit to prevent writeback dirtying by multiple threads.
22.0.0 - Added updating of the BCL masks during EAS schedutil changes, one suspect on limiting to 1 GHz. Investigating if low-battery power mode also could impact this in the meantime.
21.0.0 - Updated the Kernel scheduler tunables.
20.0.0 - Remove duplicate commit in IRQ subsystem, and letting LineageOS use the default EAS cpusets and DVR values instead. Setting saturation again after boot-complete.
19.0.0 - Re-introducing CONFIG_LGE_PM_LGE_POWER_CLASS_CHARGER_SLEEP in Oreo as well as minor changes in memory subsystem scaling again.
18.0.0 - Removing backlight levels override on boot -- this was a leftover from Nougat time where cache-build might have happened at boot, so I had used this to lower heat generation but it's not needed. Tweaked a little the memory subsystem scaling timer interrupts now that msm_irqbalance is enabled in recent Oreo builds.
17.0.0 - Letting LOS handle msm_irqbalance now as this was enabled recently on LOS 15.1 July 12th 2018 build.
16.0.0 - Started msm_irqbalance by default on boot, disabled lp11 and enabled allow mdss phy powerdown during idle screen.
15.0.0 - Smoother memlat ramp and tuned the schedTune DVR cpusets a bit for better performance overall.
14.0.0 - Fix for touch not working when the phone boots connected to charger, more deep sleep enhancements and addition to H990 and H990DS to the builds.
13.0.0 - Update to Oreo TouchScreen firmware and more MDSS PLL merge fixes that help deep sleep.
12.0.0 - Missing MDSS Oreo merges are now in place.
11.0.0 - Added IPA_WS as a default in the wakelock blocker, as well as enabling CONFIG_PM_SLEEP which if missing would in turn cause some ueventd wakeups.
10.0.0 - Fixed video recording, disabled CONFIG_RMNET_DATA_DEBUG_PKT. Full fix for USB OTG and added missing slimport drivers. Tweaked the random wakeup values, added some extra cpusets based on Marlin's android-cts-8.0_r8/init.common.rc and fixed some BFQ IO possible hang.
8.2.0 - Removed LGE's battery manager alarms.
8.1.0 - Fixed potential wireless packet loss, reverted the potential video recording fix from previous build.
8.0.0 - Further tweaked the wlan_rx_wake wakelock, added a potential video recording fix identified, migrated the audio and thermal workers to power efficient queues, and added an arm64 prefetching optimization for memcpy (the last 3 changes got into LineageOS as well).
7.0.0 - Better deep sleep enhancements with the charger infrastructure borrowed from the V30 Kernel Oreo sources.
6.0.0 - Full fix for 6a00000.ssusb wakelocks while keeping fast charging enabled.
4.1.0 - Tuned further the wakelocks to avoid any wireless packet loss. As well as adding [timerfd] into the block list.
3.0.0 - Added boeffla_wl_blocker to tame NETLINK wakelock, this wakelock is caused by IPC between the wireless driver in the Kernel and Android. This was the reason why when on wireless the battery would drain more compared than radio.
2.0.0 - Rolled back the OTG fixes so that the phone deep sleeps well, and patched the "6a00000.ssusb" wakelock by reverting a few files. Enabled a few more battery savings from EAS that should help battery.
1.0.0 - Synced the NFC driver with Lineage, OTG fixes by @x86cpu. Adjusted the DAC impedance thresholds per LG's Oreo Kernel, as well as disabling store mode and factory cable detection on newer Oreo LG's PM stack.
0.9.99 - Initial version, with KCAL, GPU Undervolting, EAS schedutil, memory subsystem tweaks, and so far working and booting LineageOS 15.1 with better input frequency values due to lack of perfd. Re-introduced the Virtual Thermal Sensor (VTS) for even better thermal management when using the LG's stock thermal flashable.

Thanks, flashing in the morning! ??

Good job Omar, will flash this and report later

Where's 1.0.0? Also, can we use one of your GPS fixes from the previous kernel topic?

Just flashed yesterday and used it for a day. Performance is good, although not significantly better than the stock LOS kernel and things ran pretty smooth overall.
However battery life was straight up horrible, especially in standby. I went to sleep with 95% battery but even with Naptime enabled (forced doze) I woke up with the battery at 60%. The phone was losing more battery in standby than while I was actually using it. So for now I'm back on the stock LOS kernel but hopefully new builds will fix battery.

Ruckamongus said:
Where's 1.0.0? Also, can we use one of your GPS fixes from the previous kernel topic?
Click to expand...
Click to collapse
The GPS fixes are already in Lineage-15.1 AFAIK, no need!
droidrzr1610 said:
Just flashed yesterday and used it for a day. Performance is good, although not significantly better than the stock LOS kernel and things ran pretty smooth overall.
However battery life was straight up horrible, especially in standby. I went to sleep with 95% battery but even with Naptime enabled (forced doze) I woke up with the battery at 60%. The phone was losing more battery in standby than while I was actually using it. So for now I'm back on the stock LOS kernel but hopefully new builds will fix battery.
Click to expand...
Click to collapse
0.9.9 was decent in this front, 0.9.99 had some bugs as I was testing out (idle power consumption is one). That is why I have not released 1.0.0 as I want to iron everything out for the first release. These are experimental builds and feedback is greatly welcome as I prepare to fix it all!

I'm trying to figure out this dac Volume situation, how do I get the volume to kick in. It still sounds stock to me. I don't have much volume as I used to on a stock rom. Do I have to have the impedance to kick it in or can I bypass it like I used to

lowridincrew said:
I'm trying to figure out this dac Volume situation, how do I get the volume to kick in. It still sounds stock to me. I don't have much volume as I used to on a stock rom. Do I have to have the impedance to kick it in or can I bypass it like I used to
Click to expand...
Click to collapse
Manually editing the mixer file to force high impedance doesn't work on AOSP roms. Only stock. The code is there for it to work automatically, but if your headphones don't have a resistance of higher than 50 ohms, than it won't activate. I haven't seen anyone test with high impedance headphones to actually see if it works though. Code is there, but still unknown if it works. I had no luck getting it to activate.

Just a thanks and a quick recap of my post on the unofficial thread Omar!
Long-time lurker and H918 abuser on the 10p Firmware and modem here.
Just wanted to post on here and give my sincerest thanks to x86cpu, Omar-Avelar and all the devs responsible for breathing new life into my V20!
I haven't been this excited to use it since I first got the dang piece of lazily coded korean garbage back in 2016.
Reminds me of my Note 4 days, man that thing has also had a long ass run.
I've tried so many ROMs, kernels, zips and hacks.
Lost count of how many times I debloated, rebloated, went stock, went AOSP, flashed and unflash magisk.
Good Lord, If I knew performance could EVER have been this good in an AOSP like rom and if it weren't
for the removable battery, I probably should have gone with a Pixel or something.
Definitely feels faster since I replaced the battery before flashing, definitely recommend you guys consider replacing it if you've used it for a year or so and it's starting to die at like 15-30%.
Running it since the 05/12 build, on the 05/16 build now. Currently using the EAS Gamma Kernal as well, not sure if that comes with problems of it's own.
Will test accordingly with the unofficial kernel at some point.
Performance is amazing! This thing zips through all my apps and notifications like a champ.
On the LG UI (Bleh) it used to bog down so fast and get super slow.
Got like 120-ish apps running on the thing, no problem!
What Works
2.4 GHZ Tethering (Tested on iPad)
Bluetooth Tethering (Tested on iPad)
USB File Transfers
ADB Debugging and connected via USB
Ambient Display
Smart Lock
Bluetooth to my Honda Civic
(was weird, had to pair FROM the phone Not the car, works great)
Bluetooth to my Jabra Headset
Google Dialer
Android Messages
Netflix
Hulu
Plex
Chrome
Snapchat
Whatsapp
Facebook
Instagram
Tumblr
Twitter
Telegram
Google Assistant when opened from the home button or app icon
Fingerprint Unlock
Google Pay
Visual Voicemail using T-Mobile
(sometimes fails to connect, rarely)
CStark27's Google Camera
Safety Net and Magisk 16.0, Youtube Vanced
Powers my High Impedance Headphones, Not as loud as Stock LG
IR Remote function, using the "Peel" remote app off the play store
"Cast"ing to my Xbox One and other "Cast"able devices
What Doesn't
Speakerphone, and the Mic in general. Not as "Clear" as Stock.
Callers say I keep breaking up?
Wifi Calling wasn't that great a feature anyway but, I feel like the dialer or calling services on Stock were more normal sounding-ish?
Maybe I'll try that Magisk Low Mic Fix module some time...
Bluetooth clarity is pretty good for the most part.
5GHZ Wifi Tethering
Voice activating Google Assistant using "OK Google"
General Battery Drain concerns, still prefer LOS to stock.
Probably forgot some other stuff but super happy with all the improvements and hard work by the XDA community.
(Protip, update the ROM, optional kernel, GAPPs same options as before, AND then magisk. Had to redo it all when I killed Google Play by just flashing the ROM and Kernel, boy what a mistake that was! note: Using Google Dialer and some more google apps than nano.)
GAPPS Aroma 5/12 with the following options.
GoogleAssistant
BatteryUsage
CalculatorGoogle
CarrierServices
Chrome
ClockGoogle
CloudPrint
ContactsGoogle
DialerFramework
DialerGoogle
DMAgent
Docs
Drive
Duo
ExchangeGoogle
FaceDetect
FaceUnlock
Fitness
GCS
GooglePay
GoogleTTS
KeyboardGoogle
Maps
Messenger
Movies
PackageInstallerGoogle
PixelIcons
PixelLauncher
PlayGames
PrintServiceGoogle
ProjectFi
Sheets
Slides
Search
Speech
StorageManagerGoogle
Street
TagGoogle
Talkback
Translate
VRService
Wallpapers
WebViewGoogle
ClockStock
Email
KeyboardStock
Launcher
MMS
+Browser
+Gallery
+MMS
# End User's gapps-config

New version called "v0.9.9rc.zip" is up. Seeing how battery life goes for this one and performance. It is still missing partial panel update and USB OTG, haven't had too much spare time lately...

toastyp said:
Manually editing the mixer file to force high impedance doesn't work on AOSP roms. Only stock. The code is there for it to work automatically, but if your headphones don't have a resistance of higher than 50 ohms, than it won't activate. I haven't seen anyone test with high impedance headphones to actually see if it works though. Code is there, but still unknown if it works. I had no luck getting it to activate.
Click to expand...
Click to collapse
I think it is easily doable to fake the impedance with a sysfs argument to force high-Z mode. It is in my to-do things , unless someone beats me first... but I am also a little concerned that it could damage some headphones if too much current goes into them... mmmm

Which app is recommended to manage kernel settings?

Omar-Avelar said:
I think it is easily doable to fake the impedance with a sysfs argument to force high-Z mode. It is in my to-do things , unless someone beats me first... but I am also a little concerned that it could damage some headphones if too much current goes into them... mmmm
Click to expand...
Click to collapse
with my less than 50ohm headphones I can't get sound out of the dac when forcing the dac into into hi-fi (low) mode (by changing the. c file)
and when not forcing it just stays in bypass mode when checking via terminal with either it
tinymix | grep Es9
dmesg -w | grep -iC 0 es9
it appears some stuff from lge's sound stuff is missing in the kernel and I've been stuck at the no sound part for a while and once I fixed that I thought of using sysfs too
I'll update with what stock does and what lineage does, with and without my modifications, later my notes on this are scattered everywhere.... (also I'm not that experienced with programming so it's possible I did something wrong :silly: )

Dr_DjEnder said:
with my less than 50ohm headphones I can't get sound out of the dac when forcing the dac into into hi-fi (low) mode (by changing the. c file)
and when not forcing it just stays in bypass mode when checking via terminal with either it
tinymix | grep Es9
dmesg -w | grep -iC 0 es9
it appears some stuff from lge's sound stuff is missing in the kernel and I've been stuck at the no sound part for a while and once I fixed that I thought of using sysfs too
I'll update with what stock does and what lineage does, with and without my modifications, later my notes on this are scattered everywhere.... (also I'm not that experienced with programming so it's possible I did something wrong :silly: )
Click to expand...
Click to collapse
I'm interested in anything that might be missing for the Lineage kernel too, as I thought i got it all. Thanks.

Anyone here using VS995 after dirty santa exploit? When I run the AnyKernel installer with the vs995 version of the kernel, it says my device is not supported since after the exploit it shows up as a US996. When I try using the US996 version, bad things happen. I'm able to boot, but there's a lot of screen glitching once I'm at my home screen.

@x86cpu
I should have clarified the stuff I think is missing is for the DAC as they are called when the DAC is active and when the user skips tracks but regardless the files and changes are in:
and heres my commit of exactly what changed (its a bit messy): https://github.com/Devoark/android_kernel_lge_msm8996/commit/200e2d43c89bf98c2bd2c79f1767a60277234803
include/sound/apr_audio-v2.h
sound/soc/msm/qdsp6v2/lge_dsp_sound_effect.h
sound/soc/msm/qdsp6v2/lge_dsp_sound_mabl.h
sound/soc/msm/qdsp6v2/lge_dsp_sound_normalizer.h
sound/soc/msm/qdsp6v2/msm-audio-effects-q6-v2.c
sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c
sound/soc/msm/qdsp6v2/q6asm.c
-----------------------------------------------------------------------------------------------
Right for the other Stuff
On stock lineage without any kernel mods this is the sequence for me with my <50ohm headphones
https://pastebin.com/JH8cS9Yc
Modified Lineage Kernel For the DAC
https://pastebin.com/uQgyHm3b
And stock LGE ROM DAC behavior :
https://pastebin.com/3XUNNLDq
The main problem with lineage's kernel is that it doesn't assign a headset type (1, 2, 3) for low, high-imp, and aux. Then the amp isnt being turned on, in es9218_startup, which is part of another set of functions that aren't called which is why i think the DAC isn't outputting sound, or at least would get us closer to a working Hi-Fi Mode. So by forcing it on and assigning the Headset a static value it allows the DAC to proceed into Hifi mode in bypass2hifi, and es9218_sabre_wcdon2bypass_put confirms that but now there is no sound output through the headphone jack (well its odd the first track that is played is in the es9218 bypass so there IS sound, but when you skip a track or start another audio stream it THEN puts the DAC in Hi-Fi mode then theres no sound :silly: )
Now the dac calls functions in LGE stock ROM that arent called in Lineage among them are :
Code:
lge_dsp_sound_offload_playback_number_put: current_be_id = 3, lge_effect_be_id = 3
es9218_headset_type_put (headset-type)
es9218_startup (called)
es9218_startup : state = BYPASS : goto HIFI !!
es9218_set_thd(): Headset Type = #
es9218_sabre_amp_start(): Headset Type = #
es9218_startup(): exit
es9218_pcm_hw_params(): entry , bps : 16 , rate : 48000 //////// (bit 16/24) and the sampling rate
es9218_pcm_hw_params(): Rev-B PCM Format Running
es9218_pcm_hw_params(): exit, ret=0
+++++++++++++++++++++++++++++++++++++
lge_dsp_sound_effect_allparam_put: value 1
+++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++
lge_dsp_sound_mabl_devicespeaker_put: value 0
+++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++
lge_dsp_sound_mabl_monoenable_put: value 0
+++++++++++++++++++++++++++++++++++++
Chances are I'm doing something wrong here but its where if gotten with this with the limited time I have anyone who wants to check out the commits they are here:
https://github.com/Devoark/android_kernel_lge_msm8996/commits/lineage-15.1st/sound
Ill continue to work on this when I can but I've mostly run out of ideas of what to do to call the missing functions and some clean up of what I've done I feel is really needed.

Dr_DjEnder said:
@x86cpu
I should have clarified the stuff I think is missing is for the DAC as they are called when the DAC is active and when the user skips tracks but regardless the files and changes are in:
and heres my commit of exactly what changed (its a bit messy): https://github.com/Devoark/android_kernel_lge_msm8996/commit/200e2d43c89bf98c2bd2c79f1767a60277234803
include/sound/apr_audio-v2.h
sound/soc/msm/qdsp6v2/lge_dsp_sound_effect.h
sound/soc/msm/qdsp6v2/lge_dsp_sound_mabl.h
sound/soc/msm/qdsp6v2/lge_dsp_sound_normalizer.h
sound/soc/msm/qdsp6v2/msm-audio-effects-q6-v2.c
sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c
sound/soc/msm/qdsp6v2/q6asm.c
-----------------------------------------------------------------------------------------------
Right for the other Stuff
On stock lineage without any kernel mods this is the sequence for me with my <50ohm headphones
https://pastebin.com/JH8cS9Yc
Modified Lineage Kernel For the DAC
https://pastebin.com/uQgyHm3b
And stock LGE ROM DAC behavior :
https://pastebin.com/3XUNNLDq
The main problem with lineage's kernel is that it doesn't assign a headset type (1, 2, 3) for low, high-imp, and aux. Then the amp isnt being turned on, in es9218_startup, which is part of another set of functions that aren't called which is why i think the DAC isn't outputting sound, or at least would get us closer to a working Hi-Fi Mode. So by forcing it on and assigning the Headset a static value it allows the DAC to proceed into Hifi mode in bypass2hifi, and es9218_sabre_wcdon2bypass_put confirms that but now there is no sound output through the headphone jack (well its odd the first track that is played is in the es9218 bypass so there IS sound, but when you skip a track or start another audio stream it THEN puts the DAC in Hi-Fi mode then theres no sound :silly: )
Now the dac calls functions in LGE stock ROM that arent called in Lineage among them are :
Code:
lge_dsp_sound_offload_playback_number_put: current_be_id = 3, lge_effect_be_id = 3
es9218_headset_type_put (headset-type)
es9218_startup (called)
es9218_startup : state = BYPASS : goto HIFI !!
es9218_set_thd(): Headset Type = #
es9218_sabre_amp_start(): Headset Type = #
es9218_startup(): exit
es9218_pcm_hw_params(): entry , bps : 16 , rate : 48000 //////// (bit 16/24) and the sampling rate
es9218_pcm_hw_params(): Rev-B PCM Format Running
es9218_pcm_hw_params(): exit, ret=0
+++++++++++++++++++++++++++++++++++++
lge_dsp_sound_effect_allparam_put: value 1
+++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++
lge_dsp_sound_mabl_devicespeaker_put: value 0
+++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++
lge_dsp_sound_mabl_monoenable_put: value 0
+++++++++++++++++++++++++++++++++++++
Chances are I'm doing something wrong here but its where if gotten with this with the limited time I have anyone who wants to check out the commits they are here:
https://github.com/Devoark/android_kernel_lge_msm8996/commits/lineage-15.1st/sound
Ill continue to work on this when I can but I've mostly run out of ideas of what to do to call the missing functions and some clean up of what I've done I feel is really needed.
Click to expand...
Click to collapse
Exteremly helpful, I can see where the missing kernel code it. Quite a bit more than you have as well. But it does identify where and the CONFIG_ options missing. Thanks. I'll see what I can do to add to my UNOFFICIALS.
---------- Post added at 15:25 ---------- Previous post was at 15:05 ----------
Dr_DjEnder said:
@x86cpu
Chances are I'm doing something wrong here but its where if gotten with this with the limited time I have anyone who wants to check out the commits they are here:
https://github.com/Devoark/android_kernel_lge_msm8996/commits/lineage-15.1st/sound
Ill continue to work on this when I can but I've mostly run out of ideas of what to do to call the missing functions and some clean up of what I've done I feel is really needed.
Click to expand...
Click to collapse
What device do you have as I can build a test one for that device? (if us996 indicated if you had to use Dirty Santa or not).

I'm using a us996 US Cellular so I used dirty santa

Dr_DjEnder said:
I'm using a us996 US Cellular so I used dirty santa
Click to expand...
Click to collapse
I got the changes in, but need some tweaking to get it built correctly. LGs code sucks for this.

Related

[KERNEL][CM7/MIUI][03/01/12] Glitch V13.1 - OC/UV - Voodoo - Glitchy Speed Fascinate

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
These kernels are provided as-is without warranty. I'm not responsible for any problem you can encounter with your phone or if your cat suddenly dies.
Although, don't expect support even if I will eventually help since I love cats.
Note : These kernels are only compatible with CyanogenMod and MIUI roms !​
Do you want to discuss on this kernel, get the fresh news on development, or become a kernel tester ?
Join the IRC channel from your web browser herehttp://webchat.freenode.net/?channels=glitchkernel ! No registration needed
Make sure the channel is "#glitchkernel" and you're set.
For those who already have an IRC client,
here is the server : irc.freenode.net
port : 6667
Channel : #glitchkernel​
Overview :
- Up to 1.7GHz CPU OC with added bus/GPU OC (Thanks to morfic for the great base of work)
- Undervolting (using third party apps)
- Voodoo Sound & Voodoo Color (Thanks Supercurio & renaudallard)
- FPS uncap (Screen running 68Hz instead of 60Hz, from 56 to 66 FPS max) from JPX source
- Various tweaks for more smoothness and reliability
- LED notifications using Neldar's BLN
CHANGELOGS IN #2 POST​The frequency/voltage & informative UV settings table is as follow for V13 kernel :
Note that these UV settings will be unstable on many devices. It's only informative.
1700 MHz - [email protected] 243 MHz - 1.500v / -> Most phones will fail here. -25 to -50mV may help to stabilize. Much stabler as unique frequency for benchmarks.
1600 MHz - [email protected] 229 MHz - 1.500V / -> That's high and many devices will fail on this frequency. Find working UV for you if any.
1500 MHz - [email protected] 250 MHz - 1.500V / -25mV
1440 MHz - [email protected] 240 MHz - 1.475V / -50mV
1400 MHz - [email protected] 233 MHz - 1.450V / -50mV
1300 MHz - [email protected] 217 MHz - 1.400V / -50mV
1200 MHz - [email protected] 200 MHz - 1.350V / -50mV
1000 MHz - [email protected] 200 MHz - 1.250V / -50mV - If you have stability issues, try to let this one by default.
800 MHz - [email protected] 200 MHz - 1.200V / -75mV
400 MHz - [email protected] 200 MHz - 1.050V / -100mV
200 MHz - [email protected] 200 MHz - 0.950V / -150mV
100 MHz - [email protected] 100 MHz - 0.950V / -200mV - (can be very different between two devices)
GPU frequency is linked to bus speed
More volts is not always equal to more stability. Try to add more UV (less volts) if the frequency you're trying to achieve is unstable.
Considering all phones will respond differently to OC/UV, to tweak the values to suit your device will be required.
By default, no overclock/undervolt is applied. You'll need to use one of the tools below to adjust the frequencies and voltages.
-Pimp My CPU (recommended if you're using MIUI) : http://forum.xda-developers.com/showthread.php?t=1018411
-Voltage Control : http://forum.xda-developers.com/showthread.php?t=829731
-SetCPU : http://forum.xda-developers.com/showthread.php?t=505419​
Downloads
Glitch kernel (CWM flashable only)
Glitch Kernel Updater app now available on the Android market to support us !​i9000 :
- 03/01/2012 - V13.1
Captivate:
- 03/01/2012 - V13.1​
Vibrant:
- 03/01/2012 - V13.1​
Fascinate:
- 03/01/2012 - V13.1​
Telus Fascinate:
- 03/01/2012 - V13.1​
OLDER RELEASES​LIVE OC GUIDE​FAQ, Changelogshttp://forum.xda-developers.com/showpost.php?p=13021804&postcount=2http://forum.xda-developers.com/showpost.php?p=13021804&postcount=2​​
-------------------------
Source :
- Glitch repo : https://github.com/organizations/Glitchkernel
Who is the Glitch team ?
- Kernel developement : ssewk2x & Tk-Glitch.
- Public relations / web hosting : Sixstringsg.
- App developement : Smasher816.
- Beta testers team, with members coming and leaving
Credits :
Codeworkx, Pawitp, Atinm, GuiPerPT, Unhelpful, Coolya, Morfic, Ezekeel, Zacharias.maladroit, Bilboa1, TheEscapist, Netarchy, Supercurio, lippol94, MAMBO04, Galnet, nitr8, Rahulrulez, Chadouming, renaudallard, existz, times_infinity, bearsfan85
Thanks to the donators and everyone bying the Glitch Kernel Updater app from the market, it's much appreciated and encourages us to continue our work !
Thanks to the beta testers team and to everyone helping me to debug and find new useful things to integrate !
Without all of you, this kernel wouldn't be !​
Changelog
Changelogs :
V13 - LATEST
03/01/2012 - V13.1
- Cleanup.
- Fixed buttons freezing randomly.
- Fixed media buttons / headset buttons.
- Lots of GPIO fixes which eliminate phantom keypops.
- Added updated sysfs interface for smartass governor.
- Updated screenstate scaling script to use non-deprecated sysfs
interface for smartass2 and other govs.
- Back to CM7 LED Notifications.
- Lots of changes to cypress touchkey driver to guard against phantom
keypops and speed things up.
- Removed CarrierIQ-related virtual serial device. It probably wasn't
used, but now we know for sure.
- Changes to dpram (modem kernel interface) to make the radio a
little more stable.
- slightly more helpful gamma table error message.
- Moved call audio sysfs files from voodoo sound group to their own.
- Integrated 90call_vol into the kernel zip file so people don't
have to mess with it on their own.
- Now possible to choose any governor as sleep governor in the recovery.
- Vandalized bootlogo a bit.
20/11/2011 - V13
- Upstream synced to the latest at release time
- New CFLAGS again
- mfpu switched from neon to vfpv3
- BLN now working correctly, with LED timeout (thanks to Zacharias.maladroit)
- Back to hard float
- Updated toolchain to 4.5-2011.10
- Modified screen colors to look better (ugly gradient fixed, yellowish tint fixed). Don't use Voodoo Color punchy settings with this though (green screen likely to be back)
- Better reactivity under load
- 348MB RAM available
- Better 720p video recording (less buggy)
- Doubled SDCard read cache - Slight speed-up on SDcard read speed
- USB power drain fix
- Better memory management
- Back to 3.0V for the screen - 2.6V said not to give more battery life because of the added amperage
- Bugfixes
- Added Cgroup timer slack to group tasks by timer slack value
- Switched to Tree preempt RCU and added RCU boost
- New rethemed/recolored recovery menu and bootlogo, thanks to Fate-Silver for the blood
- Fixed "GLITCH" menu in recovery not showing for i9000 and Telus Fascinate
- Better handling of the CPU frequency table, + fixes
- Fascinate related fixes and updates from JT1134
- Added Lazy and SmartassV2 governors
- Fixes for SDCard handling
- All leakage settings are now available from a single kernel. Use the GLITCH menu in recovery (recommended way to switch the values)
- Added support of JT's 3-button recovery hack (credit to JT1134)
​V12
13/07/2011 -> 29/09/2011 - V12 BETA #3
- BackLightNotifications (BLN) port, thanks to Zacharias.maladroit must use the BLN app. If it doesn't work, try Blinky. Still not fully working though.
- Some cleaning and added tiny fixes
- Fascinate : Now using Yamaha compass driver from ED01
- *Temporary* fix for green flashes/colors on low brightness (reborn/still not fixed in V11 - not yet proper though)
- Modified color multiplier to avoid yellowish tint by default
- Enhanced cleaning script when flashing
- Screen undervolt (from 3.0V to 2.6V) // it should help battery life
- Lowering kernel debugger buffer
- More work on leakage values
- Adding some old-school (V9D) CFLAGS resulting in substantial performance and stability gains
- 800MHz random lock fixed - not fully fixed it seems
- Popping keyboard bug fixed
- Make use of NEON accelerated mfpu
- Slightly more aggressive ondemand governor default settings // searching the best balance for efficiency
- Added a few speed enhancements
- In-call receive audio is much louder across the board. You can now hear your significant other yelling at you if you're in a noisy area. Sorry, guys
- In-call mic gain should see some improvement as well. Meaning your wife can now hear you apologizing better
-- caveat: I've heard conflicting reports about this while using bluetooth. I'm investigating that, so stay tuned.
- Overhauled the screen state scaling feature.
-- governor setting now stays put
-- users can now enable/disable the feature and configure it via the custom recovery listed below
- New recovery. Screenstate scaling is controllable via recovery, and it's themed now.
-Audio output and input controllable via script linked in OP
-Call volume tweaks re-written to be more clean/effecient.
-Screenstate bug fixed, doesn't cause lag anymore.
-Upstream synced (this means you must be on the latest nightly for your device for this to work)
-New drivers
​V11
13/07/2011 - V11
- Upstream synced as always (updated recovery...)
- More debug stuff disabled & cleanups/fixes on various things
- Printk disabled to reduce overhead
- Updated to linux kernel 2.6.35.13
- OC implementation fixes and modifications (fixing overvolt in Voltage Control Xtreme as well as some other tiny things)
- Added experimental GPU OC implementation from TheExcapist (for future use / not yet functional)
- 1.7GHz step added - working on some pretty good phones
- Modified touchkey/Led notifications settings from Zacharias.maladroit
- Added SLQB
- Added SIO and BFQ schedulers
- Back to LZO compression for faster boot time
- New voltage settings for more stability
- Trying some new speed tweaks
- Better memory management
- 340MB of RAM available for user without breaking 720p recording
- Preemptible Tiny RCU
- Automated per tty task groups patch
- Added InteractiveX governor
- Two new branches for OC settings adapted to high and low leakage chips
- Toolchain sorcery, thanks to Zacharias.maladroit (RIL is compiled using 4.4.3 toolchain, and everything else is compiled using 4.5.2 toolchain -> more speed and stability)
- Enhanced Voodoo Color settings from renaudallard
- Voodoo Sound V10
- Allow CPU-supported unaligned accesses
- Logcat on/off scripts (built as module)
- Bluetooth HID support
- New, cleaner bootlogo
- Now cleaning old scripts, OC values, cache and dalvik cache on kernel installation - thanks to lippol94
- Green tint on low brightness fixed
- Switched to ondemand governor​V10
27/05/2011 - V10A Do not use with CM7 builds older than 23/05 (as well as the 28/05 or newer build) or MIUI -> you'll get no service !
- Now fully compatible with latest CM7 Nightly builds
- Back to 2010.09 toolchain -> slower & less stable but needed to make a working kernel for latest builds
- Upstream sync (bigger radio partition, headset stuff..)
- Int voltage changes to get some stability back on all overclocked frequencies
- A bit faster 1.5 and 1.6GHz steps - Could make these steps unstable for some, please try and report
- Smartass governor tweaked for faster scaling up, and slower scaling down -> better stability and speed
- OC code bugs and inconsistencies introduced in V7B now fixed (it was here to prevent sleep of death issue, now fixed)
- Some fixes and enhancement for compatibility with Xan's Voltage Control app
- Various tweaks for MOAR SPEED
- Black magic
Known issues :
- The reboot recovery command seems broken for some reason on recent builds. Probably rom related.
- Some users still get freeze issue on boot. If you have this issue, please use the "no-optimization" kernel for you device from this post : http://forum.xda-developers.com/showpost.php?p=14180722&postcount=2077
03/06/2011 - V10B To use with newest builds only (equal or newer than 28/05) !
- Upstream sync (FM radio, new Voodoo Sound implementation, etc...)
- Back to 4.4.3 toolchain - needed for new RIL
- Big cleanup - rewrite from scratch
- Many fixes
- New tweaks for speed on 4.4.3 toolchain
- New tweaks for stability on 4.4.3 toolchain
- Black magic
17/06/2011 - V10C (Updated) To use with newest builds, #28+ for i9000 or equivalent
- Upstream sync (cpuidle, updated drivers (wifi etc.), Recovery 4.0.0.x, etc...) (updated as of today 17/06)
- More debug stuff disabled
- Dock audio support (experimental)
- Added DIDLE (Deep Idle) support (removed, buggy)
- New voltage tweaks for added stability on some devices​V9
16/05/2011 - V9A
- Merged with the now dead V8C update because of new added features
- Upstream sync : Calculate battery percentage as percent of max capacity reported when battery full, new wifi driver, etc.
- New PMEM settings for more available RAM (now 331MB)
- 1.54GHz step added with some gentle settings for now.
- New step by step frequency switch when scaling down (part of the Galaxy S II port from Bilboa1) - more stability on highest frequencies
- Corrections and further tweaking on smartass governor + some fixes from Netarchy (Nexus S). 400MHz lock when screen is on removed (not needed anymore -> more power saving)
- Higher cache for faster SDcard read speed
- New sleep settings : Effective lock to 400MHz max when screen is off -> fix long wake up/hiccups when playing music or similar use. Be careful with your UV settings on 200 and 400MHz steps to avoid sleep of death problems ! These were not used on previous versions of my kernel (locked to 100 MHz when screen off and locked to 400MHz when screen on with a buggy gap in smartass governor forcing generally 600+ MHz)
- 600 MHz step removed (it was generating instabilities on some phones when jumping to 800 or down to 400 when using UV)
- Some voltage tweaks for added stability on some devices (as always)
- Cleanups on unused/no more needed stuff
- Little surprise, thanks to Morfic
- Updated to V9A² to fix SOD and some performance issues
21/05/2011 - V9B
- Upstream sync (CWM recovery 3.1.0.1, better screen colors (kills voodoo color for now and looks awful on my 0516 build, but should be good on latest), GPIO fixes, samsung modemctl...) + small changes on my side for official CyanogenMod repository compatibility
- Voodoo Sound updated to V9 / cleaned voodoo color stuff until it works again
- New cleaner bootlogo based on the one in first post, preferred by most users
- Some additional compilation flags from Netarchy and Zacharias.maladroit (better overall performances + NEON)
- Screen refresh frequency bumped to 72Hz (68Hz effective). It'll uncap FPS to 66 again but seems stabler than before on framerate (the divide/2 behavior happens less)
- Added screenstate scaling script from well.heeled.man as a test (with my kernel's smartass default settings). It should give better sleep power consumption as well as better power efficiency on screen off tasks like music playing etc. by switching to conservative governor.
If you want more information, discuss on this or contribute to enhance it, please come here : http://forum.xda-developers.com/showthread.php?t=1087646
- Adding some stuff from Zacharias.madadroit :
- Higher battery charging temperature
- Scheduler tweaks​
Alternative version now available (V9B-VC) using old AMOLED panel color/gamma settings and with Voodoo Color V2 added back.
24/05/2011 - V9C TO USE WITH CM7 Nightly build #12 OR HIGHER ONLY
(Updated to fix "no service" issue, but still sucks.. unstable on #12 build, very stable on others but no service)
- Upstream sync (PMEM disabled (gives 339MB RAM now), new RIL, headset fixes...)
- Divider changes for MUCH better stability on 1.2GHz at the cost of a slight decrease on performances
- New branch with Voodoo Color display driver and "old" color settings named "VC"
- Fix for Vibrant no service problem - hopefully
- Small changes on smartass governor for better scalability (reverts some old settings not needed anymore with the screenstate script)
- Glitch logo now in update script too for nanu_x2 to be amazed when installing my kernel
24/05/2011 - V9D TO USE WITH CM7 Nightly build #11 OR LOWER (for i9000, or cappy/vibrant equivalent) AND MIUI ONLY
First "D" revision.. Sound like duty. It's basically a fix of a fix done to make the V9C features available for "stable builds" (considering the i9000 #12 isn't)
- Obviously all the V9C changelog
- Using old RIL to be compatible with builds before #12 for I9000 (--> WON'T WORK with #12 for i9000 or equivalent !)
- Replaced 1.54GHz step by 1.6GHz (1.54GHz step was somewhat useless, too close to 1.5Ghz, and slower overall because of the lower bus speed)
- I can't build Vibrant ATM, the CM7 build system is broken on this device or I'm doing something wrong but I wasn't able to fix it. Any help is appreciated. I'm sorry for Vibrant users I'm screwed.​V8
07/05/2011 - V8A - To use with 05062011 or newer CM7 build (useable on MIUI RC8 but you'll lose camera - MIUI needs an update)
- Upstream sync (camera fixes etc.)
- More stability fixes
- Cleanups on OC code (found that 1.2 and 1.3GHz were very unstable compared to earlier releases)
- More work on Vibrant/Captivate. The kernels are now available to download but are untested - for now. Feel free to try and report any problem or if all runs well. If I have enough positive reviews, these kernels will be released in their respective device sections.
11/05/2011 - V8B
Upstream sync only :
- USB switch suspend
- TV out stuff
- Fascinate specifics
- Revert "Got back to previous samsung_modemctl" for 05112011 CM7 build​
V7
02/05/2011 - V7A - To use with 05012011 or newer CM7 build and MIUI RC8+ only
- Resurrect Voodoo Color killed by 2.3.4 merge.
- New step for 1.5GHz on top of 1.44GHz (now 9 steps total versus 8 before)
- Forcing 400MHz max when sleeping for added battery life (default = 800). Couldn't detect any side effect.
- New tweaked Smartass governor now default (800MHz min when screen on). Please report your experience
- It seems the smartass governor is not working by default, it will revert to performance >< Please force it to get it to work -> Ok found the problem, I'll update in a min
- Now updated to V7A-2 to fix the governor bug
03/05/2011 - V7B - To use with 05012011 or newer CM7 build and MIUI RC8+ only
- Resurrect Voodoo Color killed by 2.3.4 merge - Again - fully working now
- Fixed sleep of death issue when unplugged
- Switched to LZO compression for better overall speed and reduced boot time
- Tweaked smartass governor more for - hopefully - better battery life and a bit more responsivity
- New voltage and frequency table rewrite as a bonus with now 11 frequencies total
- Stability fixes on 1.5GHz step -> please test and report
- Reverted FPS uncap - at least for now - for two main reasons : more stability on high GPU freqs (1.4GHz and more), and to prevent FPS limit at max/2 (33 when unlocked to 66), limiting overall performances in heavy scenes. I think there's a lack of buffering somewhere.. It will give higher scores on some benchmarks, and lower on others. A better battery life can indeed be expected too.
- Upstream sync
05/05/2011 - V7C - To use with 05032011 or newer CM7 build and MIUI RC8+ only
- Upstream sync (better battery life, reboot recovery, etc.)
- A general stability fix missing from V7 branch added back
- Tiny tweaks on the voltage table
- Big bugfix on the V7 branch (redone from scratch, cleaner)
- Switched to 2011.03 toolchain
- Added some optimization flags, "-mfloat-abi=hard" being one of them (up to 40% performance gains in specific cases)
- Small improvements here and there​V6
WIP
22/04/2011 - V6pre - preview/work in progress of upcoming V6A update *test* :
- Reverted PMEM settings to new CM7 default (317MB - same as V5A)
- Reverted some stability fixes that weren't that stable on some devices, or even prevented some to boot
- New voltage table for a more linear increase, improving stability at default settings
- Switched to Deadline scheduler by default as it appears more stable
- Back to 2010.09 toolchain for speed and efficiency
- Synchronized with last update from SGS CM7 team
Better to use CM7 04212011 update with this kernel and newer.
22/04/2011 - V6pre - update 1 :
- Battery polling bumped to 15 sec (was 1 before), it should help battery to an extent (thanks to Zach for the idea)
- Some internal voltage tweaking to hopefully be more UV friendly
- Bumped USER_HZ for more smoothness
- Another -rare- bootloop fix
22/04/2011 - V6pre - update 2 :
- Added some tweaks from V5A for testing
- Resolved a bug generating fake voltage reading
- Resolved a bug on 400MHz step generating instabilities
- Slight changes to the voltage table
- Fixed a typo
- Trying some toolchain switch - again-
23/04/2011 - V6pre - update 3 :
- Corrected Led Notifications - Now it should work properly again !
- Various bugfixes and typo corrections
- Toolchain change once again
- Added new Interactive governor with aggressive settings for even more speed. You need to change it by app (pimp my cpu/cyanogen settings), it's still on conservative by default.
(thanks Zach for your suggestion)
25/04/2011 - V6pre - update 4
- Cleanups on Led notifications to resolve a bug (buttons stopped working randomly for some users)
- More typo corrections
- Voodoo Sound V8
- Various bugfixes on CPU load and schedulers
- CONFIG_CC_OPTIMIZE_FOR_SIZE disabled for speed
- Lower latency on GPU states switch for stabler performances
- Added a stability fix for voltage change latency when frequency is changing. It should give more stability with high undervolt or big voltage differences between two steps - Please test and report ! (Thanks Zach for pointing that to me)
- Two versions for testing purposes : V6pre-u4 is compiled using GCC 4.5.1 toolchain, and V6pre-u4(alt) is compiled using GCC 4.4.3 one. If you get instabilities on the first one, try the other and vice versa. Please report your findings on that because it was the first stability differences source between my kernel revisions. For information, V6pre-u2 was compiled with 4.4.3, and u3 with 4.5.1.
27/04/2011 - V6pre - update 5 >> 6
- Name changed from "TkGlitch" to "Glitch"
- Cleanups on buttons (Kangsterizer)
- Lower latency on GPU states switch for stabler performances in 3D and/or at high GPU frequency - corrected, thanks to Kangsterizer
- Added a stability fix when frequency changes for cpufreq governors
- Tweaked Interactive and Conservative governors for testing
- New Frequency table : 1.5GHz is now the max selectable frequency, and 800MHz and 400MHz steps are now replaced by a unique 600MHz one.
- Changed initramfs source to remove the annoying "E:no misc partition" error in the recovery
- Now bumped to update 6 to fix an issue with the conservative governor.
27/04/2011 - V6pre - update 7
- New Frequency table : 1.44GHz removed, 800 and 400MHz steps are back.
- Battery polling bumped from 15 to 30 seconds
- GPU power latency bumped from 10 to 60 ms
28/04/2011 - V6A - To use with 04282011 or newer CM7 build only
- New sensors drivers added
- Normalized 1.5GHz bus speed (GPU will now run @ 250MHz versus 247MHz before. It can affect your stability !)
- Int voltage lowered for 1.5GHz step because it did have a bad effect on lower frequencies stability
- GPU power latency back to default - but fixed (100ms)
29/04/2011 - V6B - To use with 04282011 or newer CM7 build only
- New initramfs source to fix compass and update CWM recovery
- 1.5GHz replaced by 1.48GHz for stability
- New voltage table as requested by many users (+25mv on 1200 to 1400MHz steps)
- New interactive governor for better scaling and battery life
- New tweaked smartass governor for testing (pretty bad on CPU benchmarks for some reason, please test how it feels in real world use)
- New ondemand governor from Zacharias.maladroit sources for testing
02/05/2011 - V6C - To use with 05012011 or newer CM7 build only
- Small update to merge with 2.3.4 source, no new feature.
02/05/2011 - V6C² - To use with 05012011 or newer CM7 build only
- Update to repair Voodoo Sound conflicts from 2.3.4 merge.
- Back to 1.44GHz max to prepare 1.5GHz return​
V5
19/04/2011 - V5A - Initial release
21/04/2011 - V5B :
- GPU overclock on 1.3 GHz added (217MHz / +8.5% from default)
- New PMEM settings for more available RAM compared to V5A (now 328MB)
- Stability fixes for all frequencies, needing globally less volts. Results may vary depending on the device
- Switched to Conservative governor by default (still switchable by app). It can feel less responsive coming from idle but more battery saving, and plays better with high frequencies.
- New voltage table. Default settings should be stabler for most devices.
- Switched to 4.4.3 toolchain for added stability on some sensitive devices
Captivate and Vibrant support will come later. It will need more time than expected.
21/04/2011 - V5C : Small update to fix a bootloop issue on some devices.​
F.A.Q.
Because I got tired of answering these same things 100's of times.
1) Where can I find the latest beta?
They are always in the OP. They are also in my signature, and the root of the FTP.
2) Where is the root of the FTP you ask?
Good question! It’s in the OP as well.
3) How do I install this? / I'm having problems installing
Reboot into recovery
Install zip from SDcard
Choose zip from SDcard
Navigate to the zip you downloaded.
4)What is Leakage (LL,ML,HL) and what one should i use?
Easy explanation: start with HL. If it allows you to OC how much you want,
stay there. If not, move down until you get what you want.
For people who want more: Well, we made different leakages because koflem couldn’t OC, and he felt left out,
so he started compiling on his own, which gave Tk-Glitch the idea to make three different versions.
They have to do with the differences in different phones. Take for example different phones run better
with different OC/UV. The leakages are the same way. They adjust the int voltages, which is something
not configureable (yet) in userspace, so we have to configure them that way when we build. That way both
the voltages that you are used to (the ones controllable via voltage control) are tailored to your device,
as is the int voltages (the ones only we can do). Most people have no idea, but there are dozens of
variables that we play with to make so that all of you can OC and UV as much as possible with as much
stability as possible. Some aren't device specific, some are. We are trying to make the best experience
possible for a wide range in chip quality, therefore we make different leakages, as well as making the kernel
configurable via voltage control. From a stability/performance standpoint, and by extension standpoint,
there is only one leakage right for your device. Different leakages aren't better in some ways for you
and worse in others, there is only one good one for your device. Sorry if that didn't make sense, I tried
to make it as informative as possible without it being overwhelming.
5) Does this work with Gingerbread bootloaders?
Yes
6) What ROM does this kernel work on?
For sure: CM7. Other CM7 based ROM’s may work, but I can’t offer you much support. If it works on CM7,
that’s my goal. This WILL NOT work on Samsung based ROM’s, and I won’t port it. If you still don’t know
what ROM this will work on, then you should read a lot more.
7) How do I enable BLN?
Download either BLN here:
https://market.android.com/details?id=neldar.bln.control.free&feature=search_result
Or Blinky here: https://market.android.com/details?id=com.kin.blinky&feature=search_result
8) How do I overclock?
Xan’s Voltage Control App here:
https://market.android.com/details?id=com.darekxan.voltagecontrol&feature=search_result .
READ THIS GUIDE FIRST: http://forum.xda-developers.com/showthread.php?t=1036020
If you break something while Overclocking, I won’t provide much support. Overclocking is awesome, but very
variable across devices. We try and make a stable experience for everyone, but it is not guaranteed. If
it breaks, I didn’t do it. If it makes your phone fly, I did it.
9) Can I be a beta tester?
Probably not. Unless you do something to make me like you a lot (cough strictlyrude27 cough), then you can’t
have betas. The reason being they are unstable usually, and I already have a big enough team that I can get
the information I need.
10) Why does my screen look ugly? / How do I change the screen color?
Go grab voodoo control from the market here:
https://market.android.com/details?id=org.projectvoodoo.controlapp&feature=search_result ,
then play with the sliders until you like what you
see. If you get really stumped, here are some values that people tend to like. They are from
zacharais.maladroit.
Screen RGB multipliers:
- Red: 321*
- Green: 321*
- Blue: 429*
Screen v1 gamma hack:
- use Alt. settings
- or if you prefer others - use: "Reset to 2.3.3 defaults", "Punchy settings" (punchy could lead to a great
screen while locking the screen and having "screen off" animation disabled)
1)Color Profiles: Voodoo Profile V1
2) Screen v1 gamma hack :
- 50 red
- 53 green
- 44 blue
3) RGB multipliers:
Red ="2300875360"
Green ="2300875360"
Blue ="2709919680"
11) The backlights on my soft keys stay on all the time. Why is that?
Honestly, because I haven’t spent the time to “fix” it. They aren’t that bright, so people can stand it for
a little while. I didn’t intentionally make it that way, it happened when we switched back to BLN instead of
LED notifications. We made that switch because I like Blinky, and I get to pick until Tk-Glitch is back, or I
am convinced otherwise.
12) I’m getting bootloops, why?
Well, the most common issue is that you have mismatched ROM’s and kernel’s. You need the latest ROM for your
device, and the V12B3 kernel for your device. For where to find that, see above. The next is various scripts
and “fixes” that you flash after/before the kernel. Reflash the nightly for your ROM, then the kernel. Let it
boot. If it works and didn’t with the various other zips you may use, then don’t use those zips.
13) WHEN IS THE NEW VERSION OUT?
First Rule of Cyanogenmod... I'm allergic to ETAs so I try to stay away from them if at all possible.
Causes all kinds of nasty problems they do....
14) How do I use the 90_callvolume script?
neh4pres wrote these instructions, if clarification is needed just ask.
There are many ways to apply this patch. But for these instructions i will be using root explorer because it
has all the utilities needed.
After downloading, use root explorer to extract 90call_vol from the .zip. this will place 90call_vol in the
extracted folder of your sd card. Long press and copy that file and paste it in the /etc/init.d folder. Once
it pastes long press the file and open with text editor.
In call boost.. only change the final number in the line you want to adjust and keep that number between 0 and 3
INCALL_BOOST_EARPIECE=2
INCALL_BOOST_BLUETOOTH=2
INCALL_BOOST_SPEAKER=2
INCALL_BOOST_HEADPHONE=2
Mic gain only change the final number in the line you want to adjust and keep that number between 0-31
MIC_GAIN_EARPIECE=19
MIC_GAIN_SPEAKER=31
MIC_GAIN_HEADPHONE=29
MIC_GAIN_HEADPHONE_NO_MIC=18
Save changes when exiting and the editor will append the original file with a .BAK .
You can use 90call_vol.bak to revert back one save. If you change multiple times and want to go to stock you
can use the 90call_vol in /sdcard/extracted.
15) Is the GPU overclocked?
Yes. Can you control it? No. That code hasn't ever worked, and we don't really expect it to. The GPU is so overclocked at 1.5 Ghz that if it went any higher the memory would get corrupted and really bad things happen.
.............................................
Good deal with new thread! It was getting a bit jumbled. This wil help me/us stay up-to-date with current changes and wut-not!!!
I have a question relating to voltage control. I am able to set and apply changes to my voltage settings in both the general and advanced tab. I can apply, save profile, and save boot settings for these parameters.
However when I close voltage control and open it up again, the settings don't seem to be enabled. I can load the profile and apply it to both tabs again, but I just don't know if it's sticking.
Anyone have this situation?
djk21108 said:
I have a question relating to voltage control. I am able to set and apply changes to my voltage settings in both the general and advanced tab. I can apply, save profile, and save boot settings for these parameters.
However when I close voltage control and open it up again, the settings don't seem to be enabled. I can load the profile and apply it to both tabs again, but I just don't know if it's sticking.
Anyone have this situation?
Click to expand...
Click to collapse
After applying settings, they won't show up properly the next time you open it. Exit out and open it again, you should be good then.
I am experiencing some kernel-related random reboots, with v12.
This is with a fresh ROM install v34 and glitch v12, the phone will freeze for 10 seconds (about) then go back to SAMSUNG and effectively reboot.
It virtually always comes back up just fine. I'd say this happens between 5 and 20 times per day (depending how much I use it).
It seems to do it regardless of: governor, scheduler, overclocking (just staying at 1000mhz, same results), undervolting (HL or LL kernel, same success rate), or apps installed (beyond the apps that come with CM7).
The only thing I can do to stop the rebooting is NOT flash the Glitch kernel at all. I can test v11 or other kernels, but any kernel that leaves call volume super low is almost useless to me (which is why I wasn't using cm7 before) as I need the phone for work.
Logcat-on doesn't seem to give me a very good diagnostic of what's happening, but I'm working on getting better information. When it happens with ddms open, I seem to just get a cutoff of data, and the phone disappears from the list (then reappears when it reboots).
As soon as I figure out a specific trigger, I'll edit this post and post it. But it seems 'random' (could be scrolling a widget, could be opening an email, could be in google maps, could be opening the app drawer, could be opening the Dialer).
Thank you for all of your work. Without you, this community doesn't exist. Thank God for developers selflessly dedicating themselves. I love my Fascinate (instead of hating it) as a result.
pkopalek said:
I am experiencing some kernel-related random reboots, with v12.
This is with a fresh ROM install v34 and glitch v12, the phone will freeze for 10 seconds (about) then go back to SAMSUNG and effectively reboot.
It virtually always comes back up just fine. I'd say this happens between 5 and 20 times per day (depending how much I use it).
It seems to do it regardless of: governor, scheduler, overclocking (just staying at 1000mhz, same results), undervolting (HL or LL kernel, same success rate), or apps installed (beyond the apps that come with CM7).
The only thing I can do to stop the rebooting is NOT flash the Glitch kernel at all. I can test v11 or other kernels, but any kernel that leaves call volume super low is almost useless to me (which is why I wasn't using cm7 before) as I need the phone for work.
Logcat-on doesn't seem to give me a very good diagnostic of what's happening, but I'm working on getting better information. When it happens with ddms open, I seem to just get a cutoff of data, and the phone disappears from the list (then reappears when it reboots).
As soon as I figure out a specific trigger, I'll edit this post and post it. But it seems 'random' (could be scrolling a widget, could be opening an email, could be in google maps, could be opening the app drawer, could be opening the Dialer).
Thank you for all of your work. Without you, this community doesn't exist. Thank God for developers selflessly dedicating themselves. I love my Fascinate (instead of hating it) as a result.
Click to expand...
Click to collapse
I have no idea, ill look into it.
pkopalek said:
I am experiencing some kernel-related random reboots, with v12.
This is with a fresh ROM install v34 and glitch v12, the phone will freeze for 10 seconds (about) then go back to SAMSUNG and effectively reboot.
It virtually always comes back up just fine. I'd say this happens between 5 and 20 times per day (depending how much I use it).
It seems to do it regardless of: governor, scheduler, overclocking (just staying at 1000mhz, same results), undervolting (HL or LL kernel, same success rate), or apps installed (beyond the apps that come with CM7).
The only thing I can do to stop the rebooting is NOT flash the Glitch kernel at all. I can test v11 or other kernels, but any kernel that leaves call volume super low is almost useless to me (which is why I wasn't using cm7 before) as I need the phone for work.
Logcat-on doesn't seem to give me a very good diagnostic of what's happening, but I'm working on getting better information. When it happens with ddms open, I seem to just get a cutoff of data, and the phone disappears from the list (then reappears when it reboots).
As soon as I figure out a specific trigger, I'll edit this post and post it. But it seems 'random' (could be scrolling a widget, could be opening an email, could be in google maps, could be opening the app drawer, could be opening the Dialer).
Thank you for all of your work. Without you, this community doesn't exist. Thank God for developers selflessly dedicating themselves. I love my Fascinate (instead of hating it) as a result.
Click to expand...
Click to collapse
I had this issue a couple times after flashing ROMs to my Droid 2. Generally what worked for me was formatting the SDcard. I'm not sure if this would be a viable solution with the fascinate, but I suppose if no other solution is found, it may be worthwhile to try. I seem to remember hearing that restoring apps and data from titanium backup can occasionally cause the random reboot issue as well. If that could potentially be the case, maybe try a fresh install restoring apps from the market instead of with TiBu to see if it clears up?
Sent from my I500 using XDA App
Just flashed v12, running omfgb 8/25. Running fast and smooth, I was on v11.1. This is the best rom/kernel combo i've used! Thanks devs for all your work and support. I will report after a couple days.
Sent from my omfgb/glitch fascinate using XDA Premium App
*Luke* said:
I had this issue a couple times after flashing ROMs to my Droid 2. Generally what worked for me was formatting the SDcard. I'm not sure if this would be a viable solution with the fascinate, but I suppose if no other solution is found, it may be worthwhile to try. I seem to remember hearing that restoring apps and data from titanium backup can occasionally cause the random reboot issue as well. If that could potentially be the case, maybe try a fresh install restoring apps from the market instead of with TiBu to see if it clears up?
Sent from my I500 using XDA App
Click to expand...
Click to collapse
Yeah, a factory reset should work.
Any plans to incorporate anything from the eh09 sourced drop?
Sent from my SCH-I500 using XDA App
akellar said:
Any plans to incorporate anything from the eh09 sourced drop?
Sent from my SCH-I500 using XDA App
Click to expand...
Click to collapse
If it is incorporated into upstream CM7, then yes.
sixstringsg said:
If it is incorporated into upstream CM7, then yes.
Click to expand...
Click to collapse
It will be; jt already got sensor fixes but he was having kernel.org issues as well. he should be able to get them up soon.
Sent from my MIUI SCH-i500
sageDieu said:
It will be; jt already got sensor fixes but he was having kernel.org issues as well. he should be able to get them up soon.
Sent from my MIUI SCH-i500
Click to expand...
Click to collapse
Once the repo stuff is fixed, we'll be good to incorporate it.
I apologize if this isn't kernel related but any ideas why android system is holding a wake lock? Obviously this is causing a lot of unnecessary battery drain as well.
akellar said:
I apologize if this isn't kernel related but any ideas why android system is holding a wake lock? Obviously this is causing a lot of unnecessary battery drain as well.
Click to expand...
Click to collapse
I bunch of good people have been working on it, and nobody has come up with a solution. If you reboot when you start to notice it happening, that usually helps. It's a issue with Samsung phones across the board.
sixstringsg said:
I bunch of good people have been working on it, and nobody has come up with a solution. If you reboot when you start to notice it happening, that usually helps. It's a issue with Samsung phones across the board.
Click to expand...
Click to collapse
Ok thanks. Unfortunately this is happening daily so it seems I'll be rebooting pretty frequently if that's the case.
akellar said:
Ok thanks. Unfortunately this is happening daily so it seems I'll be rebooting pretty frequently if that's the case.
Click to expand...
Click to collapse
It happened to me, and it comes and goes. Make a new empty file in /data/media titled .nomedia, that may help.

[ROM][Oct 14][5.1.1] Spring

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
2015-10-14
New:
Hi guys. First I want to thank you all, both current and former users, for being here in this thread with me. It's been a pleasure for me, you are all awesome.
This release is the final update of Spring. It'd took a bit longer as I wanted this one to be the most throughout tested release to date. It's rock stable for me, probably the best rom version I've released.
Now I'm moving to another project, which is different to this project, and it feels super exciting. So I'll hope to see you around.
Thanks again,
Per
Rom no longer forces encryption, meaning there's no need to flash a different kernel to stay decrypted.
The main goal with this project is to provide an optimized ROM with a handful of useful features added, on top of a heavily improved base (kernel) to improve speed, network and battery life.
This is my personal preference of how a ROM should be. I will never add features just for the sake of it, I pick those which makes sense for me. This is a one man ROM, which is good as I got control over every little bit of the process. The base of Spring is CyanogenMod 12.1 and I will always try to keep this as close to CM as possible, but at the same time improve the experience for me and you.
Except for the great features CM provides, the following additions are made (changelog in second post):
Rom additions:
Disabled forced encryption
- Added a quick setting tile to toggle expanded desktop.
- Built with latest 4.9 linaro
- Patches and optimizations from linaro.
- Added a setting to force expanded notifications (Settings -> Notification drawer -> Force expanded notification). This feature is nice when you have a big device as ours. Credits to jmztaylor.
- Settings: addded development animation transition mode 0.9. I find 0.75 too fast, and some stutter may occur. 0.9 makes no sacrifice of the lollipop fluidity and speeds the animations up 10%.
- Added LCD Density changer. Credits to Tom Marshall (Source 1) (Source 2). I very much recommend to set the DPI to 480. This will give you more screen real estate and improve your android experience. Try it, play around, and evaluate after a couple of days.
- Fixed some graphics to go with a wider range of densities.
Click to expand...
Click to collapse
Kernel additions:
- M-Preview kernel.
- Kernel compressed with LZ4 (see https://lwn.net/Articles/534168/ for info).
- Optimized VMA caching (see this for info)
- Byte-sized index for the freelist of a slab (see this for reference).
- Updated idle driver and suspend (deep sleep) code.
- MSG_FASTOPEN is now enabled by default. You can try it in your chrome browser. Enable the "TCP Fast Open" flag.
TCP Fast Open is an optimization to the process of stablishing a TCP connection that allows the elimination of one round time trip from certain kinds of TCP conversation, which can improve the load speed of web pages. In Linux 3.6 and Linux 3.7, support was added for this feature, which requires userspace support. This release enables TCP Fast Open by default.
Click to expand...
Click to collapse
- TCP auto corking.
When applications do consecutive small write()/sendmsg() system calls, the Linux kernel will try to coalesce these small writes as much as possible, to lower total amount of sent packets - this feature is called "automatic corking". Automatic corking is done if at least one prior packet for the flow is waiting in Qdisc queues or device transmit queue. Applications can still use TCP_CORK for optimal behavior when they know how/when to uncork their sockets. A new sysctl (/proc/sys/net/ipv4/tcp_autocorking) has been added to control this feature, which defaults to enabled. For benchmarks and more details see the commit link. For benchmarks see this commit.
Click to expand...
Click to collapse
- Multiboot compatible.
- Completely ditched the interactive governor from 3.10 kernel and replaced it with the one from the 3.18 kernel.
- Added a quickwake patch from Motorola.
The purpose of this feature is to drastically reduce the suspend/resume time for device driver which needs to do periodic job. In our use case (android smartphone), the system is most of the time in suspend to RAM, and needs to send a low level command every 30s. With current framework it takes about 500ms on omap3430 to resume the full system, and then suspend again. With quickwakup feature, in the resume process after resuming sysdev and re-enabling irq, the driver handler is executed, and then it suspends again. This new path takes 20ms for us, which leads to good power-saving.
Click to expand...
Click to collapse
- Added SCHED_DEADLINE, a new scheduling class for resource-reservation real-time CPU scheduler in the kernel.
Quoted from: https://lwn.net/Articles/575497/: "Deadline scheduling does away with the concept of process priorities that has been at the core of most CPU scheduler algorithms. Instead, each process provides three parameters to the scheduler: a "worst-case execution time" describing a maximum amount of CPU time needed to accomplish its task, a period describing how often the task must be performed, and a deadline specifying when the task must first be completed. The actual scheduling algorithm is then relatively simple: the task whose deadline is closest runs first. If the scheduler takes care to not allow the creation of deadline tasks when the sum of the worst-case execution times would exceed the amount of available CPU time, it can guarantee that every task will be able to finish by its deadline. Deadline scheduling is thus useful for realtime tasks, where completion by a deadline is a key requirement. It is also applicable to periodic tasks like streaming media processing."
Click to expand...
Click to collapse
- Added Heavy-Hitter Filter (HHF) qdisc.
This is a first size-based qdisc that attempts to differentiate between small flows and heavy-hitters. The goal is to catch the heavy-hitters and move them to a separate queue with less priority so that bulk traffic does not affect the latency of critical traffic. Currently "less priority" means less weight (2:1 in particular) in a Weighted Deficit Round Robin (WDRR) scheduler. In essence, this patch addresses the "delay-bloat" problem due to bloated buffers. In some systems, large queues may be necessary for obtaining CPU efficiency, or due to the presence of unresponsive traffic like UDP, or just a large number of connections with each having a small amount of outstanding traffic. In these circumstances, HHF aims to reduce the HoL blocking for latency sensitive traffic, while not impacting the queues built up by bulk traffic.
Click to expand...
Click to collapse
- Added PIE AQM scheme
This is a Proportional Integral controller Enhanced (PIE) scheduler to address the bufferbloat problem. Bufferbloat is a phenomenon where excess buffers in the network cause high latency and jitter. As more and more interactive applications (e.g. voice over IP, real time video streaming and financial transactions) run in the Internet, high latency and jitter degrade application performance. There is a pressing need to design intelligent queue management schemes that can control latency and jitter; and hence provide desirable quality of service to users. We present here a lightweight design, PIE(Proportional Integral controller Enhanced) that can effectively control the average queueing latency to a target value. Simulation results, theoretical analysis and Linux testbed results have shown that PIE can ensure low latency and achieve high link utilization under various congestion situations.
Click to expand...
Click to collapse
- Many updates to the interactive cpu governor.
What is an interactive CPU governor? Quoted from https://android.googlesource.com/ke...aebe08b/Documentation/cpu-freq/governors.txt: "The CPUfreq governor "interactive" is designed for latency-sensitive,interactive workloads. This governor sets the CPU speed depending onusage, similar to "ondemand" and "conservative" governors. However,the governor is more aggressive about scaling the CPU speed up inresponse to CPU-intensive activity."
Click to expand...
Click to collapse
- Many updates to cpuidle.
What is cpuidle? Quoted from www.fsl.cs.stonybrook.edu/docs/cpuidle/cpuidle-from-userspace.pdf: Cpuidle is a module in the Linux kernel which is respon- sible for running some power saving routines on a core when the core does not have any task in its run queue . The power saving routines try to put the core into a low power state or an idle state."
Click to expand...
Click to collapse
- Added frandom module. The following is quoted from Eli Billauer at (source):
Frandom is a Linux kernel random number generator, which is 10-50 times faster than what you get from Linux' built-in /dev/urandom. And it uses very little (/dev/frandom) or none (/dev/erandom) of the kernel's entropy pool, so it is very useful for applications that require a handy source for lots of random data.
Click to expand...
Click to collapse
- mm: Increase MIN and MAX default readahead sizes for performance reasons, and we've got enough RAM to handle it.
- Built with latest a15 optimized 4.9 linaro toolchain. See this thread (source) for info.
- Updated kernel from 3.10.40 to latest 3.10.79.
Click to expand...
Click to collapse
Download ROM: https://www.androidfilehost.com/?w=files&flid=28963
Download Gapps (Updated!): https://github.com/cgapps/vendor_google/raw/builds/arm/gapps-5.1-2015-07-03-13-41.zip
Want root? Flash SuperSU in recovery. Download it here: https://download.chainfire.eu/696/SuperSU/UPDATE-SuperSU-v2.46.zip
Credits:
- CyanogenMod
- jakew02
- bbedward
- Imoseyon
- Altaf-Mahdi
- Chainfire
Kernel source (branch "new"): https://github.com/PerLycke/android_kernel_moto_shamu
XDA:DevDB Information
Spring, ROM for the Nexus 6
Contributors
pemell
Source Code: https://github.com/PerLycke
ROM OS Version: 5.1.x Lollipop
ROM Kernel: Linux 3.10.x
Based On: CyanogenMod
Version Information
Status: Beta
Created 2015-04-06
Last Updated 2015-10-14
Changelog
2015-10-14
Hi guys. First I want to thank you all, both current and former users, for being here in this thread with me. It's been a pleasure for me, you are all awesome.
This release is the final update of Spring. It'd took a bit longer as I wanted this one to be the most throughout tested release to date. It's rock stable for me, probably the best rom version I've released.
Now I'm moving to another project, which is different to this project, and it feels super exciting. So I'll hope to see you around.
Thanks again,
Per
2015-09-29
- Kernel update. Added BFQ-v7r8 I/O scheduler which cyanogen himself states as SUPERBUTTER. Let's see if we all agrees with him.
- All the ordinary upstream changes.
2015-09-22
- Kernel update to 3.10.89.
- Updates to wireless driver.
- Upstream updates.
2015-09-16
This update is all about power saving behavior. I don't like the stock behavior, it throttles the CPU as soon as you hit 40% and unplug a CPU as soon as you hit 15%. As long as we have the battery saver feature and the fast charging, let us stay in control, and don't force a worst performance on us. I've changed it so the CPU will throttle at 20% and unplug a CPU at 10% (and never unplug a second one).
I've also enabled a low memory kill optimization option, to have LMK select task to kill from rbtree.
Older changelogs:
2015-09-10
- Kernel update and wireless driver update.
- ROM upstream updates.
2015-09-01
Big kernel update:
- Up to par with M-kernel
- Updated to Linux 3.10.87
- Updated wireless driver
- Rom: Upstream changes
2015-08-29
- Fixed mms issue
- Updated wireless drivers
- Upstream changes
2015-08-15
- I was not pleased with the slow USB charging rate. With USB the charging current is around 160-170 mA. So the charging output is slightly increased over USB (up to about 300-400mA, courtsey of imoseyon).
- Upstream changes, a lot of them
2015-08-11
- Big kernel update (Now on Linux 3.10.86)
- Upstream changes, a lot of them.
2015-07-27
- Updated wireless driver. Should improve wireless stability and improve battery performance.
- Fixes and improvements here and there. Trying to squash the few bugs still there (which I don't experience). It's very hard to fix an issue I don't have but I'm trying so please bear with me.
- A lot of CM upstream changes.
2015-07-20
This is quite a big update. There's a bunch of kernel commits from the latest m-preview which I implemented in Spring kernel. There's also many upstream CM-changes implemented.
2015-07-13
- Updated Gapps. Download here: https://www.androidfilehost.com/?fid=24052804347773064
- The updated Gapps fixes Google Play Services battery drain and the Google Search FC issue.
- Kernel update to 3.10.84.
- CM upstream changes.
2015-07-06
- Kernel update to version 3.10.83.
- Wireless driver update.
- Fixed livedisplay tile, will now show outdoor mode if available.
- CM upstream changes.
- Updated Gapps. Download link: https://github.com/cgapps/vendor_google/raw/builds/arm/gapps-5.1-2015-07-03-13-41.zip
2015-07-01
- Kernel update to version 3.10.82.
- CM upstream changes.
2015-06-27
- Updated kernel to 3.10.81.
- A lot of google upstream updates of the wireless driver.
- Updated boot animation.
- New default wallpaper.
- Some more small updates here and there.
- Added a power menu qs-tile.
- Fixed some games not opening and Kindle not being able to download books.
- Fixed kexec implementation.
2015-06-21
- Freshly synced upstream.
- New bootanimation.
2015-06-10
- Bug fixes
- Kernel update to 3.10.80
- CM upstream
2015-06-04
- Misc fixes, updates and improvements. If you want to know in detail please see my github for reference.
- Updated Gapps at https://github.com/cgapps/vendor_google/tree/builds/arm. Make sure to flash this version.
2015-06-03
ROM
- Squashed some memory leaks with fixes from Android M-release.
- A few optimizations from the Android M-release.
CM upstream with the following changes to WiFi-calling and Enhanced 4G LTE Mode:
- IMSEnabler: Application to toggle the Enhanced 4G LTE Mode setting
Somewhere in the changes made by caf to IMS the AOSP ims.apk is not
reading that Enhanced 4G LTE Mode is enabled at boot, or possibly its
a race condition. IMS works fine if it is toggled off and back on
after network data is established. So we set up a reciever for network
change events and do the toggle when mobile data is activated.
Click to expand...
Click to collapse
KERNEL
- Memory enhancements.
- Updated CPU interactive governor to follow aosp-common/android-3.18 repo.
- CM upstream with a big update to the f2fs file system.
2015-05-31
- Android M kernel base. Kernel is now up to par with the kernel coming with Android M. I've redone my whole kernel (again lol) so every single commit from Android M preview is implemented cleanly without a single conflict. I've implemented all my improvements, and CM improvements, from the past on top of the Android M kernel, thus you don't miss out on the features from past releases. Also, the kernel base is updated to 3.10.79 so it's on par with Linux mainstream. This means it's up to date with both AOSP and Linux and in whole provides a cutting edge kernel.
- ROM-wise there's a lot of updates to AOSP repositories.
- CM upstream
- VoLTE now kind of works. It will soon fully work but in the meantime see this post: http://forum.xda-developers.com/showpost.php?p=61028937&postcount=76
2015-05-28
- Merged in Android 5.1.1 release 4: https://github.com/PerLycke/android...mmit/943467249627a91eee4bf2fbed7750226c8c5d72
- Kernel update from AOSP: https://github.com/PerLycke/android...mmit/6647622c39e00d981b8bdeeaeda55eeb6251c55d
- Shamu vendor blobs updated to LYZ28E: https://github.com/TheMuppets/propr...mmit/cf5ddd2b15b53d2dfaa01e3a42772926283cd688
2015-05-27
- Fixed Google Play Services FC. Thanks to arter97 for pinning down the issue and to squid267 for pointing me to it.
- Updated cpu interactive governor. The governor in it's updated state seems to work just wonderful, makes things smoother. IMO It's worth upgrading to this release just for this.
- Upstream CM changes. There's been some important changes, e.g. some bug fixes related to custom densities.
2015-05-24
- Added a screenshot tile to quick settings.
- Updated wireless drivers from android repo. This should improve your wireless connection and could save you some power.
- Added FauxSound support. Use FauxSound app or any other app with FauxSound compatibility to control it.
- Merged in Android 5.1.1_r3.
- CM upstream changes.
2015-05-21
- Improved scrolling fluidity
- Upstream CM changes
2015-05-17
- Updates to memory management to avoid random reboots and improve multitasking.
2015-05-16
- Bugfixes
- CM upstream
2015-05-14
- Implemented some linaro optimizations (reference) and (reference).
- Removed some CM stuff (e.g. the updater).
- Kernel is now compressed with LZ4 (info).
2015-05-13
- Fixed some compatibility issues and vastly improved battery-life. Please upgrade to this build if you are on the 20150507 or 20150510 (or older) build.
2015-05-10
- Cleaned up the kernel repository and moved to branch master.
- Updated the kernel to 3.10.77.
- Implemented a couple of new memory management features.
- CM upstream changes.
2015-05-07
- Added a quick setting tile to toggle expanded desktop. It's nice when reading articles or pdf's.
- Several updates to kernel memory management.
- CM upstream changes.
2015-05-04
- Updated idle driver and suspend (deep sleep) code.
- MSG_FASTOPEN is now enabled by default. You can try it in your chrome browser. Enable the "TCP Fast Open" flag. TCP Fast Open is an optimization to the process of stablishing a TCP connection that allows the elimination of one round time trip from certain kinds of TCP conversation, which can improve the load speed of web pages. In Linux 3.6 and Linux 3.7, support was added for this feature, which requires userspace support. This release enables TCP Fast Open by default.
- TCP auto corking. When applications do consecutive small write()/sendmsg() system calls, the Linux kernel will try to coalesce these small writes as much as possible, to lower total amount of sent packets - this feature is called "automatic corking". Automatic corking is done if at least one prior packet for the flow is waiting in Qdisc queues or device transmit queue. Applications can still use TCP_CORK for optimal behavior when they know how/when to uncork their sockets. A new sysctl (/proc/sys/net/ipv4/tcp_autocorking) has been added to control this feature, which defaults to enabled. For benchmarks and more details see the commit link. For benchmarks see this commit.
- CM upstream changes.
- Reverted adaptive-tick mode for scheduling-clock ticks handling.
2015-04-30
- Multiboot compatibility
- Disabled housekeeping ticker when a CPU handles a single task and improved timerless multitasking: allow timekeeping CPU go idle.
- CM upstream changes
2015-04-29
- Kernel updated from mainline to 3.10.76
- Upstream CM changes
2015-04-28
New: It's time for an update, and this time I'm bringing you something special. I've never been satisfied about how the CPU behaves on the interactive governor, the scaling behavior and jumping between cores and frequencies sometimes doesn't seem logical. After monitoring the CPU in different situations, especially when idling, made me want to improve the governor.
So, in today's release the interactive governor from 3.10 kernel is ditched completely. Rm'd.
Instead you'll find a completely updated interactive governor, implemented straight from the 3.18 kernel. This version of the interactive governor is implemented in a much cleaner way. It's more simple, more clean, and the the result is satisfying to say the least.
I've been running this one for 24 hours now. The way it deep sleeps, the way it idles and the way it scales up under heavy load seems great. So it should be more gentle to your battery and suite you well when you need to do some heavy work.
On a last note. This wasn't complicated. Sometimes you miss the most obvious things and opportunities, which are right there in front of you to grab.
Enjoy folks,
Per
2015-04-25
- CM upstream (including bump to Android 5.1.1).
- Disabled forced encryption by default.
2015-04-21
- More updates to the kernel. Implemented a quickwake patch from Motorola. Some minor layout updates to framework. CM upstream changes.
And I've updated the link to official CM 12.1 gapps (use this from now on).
The no encryption kernel is also updated.
2015-04-20
- You'll find a flashable kernel zip here with forced encryption disabled. If you are decrypted, flash it after you flash my ROM (before booting) and you'll stay decrypted. The ROM itself still forces encryption so flash this zip if you want to stay decrypted.
- Introducing SCHED_DEADLINE, a new scheduling class for resource-reservation real-time CPU scheduler in the kernel.
Quoted from: https://lwn.net/Articles/575497/: "Deadline scheduling does away with the concept of process priorities that has been at the core of most CPU scheduler algorithms. Instead, each process provides three parameters to the scheduler: a "worst-case execution time" describing a maximum amount of CPU time needed to accomplish its task, a period describing how often the task must be performed, and a deadline specifying when the task must first be completed. The actual scheduling algorithm is then relatively simple: the task whose deadline is closest runs first. If the scheduler takes care to not allow the creation of deadline tasks when the sum of the worst-case execution times would exceed the amount of available CPU time, it can guarantee that every task will be able to finish by its deadline. Deadline scheduling is thus useful for realtime tasks, where completion by a deadline is a key requirement. It is also applicable to periodic tasks like streaming media processing."
Click to expand...
Click to collapse
- Introducing Heavy-Hitter Filter (HHF) qdisc.
This is a first size-based qdisc that attempts to differentiate between small flows and heavy-hitters. The goal is to catch the heavy-hitters and move them to a separate queue with less priority so that bulk traffic does not affect the latency of critical traffic. Currently "less priority" means less weight (2:1 in particular) in a Weighted Deficit Round Robin (WDRR) scheduler. In essence, this patch addresses the "delay-bloat" problem due to bloated buffers. In some systems, large queues may be necessary for obtaining CPU efficiency, or due to the presence of unresponsive traffic like UDP, or just a large number of connections with each having a small amount of outstanding traffic. In these circumstances, HHF aims to reduce the HoL blocking for latency sensitive traffic, while not impacting the queues built up by bulk traffic.
Click to expand...
Click to collapse
- Introducing PIE AQM scheme
This is a Proportional Integral controller Enhanced (PIE) scheduler to address the bufferbloat problem. Bufferbloat is a phenomenon where excess buffers in the network cause high latency and jitter. As more and more interactive applications (e.g. voice over IP, real time video streaming and financial transactions) run in the Internet, high latency and jitter degrade application performance. There is a pressing need to design intelligent queue management schemes that can control latency and jitter; and hence provide desirable quality of service to users. We present here a lightweight design, PIE(Proportional Integral controller Enhanced) that can effectively control the average queueing latency to a target value. Simulation results, theoretical analysis and Linux testbed results have shown that PIE can ensure low latency and achieve high link utilization under various congestion situations.
Click to expand...
Click to collapse
- Many updates to the interactive cpu governor.
What is an interactive CPU governor? Quoted from https://android.googlesource.com/ke...aebe08b/Documentation/cpu-freq/governors.txt: "The CPUfreq governor "interactive" is designed for latency-sensitive,interactive workloads. This governor sets the CPU speed depending onusage, similar to "ondemand" and "conservative" governors. However,the governor is more aggressive about scaling the CPU speed up inresponse to CPU-intensive activity."
Click to expand...
Click to collapse
- mm: Increase MIN and MAX default readahead sizes for performance reasons, and we've got enough RAM to handle it.
- Many updates to cpuidle.
What is cpuidle? Quoted from www.fsl.cs.stonybrook.edu/docs/cpuidle/cpuidle-from-userspace.pdf: Cpuidle is a module in the Linux kernel which is respon- sible for running some power saving routines on a core when the core does not have any task in its run queue . The power saving routines try to put the core into a low power state or an idle state."
Click to expand...
Click to collapse
- Updated kernel to 3.14.75.
- Rom-wise some fixes are done to the DPI changer and upstream CM changes.
2015-04-17
- Several fixes and improvements. (It fixes a lot of things so please upgrade to this one if you are on 2015-04-16.)
2015-04-16
- Added a setting to force expanded notifications (Settings -> Notification drawer -> Force expanded notification). This feature is nice when you have a big device as ours. Credits to jmztaylor.
- Upstream kernel changes, bumped to 3.10.74.
- A lot of upstrem CM changes.
2015-04-10
- Added density changer. Changes in density have no impact on play store compatibility (Settings -> Display and lights -> LCD Density)
- Updated kernel from 3.10.40 to 3.10.73.
- Removed CM updater to stop confusing users.
- Changed navbar layout overlay to make it look better on more densities.
- Reverted BFS to CFS.
2015-04-09
- Fixed dialer layout when using 480 dpi
- Upstream CM changes
2015-04-05
- Initial release
Sweet May give this a try
Wooorrdddd
Super excited to try this! Flashing now. OP sounds very thorough. Love the idea of simple and stable.
Cool to see another BFS adopter
Double-tap to wake working nicely. Returned DPI to default (560), but Appstore still doesn't recognize it as a Nexus 6. I can download "Amazon for Tablets", but not the regular Amazon app.
Good job. This ROM flies.. Optimizations make a huge difference.
How do I change DPI back to the 560 I can't download anything from play store.
kingskidd268 said:
How do I change DPI back to the 560 I can't download anything from play store.
Click to expand...
Click to collapse
You can't even get TexDroider from the store? If not.. Google search it and you'll find the apk.
Or you can edit the build prop back to 560 or whatever you like with Root Browser / Editor.
Sounds cool. Wish it was earlier. Be back to try this tomorrow. Thanks
hijax2001 said:
Double-tap to wake working nicely. Returned DPI to default (560), but Appstore still doesn't recognize it as a Nexus 6. I can download "Amazon for Tablets", but not the regular Amazon app.
Click to expand...
Click to collapse
Edit: I see now that you are trying to use amazon app store. I've got no knowledge about that store and how it handles different densities. I will take a look at it. Cheers / Per
Edit 2: I'm tired, now I get it you are trying to download amazon app store from Google play. All my 100+ apps are treated as phone apps so I don't know why this one isn't. Will try to find out. Cheers again / Per
kingskidd268 said:
How do I change DPI back to the 560 I can't download anything from play store.
Click to expand...
Click to collapse
About DPI and Play Store: The density of your rom, like 480, will be registered within Google apps. If you change the density it needs to get re-registered. You could let it sit for a while or try to clear Googla Play Services, Google Services Framework and Play Store cache followed by a reboot. You would probably have to wait some time after this for the new density to get registered.
The reason I changed the density within the source is that if you do a clean install (format system and data before flashing) the only density which will be registered to Google apps upon first boot is 480 and you will have no problem installing apps in Play Store. I've installed 100+ apps without no issues whatsoever when following those instructions.
480 is the "native" density for Shamu and it was actually used by google some time before releasing. It gives you more screen real estate and I highly recommend using it and take advantage of the big beautiful screen we have.
Some odd apps, like Amazon app store, chooses the tablet layout resources when on 480 DPI. Not many apps behaves like this and it's not that big of a drawback IMHO. If you feel it is you can always sideload the Amazon app store phone layout app using http://apps.evozi.com/apk-downloader/. Don't use that link to try and download paid apps (It won't even work).
Thanks...I was indeed referring to downloading the Amazon Store app from Google Play.
Nice and smooth so far ! Thanks for sharing !
Rom updated to 20150409, changelog in second post.
Cheers,
Per
Solid ROM, very fluid. Just wish you had, or plan to add, LCD Density. :good:
Andromjb said:
Solid ROM, very fluid. Just wish you had, or plan to add, LCD Density. :good:
Click to expand...
Click to collapse
Just use romtoolbox.
Well, i have now an encrypted phone!!!
You should update the thread...
niyazidk said:
Well, i have now an encrypted phone!!!
You should update the thread...
Click to expand...
Click to collapse
Sorry for that mate but I haven't said I've disabled encryption by default. This is based on CM kernel and CM kernel is encrypted by default. You can't assume a non default feature is there if not stated by me.
I guess you can back up your data, flash a kernel with default encryption disabled, wipe userdata with fastboot and restore your data.
Can I ask why you want it decrypted? I can't find a good reason

[10][KERNEL][06.12.2019] Kirisakura-Q 10.1.0 [3.18.140]

Hey guys and girls,
So straight to Topic.
The Kirisakura-Harmony is based on the latest google sources. On top of it are the latest EAS patches directly from Linaro. It also includes a few Audio Patches from CAF. Power Gating is disabled so you can use this kernel with @chdloc ´s excellent, I am wholeheartedly recommending it, biquads mod. If you grasp what you can do with it, you will never need an equalizer in your life again. So this is also an audio oriented kernel.
As I said I am still learning. The Feature list Comes here:
- Based on the latest Sources from Google for Android Q/10
- Upstreamed to 3.18.140
- Schedutil included again
- GPU Adrenoboost
- Wake gestures from flar2
- KCAL from savoca and ported by tbalden
- HBM enabled and accessible for the user
- Backlight dimmer is added
- FIOPS, SIO and MAPLE I/O Scheduler included
- Updated BFQ I/O Scheduler
- I managed to merge some Audio Patches from CAF, which should enhance Audio
- Power Gating disabled so you can use @chdloc ´s biquad mod
- Vibration Control
- Sound Control
- sdcardfs
- Sched and latest Schedutil (with latest upstream patches is also default)
- Updated EAS Machinery
- USB fast charge
Instructions for Android P
How to flash the Kernel:
1. Download the kernel.zip to your device
1a. Optional: While it may not be necessary all times, you may want to restore stock boot.img, re-root with magisk and optionally install twrp.zip if coming from another kernel. Before reporting issues make sure you do that! Thank you!
You only need to do either 2a OR 2b
2a. Boot to TWRP and flash my kernel.zip. Root will be preserved!
or
2b. Flash kernel zip in EX Kernel Manager or FKM app. Root will be preserved!
3. After booting up make sure to set schedutil as default CPU governor (check apply on reboot option) to fully profit from the kernel´s changes!
4. Enjoy your device now!
Android 10 Download:
Download:
https://www.androidfilehost.com/?w=files&flid=300707
Download for PIE
Download:
https://www.androidfilehost.com/?w=files&flid=198589
Oreo Kernel Stuff
Download:
https://www.androidfilehost.com/?w=files&flid=152851
Changelog-Mainline:
0.1
- Initial release
0.2
-added safetynet patch
0.3
- Add GPU OC
- Update wake gestures
- Many new Performance Patches
- Updated dm verity
0.4_1
- More performance tweaks
- Made my kernel a flashable zip <-- I hope you guys are satisfied now
0.5
- add Slimbus OC <-- Increases Audio Quality
- Various crypto Patches
- More Patches that may help with Performance
- added wakelock Patches
- added a few alsa patches
0.6
- added soundcontrol
- disabled some logging stuff
- some more tweaks
0.7
-enabled few other tcp congestion algorithms <-- westwood is now default
- set default iosched to deadline as it works best with eas kernels if we trust the documentation
0.8
- added sdcardfs <-- take a look at the FAQ on how to enable it
- added in two new governors, alucardsched and darknesssched
- merged in some other commits. take a look at my github
0.9
- when deactivating kernel side dt2w and s2w, one is still able to use the stock google dt2w implementation
- code updates for both alucardsched and darknesssched <--- if anyone has time please test and report back how they work with 0.9
- added option for GPU boost <--- disabled by default, take a look at the faq please
- update to cpuidle <--- deep sleep is improved for me
- the simple_ondemand GPU governor is now usable and does not crash upon choosing
- fix an issue were tasks were not given properly to cpusets
- a few other changes, please take a look at my github
0.9_5
- fixed a typo which would the user not choose msm-adreno-tz GPU governor after choosing simple_ondemand <--- also have no worries I implemented a patch that will let you choose only GPU governors that will not crash
- a few more commits for schedutil and sdcardfs
0.10
- all security patches
- some patches that may help with efficiency
- many patches to schedutil,sched, and walt (many)
- few patches to sdcardfs
- tuned WALT values a bit
- other things I forgot, check my github
0.11
- I added a few additional commits to adrenoboost, it is now more conservative and suited for daily use. I run it on moderate boost and don´t notice any battery drain
- performance of the fingerprint reader may be improved <-- I need feedback from you, don´t use it myself
- update to slimbus OC
- a few patches that may help with stability and performance in general
- many patches to schedutil , it is the recommended governor now in conjunction with nohint.zip
- introduced a new governor, called helix_schedutil based on schedutil; thanks to @ZeroInfinity
I had a little play with it, if anyone finds better values I can include them.
- for more details check my github
- please check this post prior to flashing: https://forum.xda-developers.com/showpost.php?p=71415045&postcount=210
Changelog for 0.12:
- added blu active governor
- updates to helix_schedutil, alucardsched and darknesssched
- updates to sdcardfs
- maybe some performance improvements <-- please give feedback
- other things look at my github
- made a non oc version
- please check this post prior to flashing: https://forum.xda-developers.com/showpost.php?p=71502126&postcount=241
Changelog for 0.13
- Implemented CPU_Input_Boost by sultanxda <--- disabled by default, if you experience scrolling lag activate it in EXKM, CPU Tab
- Implemented a new sched governor called energy-dcfc (Dynamic Capacity and Frequency Capping), more information in second and third post
- Some adjustements for schedutil
- Updated helix_schedutil
- some improvements to alucardsched and darknesssched
- adjusted WALT to final parameters
- bumped up and improved BFQ, thanks @DespairFactor <-- new default
- introduced Maple I/O scheduler
- updated sdcardfs
- please check this post prior to flashing: https://forum.xda-developers.com/showpost.php?p=71502126&postcount=241
Changelog for 0.14
- Added April Security Patches
- Updates to Schedutil, Sched, energy-dcfc
- Introduced a new EAS governor called pwrutil <-- more information on the second post
- Some upstream patches
- some more crypto patches
- updated wakelock blockers
- for other things look at my github
- please check this post prior to flashing: https://forum.xda-developers.com/showpost.php?p=71502126&postcount=241
Changelog for 0.16
- Linux Kernel Version is now 3.18.51
- Applied May security Patches
- many other little improvements and changes
Changelog-Rebase:
- Features EAS 1.2 Machinery
- May security update
- Linux version 3.18.53
- Includes all features from mainline except the EAS Governors (sched and schedutil are included) and CPU Boost.
- IO switcher
- some patches to schedutil
1.24
Updated sdcardfs
little performance tweak
updates to low power mode
1.28
- IO switcher
- some patches to schedutil
1.29
- performance tweak
1.32
- 3.18.55
- June Security Update
1.36
- updated sdcardfs
- EAS patch
- Linux Bump to 3.18.56
- ipv6, net and ext4 patches
1.40
- Linux Version now at 3.18.59
- July Security Patches
- updated sdcardfs
- little patch for sched
- boost now also ufs storage controller upon turning on the screen additionally to boost ddr bandwidth(even faster wakeup)
- extended recharge rate when battery is near full (aids longevity of our battery)
Changelog-Harmony:
4.00
https://forum.xda-developers.com/showpost.php?p=75835635&postcount=1105
5.01
https://forum.xda-developers.com/showpost.php?p=76106520&postcount=1129
6.00
https://forum.xda-developers.com/showpost.php?p=77515614&postcount=1166
6.01
https://forum.xda-developers.com/showpost.php?p=77533981&postcount=1178
6.02
https://forum.xda-developers.com/showpost.php?p=77588617&postcount=1180
6.04
https://forum.xda-developers.com/showpost.php?p=77758260&postcount=1188
6.05
https://forum.xda-developers.com/showpost.php?p=77776533&postcount=1189
6.06
https://forum.xda-developers.com/showpost.php?p=78125103&postcount=1198
6.07
https://forum.xda-developers.com/showpost.php?p=78342154&postcount=1209
7.00
https://forum.xda-developers.com/showpost.php?p=78916917&postcount=1243
7.01
https://forum.xda-developers.com/showpost.php?p=78968314&postcount=1251
8.10
https://forum.xda-developers.com/showpost.php?p=79506878&postcount=1287
10.0
https://forum.xda-developers.com/showpost.php?p=80581575&postcount=1301
10.1.0
https://forum.xda-developers.com/showpost.php?p=81119421&postcount=1311
FAQ:
Q: Which app do you recommend to apply changes to the kernel?
A: EX Kernel Manager from @flar2 is a great choice. He is constantly updating it.
Q: Which CPU governor I can choose freely and not hinder the EAS?
A: schedutil
Q: what is GPU boost and how should I choose the boost level?
A: I also implemented GPU Boost.
if you use the default GPU governor which is msm-adreno-tz you will have the option of GPU boost in EXKM. if you choose simple_ondemand not.
I think GPU Boost is not really needed on this phone as it raises GPU freqs aggressively enough for most tasks. So I leave it disabled at default.
It was originally introduced on the HTC 10, to counter an issue whereby the GPU failed to scale up aggressively enough, to run some not demanding games properly in 60fps locked. But there are some performance junkies (like me) who want to try such things.
So you can enable this setting and it has 3 profiles. Low, medium and high. It defines how aggressively the GPU gets scaled up.
I found GPU boost on low to be quite a good all day setting. Maybe a little bit more performance and not a too big hit on battery.
Medium and High are definitely more battery hungry and you should do this only for gaming or benchmarks.
Q: What is the difference of WALT and PELT and how does it affect me?
A: https://forum.xda-developers.com/showpost.php?p=71336204&postcount=179
Credits:
@Eliminater74 for bringing me into the game and the Inspiration
@flar2 for all his work
@tbalden
@savoca
@franciscofranco
@DespairFactor for the zip and the help
@Alucard24
@ZeroInfinity
@RenderBroken for helping me out
@dorimanx
@Sultanxda
if i forgot anyone just pm me and I will gladly add you
Source: https://github.com/freak07
Info Post
So this post will be dedicated to information about EAS in general.
Another amazing write up about alucardsched by a talented new dev @joshuous:
This is what I understand from tracing the Alucardsched code. I apologise if my understanding is incorrect.
Firstly, next frequency selection with Schedutil (very simple):
Code:
next_freq = 1.25 * Max_freq * current_util / max_util;
Now, here's a quick overview of one cycle of frequency selection in Alucardsched:
1. You have two key extra tunables: PUMP_INC_STEP and PUMP_DEC_STEP
2. Current utilisation here refers to the system's current demand. It is calculated using:
Code:
curr_util = (util * (100 + tunables->boost_perc)) / max_utilisation
The "util" is a value determined by the EAS scheduler.
3. Target load here refers to what processor is currently supplying. It is calculated using:
Code:
target_load = (current_freq * 100) / max_freq;
4. The key idea is to ensure that supply satisfies demand. That is, target load ≈ current load.
5. If target_load <= current_load (too little supply), then we want to increase frequencies to match the system’s load. For Alucardsched, frequency is increased by jumping up PUMP_INC_STEP number of steps in the OPP table. (By OPP table, I refer to the available frequencies that you can switch to)
6. If target_load > current_load (too much supply), then we want to decrease frequencies to match the system’s load. For Alucardsched, frequency is decreased by jumping down PUMP_DEC_STEP number of steps in the OPP table.
7. Do note that Alucardsched jumps several frequency steps, compared to Schedutil and Interactive which try to jump immediately to a calculated next frequency. In this way, Alucardsched doesn't care about the specific value of the next speed. It's like driving a car, and deciding to increase gears by several steps instead of deciding to jump immediately to a specific gear.
Extra Tunables
FREQ_RESPONSIVENESS
PUMP_INC_STEP_AT_MIN_FREQ
PUMP_DEC_STEP_AT_MIN_FREQ
Sometimes you want the "pumping" behaviour to behave differently at lower and higher frequencies. FREQ_RESPONSIVENESS can be seen as the mark that divides the low and high frequencies. If the current frequency is less than FREQ_RESPONSIVENESS, the number of frequency skips will be PUMP_INC_STEP_AT_MIN_FREQ and PUMP_DEC_STEP_AT_MIN_FREQ instead of the usual PUMP_INC_STEP and PUMP_DEC_STEP.
How is it used? If your frequency is low (lower than FREQ_RESPONSIVENESS) and your system demand is high, you ideally want to boost frequency speeds quickly. This is when PUMP_INC_STEP_AT_MIN_FREQ kicks in. PUMP_INC_STEP_AT_MIN_FREQ is usually (and should be) a larger value than PUMP_INC_STEP. When your frequency is high (higher than FREQ_RESPONSIVENESS) and your system demand is high, you don't want to be jumping so many steps up otherwise you will hit max frequencies too quickly (overkill). I'm pretty sure you can figure out how PUMP_DEC_STEP and PUMP_DEC_STEP_AT_MIN_FREQ works after having read this paragraph
Tldr;
Schedutil: simpler
Alucardsched: more tunable
Code:
IF CURRENT_FREQ < FREQ_RESPONSIVENESS:
PUMP_INC_STEP_AT_MIN_FREQ and PUMP_DEC_STEP_AT_MIN_FREQ are used
ELSE:
PUMP_INC_STEP and PUMP_DEC_STEP are used
PUMP_INC_STEP_AT_MIN_FREQ should be larger than PUMP_INC_STEP.
Note: There is however a potential problem (if you may call it one) with Alucardsched: just like Interactive you rely almost entirely on heuristics (trial and error) to control your frequency jumps instead of letting the system choose it for you, like in Schedutil. In that way, Alucardsched detracts from the goal of Schedutil to provide a simple frequency choosing mechanism. Without the proper tuning to meet your specific usage, it is likely that your frequencies will overshoot or undershoot past the needed load on Alucardsched (just like in Interactive). I would recommend that you play with the tunables to see what works best for you.
Here is information about energy-dcfc (Dynamic Capacity and Frequency Capping):
This new governor is based on schedutil. It uses target_load variables as thresholds to let the governor decide when to cap the frequencies for both clusters. These variables are called "load1_cap" and "load2_cap". Load1_cap corresponds to target_load1 meaning anything that is below target_load1, it caps using load1_cap. Anything above target_load1 and below target_load2, use load2_cap. Anything above target_load 2 and the maximum frequency will be used.
As a result of this behaviour, bit shift value must be set to 1. Anything higher than 1 and frequency scaling will be extremely slow. This is because the lower the maximum frequency, the lower the next frequency target is because the frequency range is being limited.
AS OF V009: The governor has now incorporated @Kyuubi10 's schedutil dynamic formula change. When load is below target_load1 it will use add bitshift in the formula. If load is above target_load1 but below target_load2, it won't use any bit shifting at all. If load is more than target_load2, it will subtract bitshift in the formula. This has proven to be very efficient with a touchboost-like behaviour when scrolling (Up to the capped frequency of this governor), then steady performance in between, and on heavy workloads it will not just stay on maximum frequency, in fact it will hover around 1.3-1.9GHz to ensure thermals are good as well as battery endurance.
This governor is aimed with maximum efficiency in mind. Do not expect outstanding performance with this governor.
helix_schedutil explained by @Kyuubi10
To understand Helix_schedutil you must first understand the original schedutil algorithm.
Here it is:
next_freq = maxfreq + (maxfreq >> bitshift) * util/maxcapacity
Explanation:
The most obvious difference of this algorithm is that it moves away from the idea of scaling frequencies up or down which were used in previous generations of governors.
Instead the aim of the above algorithm is to calculate the most appropriate frequency for the TOTAL CPU load.
NOTE: This is TOTAL load on CPU, not just load for the current frequency step as Interactive used to calculate with.
Now, for you numberphiles like myself that like understanding algorithms... Let's break it down:
"util/maxcapacity = Load."
The above creates a percentage value in decimal format (80% = 0.8) which represents the TOTAL load on CPU.
the algorithm now reads the following way:
next_freq = maxfreq + (maxfreq >> bitshift) * load
"maxfreq + (maxfreq >> bitshift)"
Essentially the aim of the above is to ensure that next_freq is always a little higher than the exact value needed to cover the load.
Bitshift: (paraphrasing @ZeroInfinity) in programming the ">>" mathematical function allows for shifting the binary values towards the direction of the arrows by "N" times.
In this case it is towards the right.
The relationship between "N" and the calculation in the "()" is as follows:
Bitshift = 1 = maxfreq/2
Bitshift = 2 = maxfreq/4
Bitshift = 3 = maxfreq/8
If the "+()" didn't exist in the algorithm, the chosen frequency would be exactly enough to cover the load.
If load is 0.6, aka 60%, all you need is a frequency = 60% of max frequency.
This would be bad since it doesn't leave any capacity/bandwidth leftover for inevitable bumps in load, nor space for EAS itself to run. Thus inevitably creating lags.
To keep a bit of free bandwidth you add "(maxfreq >> bitshift)".
Finally the problem I encountered, if bitshift = 2, then the result of the algorithm is that any load above 0.8 will result in a next_freq HIGHER than maxfreq. - This is your tipping point. As any load higher than 80% will wake up a new CPU.
Which means you have still about 20% of the CPU's max capacity being unused. Such a CPU is only 80% efficient.
Therefore by increasing bitshift to 3, the algorithm reads:
"maxfreq+(maxfreq/8)*load = next_freq"
This way you can use 89% of capacity before reaching max frequency of the CPU.
With bitshift=4 it reads:
"maxfreq+(maxfreq/16)*load = next_freq"
This allows you to use up to 94% total CPU load before reaching max frequency.
While this is great for improving efficiency at the higher frequencies, it doesn't leave enough bandwidth when calculating lower frequencies, and creates lag when load spikes at lower frequencies.
Update to the explanation:
After being inspired by the concept of @ZeroInfinity's new governor - Energy-DCFC, I decided to carry out a couple of tests on HTC 10 using variations of Helix_Schedutil.
The focus was stress-testing by increasing the current frequency load above 100%. (AKA Use up all of the bandwidth of the current frequency step.)
After the testing me and Zero worked on this new version of Helix_Schedutil.
The current behaviour of the governor is the following:
- Boost frequencies when load is below Target_Load1. (Boost can be increased by DECREASING bit_shift1 value.)
- Between Target_Loads there is no bit_shift at all. The governor just uses the following algorithm instead - (max_freq*util/max = next_freq)
- Loads higher than Target_Load2 will be THROTTLED. Bit_Shift2 here is subtracted rather than added. (Throttle effect can be increased by DECREASING bit_shift2 value.)
The result is that low freqs have spare bandwidth to avoid lags, middle frequencies leave no extra bandwidth at all, while higher frequencies are throttled to save battery.
Another focus of the governor update is to reduce overhead as much as possible. This results in a very responsive governor which isn't overly demanding on battery life.
Schedtune.boost values recommended for use with this governor:
Top_App: 5
Foreground: -50
Background: -50
Global: -50
Energy-DCFC is still recommended for those who prefer battery life over performance, but if you prefer greater performance then this governor can be used without making you feel guilty about wasting battery.
correction a misconception:
Some people describe tipping point as the load threshold which the governor uses to decide whether to ramp up or down.
While if you look into the behaviour of the governor it may appear that it behaves in such a way, it is technically incorrect.
As I mentioned previously this new algorithm moves away from the behaviour of legacy governor algorithms which focus on the current frequency load.
This governor does no ramping up or down.
It isn't even aware of the current frequency load, as it only knows the load relative to max capacity.
The misconception appears based on a property of the algorithm that results in a consistent load at any chosen frequency. This is a coincidental result of the algorithm, even though the algorithm is completely unaware of it.
Tipping point is in fact the load percentage at which the CPU reaches max frequency and any increase in load forces it to wake up a new core
here is some Information about pwrutil governor:
This new governor is based on schedutil.
A much simpler yet very effective governor based on schedutil. All this changes is the calculation to get the next frequency. Rather than using bit shift to calculate tipping point and what not, we don't use it at all. This is much much more efficient if you use my program called "schedutilCalculator" to calculate what the next frequency is. For example, a load of 25% with a max freq of 2150400 will get 500MHz as next frequency. A load of 50% will get 1GHz as next frequency. A load of 75% will get 1.5-1.6GHz as next frequency. A load of 100% will get 2.15GHz as next frequency. You can see the lower the load, the much lower the frequency selection will be, but the higher the load and the higher the frequency selection is. So it can go from a very low powered state with 50% load and under, to a high performance state from 75% load and above.
Includes a tunable called "utilboost" which is basically a load multiplier - it makes load higher than it is perceived by the governor, thus making next frequency selection higher. Remember utilisation does not equal load. The equation of calculating load is util / max capacity of a CPU (which should be 1024). So 512 / 1024 = 0.5 (50% load).
UTIL BOOST IS NOT MEANT TO BE USED WITH SCHEDTUNE.BOOST AT THE SAME TIME! EITHER USE ONE OR THE OTHER OR ELSE PERFORMANCE WILL BE OVERKILL AND BATTERY LIFE WILL DRAIN MUCH FASTER!!!
Util boost is supposed to be a replacement of schedtune.boost. schedtune.boost applies boosting to both clusters, whereas util boost allows boosting per-cluster so users can have much more control.
how to gather logs:
There are several apps that can do this process for you, Here is one: PlayStore: SysLog
And here is another: PlayStore: Andy Log (ROOT)
ramopps: is an oops/panic logger that writes its logs to RAM before the system
crashes. It works by logging oopses and panics in a circular buffer. Ramoops
needs a system with persistent RAM so that the content of that area can
survive after a restart.
logcat: the logoutput of the Android system
kernel log: (kmsg / dmesg): the kernel messages
Additionally there's the last_kmsg which is a dump of the kernel log until the last shutdown.
radio log: the log outpur ot your System / BB / RIL communication
4
ramopps:Some Documentation on Ramopps
Normal Logcat:
Radio Logcat:
Ramoops:
Via adb:
adb shell su -c cat /sys/fs/pstore/console-ramoops > kmsg.txt
Via terminal on phone:
su
cat /sys/fs/pstore/console-ramoops > /sdcard/kmsg.txt
Kernel Log:
Kernel Log:
adb shell su -c dmesg > dmesg.log
Last_Kmsg:NOTE:
New location of last_kmsg on Android 6.0 and above: /sys/fs/pstore/console-ramoops
adb shell su -c "cat /proc/last_kmsg" > last_kmsg.log
NOTES:
-v time will include timestamps in the logcats
-d will export the complete log.
If you want to save a continuous log you can remove the -d parameter - then you need to cancel the logging process via CTRL+C.
To export a continuous kernel log use adb shell su -c "cat /proc/kmsg" > dmesg.log (and cancel it via CTRL+C again).
PS: This Document was taked from another XDA Thread Called: [Reference] How to get useful logs
URL: http://forum.xda-developers.com/showthread.php?t=2185929
Also check this one out: [Tutorial] How To Logcat
I only Revived it a bit for ramopps.
I will update this more at a later time..
Excellent work my friend thanks for supporting the Pixel XL I hope you get lots of joy from your new hobby!
Will flash in the morning and see how it goes...
Most of those audio patches you backported seem to be interesting, specially the ones that are meant to reduce power comsumption. Will pick. Suggestion, you don't need to specify the slot in the fastboot command, just fastboot flash kernel kernel_binary
can you disable storage force-encryption?thanks!
Sent from my Pixel XL using XDA Labs
Are the safetynet patches implemented by any chance?
franciscofranco said:
Most of those audio patches you backported seem to be interesting, specially the ones that are meant to reduce power comsumption. Will pick. Suggestion, you don't need to specify the slot in the fastboot command, just fastboot flash kernel kernel_binary
Click to expand...
Click to collapse
When I did only fastboot flash, I ended up twice with a system that somehow didn’t know which boot slot to boot to.
Each reboot it would boot into the different boot slot. The only thing that resolved this was to flash the factory image from google.
Even specifying the boot slot via fastboot did not alter this behaviour.
Somewhere in the q & a section someone is describing the problem too. It occured the first time after using fastboot flash kernel command.
almightysiman said:
can you disable storage force-encryption?thanks!
Click to expand...
Click to collapse
I will look into it.
ghostENVY said:
Are the safetynet patches implemented by any chance?
Click to expand...
Click to collapse
No I didn’t implement them yet. I will look into it.
Let us know when you'll have a flashable zip for this! Sounds good!
Thanks for another kernel option!
Sent from my Pixel XL using XDA Labs
Freak07 said:
When I did only fastboot flash, I ended up twice with a system that somehow didn’t know which boot slot to boot to.
Each reboot it would boot into the different boot slot. The only thing that resolved this was to flash the factory image from google.
Even specifying the boot slot via fastboot did not alter this behaviour.
Somewhere in the q & a section someone is describing the problem too. It occured the first time after using fastboot flash kernel command.
Click to expand...
Click to collapse
Well, I've been using that command since day 1. I've flashed countless times, it never failed to boot once...
franciscofranco said:
Well, I've been using that command since day 1. I've flashed countless times, it never failed to boot once...
Click to expand...
Click to collapse
are you running stock rom? I believe you, if you say, you never had issues.
I ran into the issue I described earlier. It would Change Slots upon each reboot and nothing except flashing back stock Google Image fixes it.
new kernel 0.2 is available
I added safetynet patch and another commit that may help with Performance
Download is here or in the OP
https://www.androidfilehost.com/?fid=529152257862702410
It's great to see development for our beloved Pixel XL! I'll be checking this out. I thank you friend!
Freak07 said:
It also includes a few Audio Patches from CAF.
Click to expand...
Click to collapse
Anything related to aptX Bluetooth?
CZ Eddie said:
Anything related to aptX Bluetooth?
Click to expand...
Click to collapse
Don’t know. What are you searching for exactly?
Hey
I updated the kernel to 0.3
Main changes are:
- Add GPU OC to 652mhz like the performance edition of our soc
- Update wake gestures
- Many new Performance Patches
- Updated dm verity
Download is here:
https://www.androidfilehost.com/?fid=745425885120707916
Lots of sweet features and commits. Definitely keeping my eye on this kernel. :good:
Can you make it TWRP flashable please?
Sent from my Pixel XL using XDA Labs

[Kernel][EAS][Overclocked] No Gravity [Q][Pie][Oreo][2020-09-27][UberTC]

NoGravityKernel
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
No Gravity Kernel 2.0 + 4.0 App Trailer
Why is it called NoGravity kernel?​
The OnePlus company decided to give the Snapdragon 810 V2.1 to our device. It comes with a little increase in GPU clock speed (from 600MHz to 630MHz) BUT it also comes with a CPU downclock going from 2.0GHz to 1.77GHz on the big cluster to avoid overheating issues. No overclocked kernel has been made for PIE/OREO so this is the reason why I made this kernel. This Kernel is for Performance but it still gets descent battery life due to some added features (see below).
The Kernel will boot using stock (OnePlus 2) CPU frequencies that correspond to the Balanced Profile. Other profiles for battery, performance and gaming can also be switched to in my app.
To tweak the kernel easily, here's my No Gravity app! featuring custom profiles (Battery, Balanced, Performance, Gaming and Gaming+). My kernel offers some features that cant be found in other kernel tweaking apps. You can find them lower in the thread.)
Detailed info about the EAS Kernel in post#3.
-Overclocked CPU (Little 1.56->1.9Ghz, Big 1.8-> 2.2Ghz)
-CPU Underclocked to 302 MHz(idle) and undervolted
-The two CPUs (big and little cpu) can be configured completely separate in terms of min/max frequencies and governors
-Undervolted for better battery life and temps
-Using custom thermal engine for better performance (Less thermal throttling)
-Voltage Control
-Jaw dropping Applications Opening speed
-Unlocked PUBG HDR+Extreme options (Disabled by default, enable it in app)
-DDR Bus boost for frame rendering
-No Gravity app! support
-DTS Eagle Drivers added for better sound
-GPU Overclocked to 650 MHz
-GPU Underclocked to 27 MHz on idle
-Added Adreno Idler
-AdrenoBoost 2.1
-Updated Cpusets for even more smoothness
-Backported Pixel timekeeping
-Smarter GPU
-Disabled ZRAM
-DDR Input Boost
-Max screen off frequency tunable
-Dynamic File Sync
-Slimbus Overclock
-Thermal Throttling Slider
-Added Governors (Chill, Relaxed)
-Added Fingerprint boost
-Added WakeBoost module
-Faux Sound support
-Gestures Support
-FastCharge drivers Support (Now the charging rate is fast even when screen on without increasing temps that much!)
-Maximum charge rate over USB 3.0 increased from 500mA to 900mA
-WireGuard Support
-Added and Using ZEN I/O Scheduler as default for app opening speed && overall Smoothness
-Added Maple, SIO and FIOPS I/O Scheduler
-KCAL Support
-K-Lapse Support
-Blocked wakelock (Boeffla)
-Added Hotplug (Core_ctl)
-Added Gentle fair sleepers toggle
-Debloated
-New battery screen animation with percentage
-F2FS Support leading to ~10% faster write speeds compared to EXT4
-Based on Linux version 3.10.108
-Kernel & App update checker
-Balance, Performance, Battery, Gaming and Gaming+ Profiles for NGK & NGK EAS
-Max Cluster Overclock toggles to apply maximum overclock frequencies to Little and/or Big Cluster
-Custom Profile Creator Page that let's you create and share profiles with the NGK community (/SDCARD/NGK/PROFILES/)
-Displays most accurate CPU temperatures for Little and Big clusters separately
-GPU Stats page to show every GPU Frequencies time in state stats
-NGK Stats Page showing last gaming session FPS+ Chart, battery drain, avg CPU temps & avg Battery temps, toggle for enabling NGK Stats Overlay displaying FPS and following optional features:
-CPU Temps/Freqs
-GPU Temps/Freqs
-Battery Temps/Percentage
-App optimization (ART) Button
-PUBG HDR+Extreme config unlocker
-Thermal Switch to select between NoGravity thermal config and stock
-NGK Bootanimation
-NGK Overlay
-PocketMode Switch to turn off fingerprint sensor when device is in pocket or on table face down
-Proximity Gestures Switch to pulse ambient dispay on Hand Wave
-Pick-Up Gesture Switch to pulse ambient display when device is taken
-Pixel 3 Flip to Shhh feature
-Resolution Changer to switch between 1080p FHD and 720p HD resolutions
-Battery Current Limit Switch to disable or enable BCL on low battery percentage
-Sound page lets user download DTS:Eagle apps (Headphone:X or Ultra)
-CPU Temperature Limit slider to set thermal throttling temps
-K-Lapse Night mode and Brightness mode toggles
-Video Recording Codecs Selector (H.264, H.265, H.265+)
-Backlight Dimmer button to help reduce eye strain
-DDR Input Boost toggle
-Apply On Boot to apply user settings on boot
-EAS page to tweak Load tracker, governors and dynamic schedtune boost!
-More info on those in the app
Most of my work will be on Energy Aware Scheduling Kernel version since NGK is really solid and stable,,,
This kernel works on Android 10, PIE and OREO ROMs.
DO NOT FLASH ON STOCK OXYGEN OS! ​
Initial boot might heat up device a bit, which is normal - Let it settle
I recommend before coming to conclusion, give it at least 2 complete charge cycles and then raise any issue.
Max fully stable overclock is Little/Big 1.8GHz/2.1GHz
Both max 1.9GHz and 2.2GHz may be unstable and are not reacheable using app profiles. They still can be reached using the max overclock toggles the app provide.
Flash No_Gravity_Kernel-vX.X.zip file in TWRP (Latest TWRP Recovery Recommanded)
(Optional) - Clear cache and Dalvik
Made your choice?
Download Links
No Gravity Kernel
Anti Gravity Kernel
NGK-EAS (Post#3)
No Gravity App
Anti Gravity Thread
As I put a lot of time and effort into this project, I now accept donations feel free to help me a little
Donate
Older NGK builds
Q-PIE-OREO AOSP Based Roms
Q-PIE-OREO LineageOS Based Roms
v3.2 Q-PIE-OREO AOSP Based Roms
v3.2 Q-PIE-OREO LineageOS Based Roms
v3.1 Q-PIE-OREO AOSP Based Roms
v3.1 Q-PIE-OREO LineageOS Based Roms
v3.0 Q-PIE-OREO AOSP Based Roms
v3.0 Q-PIE-OREO LineageOS Based Roms
v2.7 Q-PIE-OREO AOSP Based Roms
v2.7 Q-PIE-OREO LineageOS Based Roms
v2.6 PIE-OREO-NOUGAT AOSP Based Roms
v2.6 PIE-OREO-NOUGAT LineageOS Based Roms
v2.5 PIE-OREO-NOUGAT AOSP Based Roms
v2.5 PIE-OREO-NOUGAT LineageOS Based Roms
v2.4.2 PIE-OREO-NOUGAT AOSP Based Roms
v2.4.2 PIE-OREO-NOUGAT LineageOS Based Roms
v2.4.1 PIE-OREO-NOUGAT AOSP Based Roms
v2.4.1 PIE-OREO-NOUGAT LineageOS Based Roms
v2.4 PIE-OREO-NOUGAT AOSP Based Roms
v2.4 PIE-OREO-NOUGAT LineageOS Based Roms
v2.3 PIE-OREO-NOUGAT AOSP Based Roms
v2.3 PIE-OREO-NOUGAT LineageOS Based Roms
v2.2 PIE-OREO-NOUGAT AOSP Based Roms
v2.2 PIE-OREO-NOUGAT LineageOS Based Roms
v2.1 PIE-OREO-NOUGAT AOSP Based Roms
v2.1 PIE-OREO-NOUGAT LineageOS Based Roms
v2.0 PIE-OREO-NOUGAT AOSP Based Roms
v2.0 PIE-OREO-NOUGAT LineageOS Based Roms
v1.9.2 OREO-NOUGAT AOSP Based Roms
v1.9.2 OREO-NOUGAT LineageOS Based Roms
v1.9.1 OREO-NOUGAT AOSP Based Roms
v1.9.1 OREO-NOUGAT LineageOS Based Roms
v1.9 OREO-NOUGAT AOSP Based Roms
v1.9 OREO-NOUGAT LineageOS Based Roms
v1.8 OREO-NOUGAT AOSP Based Roms
v1.8 OREO-NOUGAT LineageOS Based Roms
v1.7 OREO-NOUGAT AOSP Based Roms
v1.7 OREO-NOUGAT LineageOS Based Roms
v1.6 OREO-NOUGAT AOSP Based Roms
v1.6 OREO-NOUGAT LineageOS Based Roms
v1.5 OREO-NOUGAT AOSP Based Roms
v1.5 OREO-NOUGAT LineageOS Based Roms
v1.4 OREO-NOUGAT(advanced gestures broken for the LineageOS based ROMs (dt2w works)
Changelog
Public Changelog of private startup builds
post#2 for public released build changelogs.
ScreenShots
See screenshots section at the top of the thread!
​
Credits
ShreyanshLodha, Lord Boeffla, Benschhold, Grarak, Francisco Franco, arter97 and also Shreesha.
Thanks To: ShreyanshLodha for helping me out a bit at the begining and to Utkarsh Omer for deeply testing the kernel before stable releases.
XDA:DevDB Information
NoGravity Kernel, Kernel for the OnePlus 2
Contributors
Pierre2324
Source: [url]https://github.com/Pierre2324/NGK_android_kernel_oneplus_msm8994[/URL]
Version Information
Status: Stable
Current Version: 3.5
Created: 2018-03-15
Last Updated: 2020-09-27
NoGravityKernel EAS​
Kernel Features EAS
Same features as Non-EAS kernel + the following
Energy Model fitting OnePlus 2 and NGK's overclock
Schedtune + Dynamic Schedtune Boosting
Sched and Schedutil Governors
Optional SQRT frequency selection algorithm
PELT & WALT Load Trackers
Prefer Idle tunable
1000Hz Time Interrupt frequency to fit Pixel Phones instead of previous 300Hz
3.18 Kernel Preempt
3.18 CpuFreq upstreams
Using cpu_input_boost driver for event based boosting (replacing cpu_boost)
Many more upstreams and backports to our 3.10.108 kernel
Download Links
EAS Q-PIE-OREO AOSP Based Roms
EAS Q-PIE-OREO LineageOS Based Roms
As I put a lot of time and effort into this project, I now accept donations feel free to help me a little
Donate
Changelog
Public Changelog of private startup builds
post#2 for public released build changelogs.
Source: [url]https://github.com/Pierre2324/EAS_NGK_android_kernel_oneplus_msm8994[/URL]
More info on EAS and the specific implementation for OnePlus 2
EAS | Energy Aware Scheduling
Notice : I will not tell you everything about it.. I'll just do my best to summarise it up and, most importantly, say what's the implementation of it in my kernel compared to newer phones... I don't know everything and may do some mistakes (english mistakes included ) if I do, let me know but still should be on track. I will highlight important words in bold. Also for better kernel tuning, please use my app as its made for our specific implementation of EAS.
Intro: Well Google mostly wanted a better/smarter algorithm to ramp up frequencies than the current cpu-boost driver.. So they started to make the kernel smarter on their 3.18+ kernel seen on Pixel Phones. They wanted to port EAS to their previous phones (Nexus 5x and 6p) having 3.10 kernel like the OnePlus 2 but they didn't.. They started porting it with a pretty basic implementation with a bad energy model, a pretty old version of the battery oriented Per Entity Load Tracking, a pretty basic Schedtune support too and the old Sched governor instead of the newer SchedUtil governor used on current/newer phones. That basic implementation was actually the first releases here on XDA before 3.0 update.
Energy model: At the base of a good EAS implementation there's an Energy Model containing compute capacities and energy cost tuples for each Cluster (big.Little). That way, its possible to estimate the cost of task placement on CPU. Hmm okay that was a big sentence here.. Well to summarise it up, some tasks need more compute capacity to run nicely (smoothly,fast,etc) so need more power which will cost more to run and depending on the task it may need to run on the Big cluster. I say that the kernel is smarter that way, since it will try to set tasks on cores that needs less power to run while still being fast enough for the task. It will also decide to use a shallow core instead of waking another from deeper since the energy model also specify wakeup costs.
What I did for the Energy Model until now: Since the Angler energy model that was used in first releases was pretty bad, I converted it to a frequency / cost model instead of capacity / cost which is now much easier to manipulate instead of speedbins. I then recalculated costs for each frequencies with some graphs including voltages for every frequencies to determine cost for both Cluster. For overclocked frequencies, I had to extrapolate/interpolate trend lines I had in those graphs. That way, we now have an Energy Model that corresponds better to our OnePlus 2 device. Some changes might need to be done later on, but it seems okay for now.
Sched Governor: EAS's Sched or newer Schedutil both use SMP -> Symmetrical multiprocessing instead of previous HMP -> heterogeneous multi-processor found for interactive, ondemand, etc... HMP and SMP both have in mind that multiple CPUs are running, but on SMP no CPU is selected as the Master CPU.. both CPU cooperate as friends.. Well we all know there is a big difference between our little and big CPU and this is why the governor is not alone in EAS..On the other side, HMP knew exactly which cpu was more powerful and while this is good since its easy to implement and fast, this is why its not too battery friendly..
What I did to Sched governor until now: Well no specific feature comes to my mind, but it got optimised alot by backporting amd upstreaming some part of it from higher kernel versions (mostly 3.18)..
Schedutil Governor: Schedutil is the governor every phone uses right now by default I guess. Sched is not even there anymore if I'm not mistaken.
What I did to Schedutil governor until now: Shedutil got backported from 3.18 to the kernel. From my tests, it's been more stable than Sched for below reasons:
o Took less time for the kernel to settle after booting.
o Frequencies stay low and do not jump everywhere when simply looking at the screen.
o Improved latency
Its now possible to switch between them using my app. I wanted to make a comparison between both but couldnt find enough info on them to really tell you precise differences. I can only say Sched is predecessor of Schedutil so I assume Schedutil can only be more efficient.
Load Tracking: Whether its PELT (Per Entitty Load Tracking) or WALT (window assisted load tracking) both increase efficiency since they do not affect frequencies directly and instead of just placing tasks on any cpu it analyzes it and the amount of energy needed for it is estimated. This smart way of doing things make system quicker since it can run more tasks for less energy. This is what EAS is all about.. smoothest UI possible with lowest impact on battery. PELT is more battery friendly as it ramps frequencies up and down slowly.. On the other side, WALT ramps up and down really fast making UI smoother and snappier since every task is done as fast as possible so cpu can idle and go to sleep faster.
What i did to load tracking: I optimised PELT and added WALT.. Its now possible to switch between them using my app.
Comparison between WALT & PELT
Souce: https://fr.slideshare.net/mobile/linaroorg/walt-vs-pelt-redux-sfo17307
Frequency ramp up
Frequency ramp down
As you can see, WALT ramps up way quicker than PELT leading to smoother UI. Also tasks are done more quickly. On the other side, it's also possible to see that PELT may be better is some specific use cases as when another job needs to be done a little after due to it not ramping down frequencies completely. This way, WALT would need to ramp up again while PELT would be ready.
Schedtune: Exposes 2 tunnables to userspace: schedtune boost and schedtune prefer idle into cgroups. There are actually 4 cgroups background, foreground, rt and top-app. The first tunable (schedtune boost) takes an integer between -100 and 100, 0 being the default value meaning the most energy efficiency which means that it will be using the lowest frequency to do what it needs. An higher value will add an % offset to the normally used frequency. The second tunable (schedtune prefer idle) when set to 0 (default value) will simply do what EAS says it to do. When set to 1 it will prefer setting tasks on idle cores to reduce latency. Pretty easy to say the second one is less energy efficient.
What I did to Schedtune: Some improvements to it have been added for sure since first release. I've set top-app
default value to 1 instead of 0 to bias tasks on big cores. This way, it also improves latency for Dynamic Schedtune Boost.
Background has been set to -10 to reduce its impact. Gaming and Gaming+ profiles are using more aggressive values so they are not recommended for other tasks than gaming as this may give you higher battery drain during normal usage.
Dynamic Schedtune Boost: It's pretty easy to understand and its a pretty nice feature made initially by joshuous on the OnePlus 5 if Im not mistaken. It simply sets a user specified value to schedtune boost dynamically a cgroup so it can go back to 0 afterwards to not hurt battery. It's mostly used in cpu-boost for input boosting.. Then why not just use the input boost that worked well on HMP? Well to that I would say: how do you know the input boost frequency value you've set is the correct one for what your specific usage? Input boost will boost to a user specified value but what if that value is okay for chrome but too high for simply scrolling in a text file? Well that's it.. EAS is able to find the frequency needed depending on usage + the dynamic boost it will simply make things faster and smoother by adding a positive offset to the frequency used but dynamically so it can revert back to 0 afterwards and save battery while phone is actually doing nothing or when your simply looking at the screen.
What I did to dynamic schedtune boost untill now:Well I added it to our kernel by backporting the feature from a pixel kernel and adapted it to our phone. Due to some limitation we can only dynamically boost top-app.. at least for now.. I could add other cgroups quite easilly but its not really needed as top-app is the most important/effective one. I'll add more later if its actually needed.
To tweak it: Use the EAS page in my app... make sure you don't set any frequency boost in any kernel manager, tweak input boost ms and dynamic stune boost value. Note: enabling Dynamic Schedtune Boost in my app will automatically erase any previously set input boost frequency so it works correctly.
PowerHAL: For proper EAS people say it needs proper PowerHAL.. The kernel itself cant make what a PowerHAL can do since it cant read some userspace events and all. Lets say boost on input touches can be done with a good PowerHAL so less job is done by the kernel.
What I did for PowerHAL untill now: Well I'm aware of what a PowerHAL could bring tho no PowerHAL has been done for EAS on for old kernels.. That doesn't mean I couldn't modify a newer one to fit our phone but I made a lot of tweaks in the kernel directly to prevent that. A PowerHAL is compiled with a ROM directly so could be harder to replace. So what I did is put some nice features to mimic PowerHAL behaviours like Dynamic Schedtune Boost, DevFreq boost on app launches, fingerprint boost and more nice features directly in kernel that allows (for some of them) to be tuned by the user.
More features and development can be seen in changelogs.
If you have any questions feel free to post them. If I made any mistake feel free to correct me.
Changelog:
Previous Changelogs:
3.4.1 Build:
Kernel:
Revert latest LPM changes to fix a blackscreen issue
NoGravity Kernel App v3.4.2:
General:
Updated Profiles
New App & Kernel Update checker
Small fixes
OnePlus 2:
Nothing specific to OP2 added
Pocophone-Mi8:
Modified NGK Thermals to fit NGK thermal locking mecanism
DT2W Toggle added to Kernel Page (mainly for OOS)
Updated Backlight Dimmer
New NGK stats page
-Shows last session average FPS
-NGK overlay service toggle to show FPS,CPU & GPU stats in real time on screen
3.4 Build:
Kernel:
Faster app opening
Added Memfd call for new Android 10 ROMs
Various CPU, GPU, devreq & cpubw optimisations
Proper DDR bus boost when rendering frames to the display (to fit our old kernel)
And more under the hood changes
Kernel EAS:
Updated to latest NGK changes
*Notes :
-I would recommend turning off No Gravity app toast notifications from Magisk Manager app.
3.3 Build:
NoGravity Kernel App v3.3:
General:
Updated Profiles
Lowered Magisk Toast Messages*
Max GPU Freq Selector
Added an option to refresh GPU Stats
Updated descriptions
OnePlus 2:
DDR Input Boost Toggle
Pocophone-Mi8:
New GPU Page:
-GPU Stats
-KLapse (Brightness and Daytime modes)
-Backlight Dimmer
Kernel:
Faster app opening
DDR Bus boost on input now disabled by default (use my app to enable it again)
Backported,cleaned up some GPU stuffs
Removed some bloat
Lowered heat and battery drain
Many optimisations
And more under the hood changes
Kernel EAS:
Updated to latest NGK changes
Fixed a notification/call sound distortion
*Notes :
-I would recommend turning off No Gravity app toast notifications from Magisk Manager app.
3.2 Build:
NoGravity Kernel App v3.2:
General:
Updated Profiles
Auto-dismiss Apply on boot notification
Updated descriptions
OnePlus 2:
Fixed App opening on AGK
Fixed EAS Dynamic Schedtune Bug
Pocophone:
New Kernel Page to let you control:
-Thermals:
Stock one || Evaluation (NGK’s default)
-Thermal Suspend API:
OFF || ON (NGK's default)
-Battery Thermal Throttling Removal:
OFF || ON (NGK’s default)
-SELinux Switch:
Enforcing (NGK’s default) || Permissive
New DTS Eagle (Sound) Page
Kernel:
Faster app opening
DDR Bus boost on input (Q Gestures, Animations are much better)
Various changes to make the UI smoother
Backported some small changes from the Pocophone F1 kernel (gpu, cpuidle)
Better Dynamic FSync
Removed some bloat
Many optimisations
Blackscreen fix (Device screen not turning on issue)
And more under the hood changes
Kernel EAS:
Updated to latest NGK changes
Quite a lot of EAS,Sched,Cpufreq,LoadTracking changes
*Notes :
-Make sure you flash Magisk after flashing the kernel
-As always when you wipe cache and dalvik, make sure you charge atleast once overnight so ART Optimisation does its job while charging at 100%.
3.1 Build:
NoGravity 3.1 App:
Pocophone support added (Profiles and cluster temps only for now)
Small fixes/optimisations
*Notes :
-You may need to uninstall previous app for it to install
-I recommend using my app over others to tweak EAS kernel since its made for the specific OnePlus 2 implementation
Kernel:
Debloated the kernel leading to smaller kernel
Compiling Optimisations
Removed Simple Low Memory killer (Yea algorithm is better but too aggressive even if its made for 4GB devices) This also fixes some black screen issues.
Improved latency
And more under the hood changes
Updated to latest LineageOS changes
Kernel EAS:
Updated to latest NGK changes
*Notes :
-Make sure you flash Magisk after flashing the kernel
3.0 Build:
NoGravity 3.0 App:
Fixes for Android 10
New EAS page to change Load tracker, governor and enable dynamic schedtune boost!
Added 60FPS app download link since NGK now supports 60FPS
Boot delay removed
No more annoying persistent notification!
Thermals and codecs switching should now work for everyone
DTS Eagle page updated
Adapted profiles for EAS
Small fixes/optimisations
*Notes :
-You may need to uninstall previous app for it to install
-I recommend using my app over others to tweak EAS kernel since its made for the specific OnePlus 2 implementation
Kernel:
60FPS Video Recording support added (This app is needed)
New more efficient Simple Low Memory Killer
CPU-Boosting, Fingerprint, Cache, MMC & Sched optimisations
Improved F2FS (700 commits+) averaging about 10% better write speeds over EXT4 in my tests
Battery improvements (mostly to screen off drain)
And more under the hood changes
Adapted to Android 10
Updated to latest LineageOS changes
Kernel EAS:
Rebased completely to make video recording work
1000Hz Time Interrupt frequency to fit Pixel Phones instead of previous 300Hz
Energy model:
-Now uses frequencies instead of capacity
-Recalculated to fit OnePlus 2 frequencies + NGK’s Overclock
CPU Boost driver:
-Added and fits EAS
-Input boost tunable added*
-Various boost events added
Schedtune:
-Modified boosting
-Dynamic Schedtune Boost added
New prefer_idle tunable
Schedutil governor added!
-Window Assisted Load Tracking (WALT) added + optimisations and integrated along already
existing Per Entity Load Tracking (PELT)
Sched governor:
-Improvements
-WALT & PELT improvements
Preempt:
Backport preempt from 3.18 kernel
CPUfreq:
-Upstreams to 3.18 and some hooks from 4.9
A lot of Upsteams/Backport from 3.18 to our 3.10 kernel
A lot of Scheduler improvements
Updated with latest NGK changes
And more under the hood changes
Adapted to Android 10
2.7 Build:
NoGravity 2.7 App:
New Backlight Dimmer feature added to GPU page
*Notes :
-You may need to uninstall previous app for it to install
Kernel:
Fixed stucked on 1+ logo while charging issue
While at it, improved that charging screen with battery percentage and colors
Fixed big cores turning off randomly or when gaming resulting in same/constant performance for every sessions or benchmark
Updated to latest LineageOS changes
2.6 Build:
NoGravity 2.6 App:
New App Settings Page
Fast NGK App opening after boot toggle added to app settings*
New Camera Page
New video recording codecs switches added => H.264(Default), H.265(Lower file size) and H.265+(Better Quality)*
Kernel:
DeepSleep issue is fixed!
Reworked Battery profile to make it usable and quite smooth
Battery optimisations
AdrenoBoost modifications to fit NGK’s GPU Overclock and help battery
BCL modifications
Little faster app opening speeds
UI optimisations
Updated to latest LineageOS changes..
[/STRIKE]Placed some performance-critical IRQs and kthreads onto the performance CPU cluster in order to improve performance[/STRIKE] (2.5.1 feature removed in 2.6 to fix deep sleep issues)
And more under the hood changes
*Notes :
-Possibility to remove the delay before opening the app after boot. This works on new ROMs. Old ROMs like Shreesha’s Pixel Experience will need the delay to be enabled.
-H.264 is default OnePlus 2 codecs. H.265 (lowered bitrates) will give you same quality but much lower file sizes. H.265+ may give you slightly better quality with same(stock) bitrates (same file sizes). Best file size reduction will be seen in 4K.
2.5.1 Build:
NoGravity 2.5 App:
Same app just updated Android File Host link because of the "no mirrors found" issue...
Kernel:
Smoothness improvements
GPU maximum frequency is now 650MHz on balance profile instead of 450MHz since not everyone uses profiles and some people like to game on balance too. This will give better gaming experience on default profile.
[*]Random phone not waking up after going in DeepSleep issue should be fixed not fixed will be in next build go 2.4.2 instead if you encounter this issue
Updated to latest LineageOS changes.. Video recording fixed!
2.5 Build:
NoGravity 2.5 App:
K-Lapse Night & Brightness modes toggles added to GPU page
Max overclock toggles states after reboot fixed
No Gravity EAS support
Kernel:
Lowered minimum brightness
Minimum brightness tunable added
K-Lapse Support added
Smarter GPU decisions leading to better battery
Fixed an issue where the device could get laggy for some time after DeepSleep
Placed some performance-critical IRQs and kthreads onto the performance CPU cluster in order to improve performance
Fixed Slimbus Overclock (Old feature now added correctly)
Kernel EAS (EXPERIMENTAL)*:
First build!
Same features as NGK without extra governors
Sched Governor and Schedtune added
*Notes : this is an experimental build and will be updated and tweaked in futur releases… so battery/performance/smoothness might not be the best for now
2.4.2 Build:
NoGravity 2.4.2 App*:
Fixed Profiles QSTile
Still Secret feature for now will update changelog later...
Kernel:
Fixed a major battery drain issue
*Notes : If app doesn't install just uninstall previous app version before installing the new one.
2.4.1 Build:
No Gravity 2.4.1 App*:
CPU temperature colors fixed
Secret feature revealed: AGK Kernel support
Kernel:
Fixed Random annoying Kernel Panic after reboots
Fixed some little tweaks that were not applying correctly
Kernel smoothness and performance will now be more consistent after waking up/deepsleep
Some minor under the hood changes
*Notes : Uninstall previous app version before installing the new one.
2.4 Build:
No Gravity 2.4 App:
Yea you read it right, it's back and better!
Apply on boot behavior updated.. The app now detects when it gets root access and notifies the user it's ready to be opened.
New Sound tab including both DTS:app downloads (Headphone:X and Ultra)
Fixed some parts of profiles not applying correctly
PocketMode now disables Double Tap 2 Wake on LineageOS based ROMs also
Startup screen updated
Fixed a small issue for Max overclock toggles
Added colors to CPU temperatures
New More-Info "(i)" buttons
Kernel:
Lineage based kernel rebased for smoothness and fixed camera on latest LineageOS Rom
AOSP updated to boot on new/upcoming AOSP Roms
Undervolted for better battery life
Tweaked wakelocks for better battery life
Kernel and Profiles optimisations for battery life, performance and smoothness
Optimised kernel compilation for performance
Interactive governor optimisations for performance and smoothness
Max screen off frequency and more settings added to Interactive governor (Default 960MHz)
Brought back lost GPU AdrenoBoost parameter
DTS Eagle Drivers added for better sound (Working with latest Headphone X and Ultra)*
Disabled ZRAM entirely instead of having it low
Kernel now sets NOOP I/O Scheduler when screen goes off for better battery life and reduced resume latency
Calmed down phone vibration intensity
*Notes : I would recommend Headphone X for customizations.. You can get the flashable apps and read more about them in my app or here: https://forum.xda-developers.com/android/software/port-dtsx-ultra-dts-headphonex-t3896233
2.3 Build:
No Gravity 2.3 App:
Pixel 3 Flip to Shhh feature added (Beta feature may drain battery)
PocketMode now disables DT2W when device is in pocket (DT2W may get disabled, yea thats a small issue that can happen so you need to enable it again in your favorite kernel tweaker app)
Less sensitive pickup wake
Fix Max OC on little cluster when apply on boot enabled
Fix temperature limit slider initialisation
Profiles tweaked for battery life and performance
Kernel:
HotSpot fixed! kernel updated to latest LineageOS changes
SIO and FIOPS I/O Scheduler added
Even faster app opening speed
FingerPrint Optimizations
Kernel tweaks for battery life and performance
Many kernel optimisations
*Notes : If apps do not seem to open fast after an update, charging the phone overnight fixes it. After a clean flash, full art cache is generated only when phone is idling at charging with 100% battery.
2.1 Build:
No Gravity 2.2 App:
Fix “on device shutdown” operations for Android PIE
Fix app opening check right after booting
No more in app lag
Unified Notification for services
No Gravity Spectrum 3.1 App:
New GPU Stats page to show GPU frequencies time in state stats
Big Cluster’s Cores behaviour has been reworked for Pie. This leads to better performance and battery for corresponding Profiles (see post below for more details)
Advanced Descriptions Popups fixed (on long click of titles ending with "*")
Pick-Up device to pulse Ambient Display [Still Experimental] may get app force close when device moves too much I will still try to fix this in future builds
Kernel:
Super fast app opening speed*
Big Cluster’s Cores fixed
Faux Sound Control partially added: Mic & Headphone boost
GPU time in state table like CPU added
Kernel, CPU & Memory Optimisations added
*Notes : If apps do not seem to open fast after updates from now on, as weird as it looks, charging the phone overnight fixes it. Me and my testers couldn't find why this happens.
2.0 Build:
No Gravity Spectrum 3.0 App:
Android Pie Support added
Pick-Up device to pulse Ambient Display [Experimental] may get app force close when device moves too much this will be fixed in future builds
Kernel:
Some Pie commits added
Little Cluster now disables (hotplugs) cores correctly
1.9.2 Build:
No Gravity Spectrum 2.4 App:
App now works with any DPI!
Resolution changer
Changes were made to every profiles.. they are now more battery friendly
(Take a look at Post#3 for more details)
Switches can now be toggled by pressing their description
Updated descriptions (including on long click of titles)
Kernel:
USB 3.0 max. charging rate improved (from 500mA to 900mA)
Wake boost module added
Latest Lineage based ROMs Notification LED fix
1.9.1 Build:
No Gravity Spectrum 2.3.1 App:
App speed is now as fast as before
Bug fixes
No Gravity Spectrum 2.3 App:
Proximity Gestures Switch added to pulse ambient display
Added an option to Save and Load Voltage configs
Toggles to apply maximum cluster overclock (Little: 1.9GHz | Big: 2.2GHz)
Apply on boot switch added to Profiles and Performance+ section
Kernel:
Wireguard support added
Updated No Gravity flash screen logo
1.9 Build:
No Gravity Spectrum 2.2 App:
Voltage control added so it fits my kernel
Getting Root Animation added
Black screen bug fixed(if encountered again just kill from recents and open again)
High dpi device fixed (min 380 max 500+)
Set ZEN I/O scheduler for balance and performance profiles
New Thermal Switch description
Now app sets balance profile just before the device shuts down/reboot to ensure beginning of next boot uses stock frequencies* (fixes boot issues on some devices)
Kernel:
Set ZEN as default I/O scheduler
Added back 1.9GHz frequency as Little Cluster now never use overclocked frequencies during boot time (max stable overclock still 1.8GHz)
Added Dynamic Fsync
Added back BFQ IO scheduler
Added missing governors(Chill, Relaxed) to Lineage build
Added missing Maple I/O Scheduler to LineageOS build
Added missing Adreno Idler switch to kernel tweak apps to LineageOS build
And more CPU optimisations…
*Notes : boot crashes should be close to not present anymore, but for the people who faced them in previous builds, it's highly recommended to install/update the new " NoGravity Spectrum v2.2 " apk and run it before flashing the rom
1.8 build:
No Gravity Spectrum 2.1 App:
No Gravity theme
Thermal Selection switch added to select between stock or no gravity’s thermal config
Pocket Mode switch added (Quick Setting tile also included)
SELinux switch added
BCL switch added
Kernel:
Removed 1.9GHz frequency on Little Cluster (fixes boot for the remaining non booting devices)
Fix voltage Controls that wasn’t working properly (voltage control guide added to xda thread post#199)
Added missing big cluster frequencies in voltage control tab
Added ZEN I/O Scheduler
Fingerprint optimisations
And many kernel optimisation…
1.7 build:
Brought back unlocked frequencies (Little 1.9GHz | Big 2.2GHz) more info in notes section of OP
Returned to stock thermal config
Modified Spectrum app support (details about every profiles in Post#2)
Gaming heating issues fixed using Gaming/Gaming+ Spectrum profiles
Added Voltage control
Undervolted Little and Big 302MHz(idle) frequencies for lesser standby battery drain
Optimised Spectrum Profiles for NoGravity
Re-enabled Battery Current Limit (BCL)
Added Temperature throttle control
1.6 build:
Various Random Reboot Fixes. now this NoGravity kernel should be stable!
Big Cluster max frequency is now 2016MHz (more testing will be done for higher frequencies wanted to have a completely stable build)
Faster Charge over USB
Now Big Cluster boots without overclock (Just like the Little Cluster does)
Added lost Big Cluster 1766MHz frequency
1.5 build:
LineageOS support! There are now 2 versions AOSP && LineageOS.
Disabled Battery Current Limit (BCL) that turns off cores when under 20% battery.
CPU Underclock Little && Big 384MHz-> 302MHz.
Rollback to 1.8GHz on the little cluster as 1.9GHz frequency is not
fully working for everyone will do more testing if you want that freq back

			
				
Install this Kernel on AOSiP
All fine so far seems very smooth and stable.
The temperature also looks good. I will continue testing but I think this is a promising project. Thank you:good::fingers-crossed:
Does it have under volting support?? So that reducing the voltages can also reduce temps while using the device at OC frequencies.
chintu1234 said:
Does it have under volting support?? So that reducing the voltages can also reduce temps while using the device at OC frequencies.
Click to expand...
Click to collapse
not yet I will try to implement it on a later update
fonfox said:
Install this Kernel on AOSiP
All fine so far seems very smooth and stable.
The temperature also looks good. I will continue testing but I think this is a promising project. Thank you:good::fingers-crossed:
Click to expand...
Click to collapse
Thanks good to know it works on AOSiP Rom!
Gestures are not working on LOS 15.1 Shreesha's latest Build otherwise phone has become more snappier than before and no phone heating issue faced for a whole day
Good news! 1.5 builds for AOSP and latest LineageOS based ROMs are coming...
rahul9871 said:
Gestures are not working on LOS 15.1 Shreesha's latest Build otherwise phone has become more snappier than before and no phone heating issue faced for a whole day
Click to expand...
Click to collapse
Thanks for trying my kernel! What a surprise it worked on LineageOS I didn't expect that, I am compiling right now the 1.5 update that will work on LineageOS and AOSP.
Thanks for Update
It is a safety reason that the 1.9GHz stage for little is eliminated. With me the V1.4 ran without problems at 1.9GHz.
V1.5 little max frequenzie is now 1804MHz but its enough. Also min Step 302MHz is fine
Sot is fine with all time overclocked
V1.4 and last time with updated V1.5
fonfox said:
Thanks for Update
It is a safety reason that the 1.9GHz stage for little is eliminated. With me the V1.4 ran without problems at 1.9GHz.
V1.5 little max frequenzie is now 1804MHz but its enough. Also min Step 302MHz is fine
Click to expand...
Click to collapse
for me too it ran without problem, the reason is that it wasn't working for everyone. Some had bootloops. We'll see in the futur...
fonfox said:
Sot is fine with all time overclocked
V1.4 and last time with updated V1.5
Click to expand...
Click to collapse
How old is your phone?
shrimetal said:
How old is your phone?
Click to expand...
Click to collapse
Nearly 2 years but bsttery is fine
And this Screenshot is with half day wifi usage
Compared to stock kernel battery life on this kernel is equal or better.
I'm also do not gaming etc.
Which app to overclock?
VinX90 said:
Which app to overclock?
Click to expand...
Click to collapse
Kernel Adiutor from Playstore
Why you don't read the OP first Post
Thanks @ Pierre2324 for lastest version of your kernel. Gestures are working again on LOS 15.1
rahul9871 said:
Thanks @ Pierre2324 for lastest version of your kernel. Gestures are working again on LOS 15.1
Click to expand...
Click to collapse
Thanks to you for using my kernel!

[ZeusROM/KERNEL][N960F/N][Q][BLKMQ|WBT|GCMA|LTO|SimpleLMK]-Truly Most Powerful Kernel

Hello, XDA! Me and @Da-BOSS would like to publish the Ultimate Kernel - Zeus :victory: .
Without too much hassle, let's see what this Kernel brings to our beloved Note 9.​
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Behold the wall of features
Android Q kernel is based from Google sources Android-Q branch with applied on top of it Samsung's kernel sources.
Since there is no more ELS repository for Android Q kernels.. I made a branch on the same repository on Github called [ZeusELS] which is purely a completely stock kernel with linux upstreamed always to the latest :angel: that's if anyone wanted to develop a new kernel from scratch also.. ZeusELS is based from Google sources Android-Q branch with applied on top of it Samsung's kernel sources too ! :fingers-crossed:
Download links are always at the end of this post
ZeusROM Features for Android Q
[*] It is just simply a replicate of DevBaseROM from @_alexndr but with more debloats and Zeus Kernel ready inside... just flash it and it is ready
Kernel Features for Android Q
Imported N960FXXS4DTA5 kernel sources
Used updated ramdisk N960FXXS4DTA5
The kernel is now compiled with GCC 10.0.1 along with LTO [Link Time Optimization] using the latest updates available for [isl,mpc,mpfr,zlib,etc..] GCC is self compiled with all kind of flags optimizations applied for maximum performance benefits and increase code quality
Using GCC LTO with all fixes and optimizations which leads to faster kernel operations and less kernel code bloating which will lead to less kernel size in which allows me to make room and use O3 kernel optimizations which will increase kernel size a little bit for results in significantly improved hackbench performance, which is a sign that overall performance in the kernel is improved. It works especially well in conjunction with LTO.
Implemented/Using [W.B.T.] Write Back Throttling driver which increases IO performance and smoothness of the kernel operating generally.. what it does is...
[Enable throttling of buffered writeback to make it a lot
more smooth, and has way less impact on other system activity.
Background writeback should be, by definition, background
activity. The fact that we flush huge bundles of it at the time
means that it potentially has heavy impacts on foreground workloads,
which isn't ideal. We can't easily limit the sizes of writes that
we do, since that would impact file system layout in the presence
of delayed allocation. So just throttle back buffered writeback,
unless someone is waiting for it.]
Implemented hybrid poll mode With this hybrid scheme, we can achieve big latency reductions while still using the same (or less) amount of CPU.
Implemented various patches from 4.10/4.14/4.19 imported
Simple LMK! first in the history of Samsung smartphones with all updates and patches applied
Undervolted everything on the SOC from RAM,CPU,Camera,CPU Bus,etc..
Reduced SELinux expensive calls for audit and disabled entirely
Updated SchedUtil to the latest patches & updates
Updated SchedUtilX to the latest patches & updates
Implemented IOwait and Use it + Make IOwait boost more energy efficient
Re-adjusted Samsung values on nearly everything volts,battery,ram,etc..
Using the S10/N10 Values to our beloved Note9 for Exynos hotplugging drivers
Using CPU Assist driver and updated its values
Disabled all kind of Debuggings, loggings, tracings aggressively kernel size is under 30MB!
Boost DevFreq whenever a new frame kicks
Added PowerSuspend Driver which will help on battery saving extensively and integrated it to display driver
Using HTC's Fsync named [Asynchronous Fsync] and made it working as default for Note 9
Implemented Sched Yields to force sleep whenever it kicks in
Moved MMC driver to SCHED_FIFO thread to reduce the impact of
load on IO performance.
Applied O3 compiling flags to Crypto drivers for increase performance
Tuned Up ALMK [Adaptive LowMemoryKiller] values and use it by default
Adapted and Implemented Force Reclaim driver from Lenovo and use it by default
Killed Samsung's poor RBIN memory management
Implemented CMA from Qualcomms devices and Use it as a replacment of Samsung's RBIN here what does it do..
[CMA pages are designed to be used as fallback for movable allocations
and cannot be used for non-movable allocations. If CMA pages are
utilized poorly, non-movable allocations may end up getting starved if
all regular movable pages are allocated and the only pages left are
CMA. Always using CMA pages first creates unacceptable performance
problems. As a midway alternative, use CMA pages for certain
userspace allocations. The userspace pages can be migrated or dropped
quickly which giving decent utilization.]
Introduce and Implement and Use GCMA [Guaranteed Contiguous Memory Allocator] read below what it does..
[While demand for physically contiguous memory allocation is still alive, especially in embedded system, existing solutions are insufficient. The most adapted solution is reservation technique. Though it serves allocation well, it could severely degrade memory utilization. There are hardware solutions like Scatter/Gather DMA and IOMMU. However,
cost of these additional hardware is too excessive for low-end devices. CMA is a software solution of Linux that aims to
solve not only allocation but also memory utilization problem. However, in real environment, CMA could incur unpredictably slow latency and could often fail to allocate contiguous memory due to its complex design. We introduce a new solution for the above problem, GCMA (Guaranteed Contiguous Memory Allocator). It guarantees not only memory space efficiency but also fast latency and success by using reservation technique and letting only immediately discardable to use the area efficiently. It shows 15 to 130 times faster and more predictable allocation latency without system performance degradation compared to CMA.]
Implement binderfs for Andorid IPC
Wakelock Blocker is used by default and it already blocks the needed wakelocks by default
Added DropCache feature which will help with memory management on the long run
Tuned Adaptive LMK to work Asynchronously
Implemented ZRAM Deduplication feature which will..save amount of memory usage by zram. Read below the benefits...
[Android is one of the biggest users to use zram as swap and it's
really important to save amount of memory usage. There is a paper
that reports that duplication ratio of Android's memory content is
rather high. And, there is a similar work on zswap that also
reports that experiments has shown that around 10-15% of pages
stored in zswp are duplicates and deduplicate them provides some
benefits.]
Implemented ZSWAP same-filled pages handling feature look below what does it do..
[Zswap is a cache which compresses the pages that are being swapped out
and stores them into a dynamically allocated RAM-based memory pool. This patch adds a check to identify
same-filled page before compression of the page. If the page is a
same-filled page, set zswap_entry.length to zero, save the same-filled
value and skip the compression of the page and alloction of memory in
zpool. Improvemnt in preformance varies between 19% ~ 32% increased performance in store time & 49% ~ 85% increased performance in loading time]
Implement B-tree function and Made ZSWAP to Use it by default which will lead to the following IO bogo operations: * original: 73778.8 * btree: 393999
WireGuad using the latest version always
Added MoroSound!
Brought a collection of Paranoid Android & Xiaomi patches to our beloved Note9 devices
Tuned UFS net boost table
Speed up scatterlist to roughly a 2x performance gain & Speed up cache entry creation for mbcache2
Implemented some fucntions & drivers from 4.14 Kernel and use it on Note 9 [which have 4.9 Kernel]
Using Jump Lable on the kernel read below what does it do..
[This option enables a transparent branch optimization that makes certain almost-always-true or almost-always-false branch conditions even cheaper to execute within the kernel.
Certain performance-sensitive kernel code, such as trace points, scheduler functionality, networking code and KVM have such branches and include support for this optimization technique.
If it is detected that the compiler has support for "asm goto", the kernel will compile such branches with just a nop instruction. When the condition flag is toggled to true, the nop will be converted to a jump instruction to execute the conditional block of instructions.
This technique lowers overhead and stress on the branch prediction of the processor and generally makes the kernel faster.]
Using Jump Lable Relative References on the kernel read below what does it do..
[Reduce the size taken up by absolute references in jump label
entries themselves and the associated relocation records in the
.init segment, add support for emitting them as relative references
instead.This reduces the size of the __jump_table by 33%, and
gets rid of the RELA section entirely.]
Improve ION cache accounting
Added Fingerprint Boost Driver
Low Memroy Killer features... LMK Fast RUN, OOM Reaper, Process reclaim
Updated ZRAM & ZSWAP with LZ4,ZSTD,LZO compression algorithm
Implemented Devfreq Boost driver and updated it... look below what it does
"This driver boosts enumerated devfreq devices upon input, and allows for
boosting specific devfreq devices on other custom events. The boost
frequencies for this driver should be set so that frame drops are
near-zero at the boosted frequencies and power consumption is minimized
at said frequencies. The goal of this driver is to provide an interface
to achieve optimal device performance by requesting boosts on key
events, such as when a frame is ready to rendered to the display."
Introduced a centralized Energy Model (EM) management framework which aggregates the power values provided by drivers into a table for each performance domain in the system.
Using always the latest GCC 10 Build with LTO self compiled
Added battery Store mode [used to limit charging] advanced use only & Unstable power detection driver and made it optional through HKTweaks app (Google it)
Added battery charging control!! [The first on XDA & outside XDA]
Kernel size decreased from 39MB to 28~29MB from the debloating the kernel! [Truth to be told the Lightest Kernel on XDA & Outside XDA]
WireGuad using the latest version always
Added MoroSound! because many requested it
Optimized GPU futher by speeding up rendering frames to the display driver
Disabled security options that reported it might slow down kernel operation upto 30% [Thanks @arter97!]
Tuned UFS net boost table
Fixed CPUSet driver & updated block core for faster operations
Optimized block driver that should help shaving off a few cycles of the I/O hot path
Improve event-poll driver which make wakelocks less likely to happen
Improved/Optimized hrtimer, alarmtimer, timers drivers
Added Spinlocks, Qspinlocks, RWLocks, QRwlock, Atomic drivers & updated it
Optimized Dcache & ARM driver to improve cache-line alignments performance
Optimized CGroup to have a dedicated kmem_cache pool and avoid costly dynamic memory allocations.
Dynamtic Shedtune driver implemented and updated it with the latest patches
Clean up garbage/unused codes from CPU governers
Optimized IO up to 34% improvement in the I/O latency.
Removed a lot of garbage code and cleaned it up
Updated lib lz4 modules from 2013 to 2018/2019 including all updates which makes it possible to enable applications to use fast and/or high compression depending on the use case
State notifier driver enabled
Linux Up streaming kernel updated to the latest always
Applied PSI driver on RAM , CPU , IO Drivers... see what it does...
[When systems are overcommitted and resources become contended, it's hard to tell exactly the impact this has on workload productivity, or how close the system is to lockups and OOM kills. In particular, when machines work
multiple jobs concurrently, the impact of overcommit in terms of latency and throughput on the individual job can be enormous.
In order to maximize hardware utilization without sacrificing individual job health or risk complete machine lockups, this patch implements a way to quantify resource pressure in the system.]
Compiled it with GCC 10 with the latest updates applied & custom optimizations is used
Implemented FRANDOM
Fade Ramp Control
SELinux Permissive/Enforced
Boeffla WakeLock Blocker
Added Unstable Power Detection through HKTweaks app (Google it)
CPU Max Freq for LITTLE - Max Freq 2002MHz Min Freq - 455Mhz
CPU Max Freq for BIG - Max Freq 2946MHz Min Freq - 650Mhz
Sky's the limit.. OC'ed CPU Quad Core to 2.31Ghz & Dual Core to 2.65Ghz! [Default on stock kernel is 1.8GHz Quad & 2.3GHz Dual]
Implemented Power saving work-ques and made it optional for those who don't like power saving
Updated F2FS to the latest updates taken from Android-Q Google sources! needs ROM modifications to get F2FS working on /data partition
HMP is synced with Googles latest scheduler changes
Kernel Features for Android Pie
Imported N960FXXU4CSK1 kernel sources
Used updated ramdisk N960FXXU4CSK1
Implemented Devfreq Boost driver and updated it... look below what it does
"This driver boosts enumerated devfreq devices upon input, and allows for
boosting specific devfreq devices on other custom events. The boost
frequencies for this driver should be set so that frame drops are
near-zero at the boosted frequencies and power consumption is minimized
at said frequencies. The goal of this driver is to provide an interface
to achieve optimal device performance by requesting boosts on key
events, such as when a frame is ready to rendered to the display."
Taken SDCard drivers from Note10.
Introduced a centralized Energy Model (EM) management framework which aggregates the power values provided by drivers into a table for each performance domain in the system.
Possible fix for 1950Mhz to be forced to 2GHz
Added & enabled BBR tcp optimizations and networking operations optimizations... using fq_codel+bbr
[Observed a significant increase in BBR throughput (measured using netperf), in a basic wifi setup.]
Implemented further more CPU optimization for power consumption from Nvidia!! to Enhance power efficiency and adapted it to our Note9 device
Using always the latest GCC 10 Build with LTO self compiled
Optimized UKSM function and KSM along with it
Add ROW scheduling algorithm & ROW driver... mechanism of it is...
[The ROW scheduling algorithm will be used in mobile devices as default
block layer IO scheduling algorithm. ROW stands for "READ Over WRITE"
which is the main requests dispatch policy of this algorithm.
The ROW IO scheduler was developed with the mobile devices needs in
mind. In mobile devices we favor user experience upon everything else,
thus we want to give READ IO requests as much priority as possible.
The main idea of the ROW scheduling policy is:
If there are READ requests in pipe - dispatch them but don't starve
the WRITE requests too much.]
Added battery Store mode [used to limit charging] advanced use only & Unstable power detection driver and made it optional through HKTweaks app (Google it)
Added battery charging control!! [The first on XDA & outside XDA]
Made automated driver for read-ahead size decision when inserting any OTG/USB external storage on the device to optimize file processing performance.
Kernel size decreased from 39MB to 34.9MB from the debloating the kernel! [Truth to be told the Lightest Kernel on XDA & Outside XDA]
WireGuad using the latest version always
GFS - Gentle Fair Sleepers options provided to have more battery life
Added MoroSound! because many requested it
Initial support for Nethunter users
Optimized GPU futher by speeding up rendering frames to the display driver
Disabled some security options that reported it might slow down kernel operation upto 30% [Thanks @arter97!]
Added/Implemented UKSM
Brought a collection of Paranoid Android & Xiaomi patches to our beloved Note9 devices
Tuned UFS net boost table
Fixed CPUSet driver & updated block core for faster operations
Optimized block driver that should help shaving off a few cycles of the I/O hot path
Added SIMD & VSDO Technology
Added Power suspend driver and integrated it to display driver
Improve event-poll driver which make wakelocks less likely to happen
Improved/Optimized hrtimer, alarmtimer, timers drivers
Added Spinlocks, Qspinlocks, RWLocks, QRwlock, Atomic drivers & updated it
Added Dynamic Fsync driver and made it available with normal Fsync driver
Introduce CPUSet Assist driver for optimized multitasking
Optimized Dcache & ARM driver to improve cache-line alignments performance
Optimized CGroup to have a dedicated kmem_cache pool and avoid costly dynamic memory allocations.
Added Sweep2wake, Doubletap2wake and Sweep2sleep for Samsung Galaxy Note 9
CPU Input driver implemented and updated
Micro-optimizations for Ion driver, Binder, PCI Exynos drivers, hotplug driver,F-ECM driver.
CPU-Boost driver implemented and updated to the latest version including all kind of patches and updates from Sony,Xiaomi, and Nvidia
Dynamtic Shedtune driver implemented and updated it with the latest patches
Clean up garbage/unused codes from CPU governers
Optimized IO up to 34% improvement in the I/O latency.
Using Galaxy S10 + Note 10 HMP extracted drivers combined and implemented it to our be loved Note 9!
Introduced [Host Performance Booster] HPB driver from Pixel 3! & Adapted it to our Note9!! Please read below what HPB can do...
[HPB is essentially caching of the NAND chip’s FTL (flash translation layer) L2P (logical to physical) mapping tables into the hosts (SoCs) main memory. This allows the host driver to look up the target L2P entry directly without betting on UFS’s limited SRAM to have a cache-hit, reducing latency and greatly increasing random read performance. The authors of the feature showcase an improvement of 59-67% in random I/O read performance due to the new feature. It’s worth to mention that traditional Android I/O benchmarks won’t be able to show this as as those tend to test read speeds with the files they’ve just created.]
(Source of this info ---> Here)
Added Ainur audio driver for those who want to use DTS Audio mods
Applied PSI driver on RAM , CPU , IO Drivers... see what it does...
[When systems are overcommitted and resources become contended, it's hard to tell exactly the impact this has on workload productivity, or how close the system is to lockups and OOM kills. In particular, when machines work
multiple jobs concurrently, the impact of overcommit in terms of latency and throughput on the individual job can be enormous.
In order to maximize hardware utilization without sacrificing individual job health or risk complete machine lockups, this patch implements a way to quantify resource pressure in the system.]
Implemented AnyKernel Installer for the kernel so now Kernel will be flashed as a zip file! no more lockscreen/Samsung account issues (Make sure to clean install ROM if you have Samsung account issues)! [Big Thanks to @klabit87 for his awesome help! & @djb77 for his permission to use some of his scripts]
Updated Ramdisk to the latest build
Updated Kernel build base to the lastest available
Removed a lot of garbage code and cleaned it up
Updated lib lz4 modules from 2013 to 2018/2019 including all updates which makes it possible to enable applications to use fast and/or high compression depending on the use case
State notifier driver enabled
Linux Up streaming kernel updated to the latest always
Added IO governor & Updated to the newest version/patches:-
-Anxiety
-Maple
-SIO
-FIOPS
-Marrow
-Tripandroid
Implemented IO Switcher Driver (Taken from Oreo kernel) which will save more battery by switching IO Governor to 'Noop' when Screen Off and switch back to CFQ when is On for maximum battery and optimization + without need any user intervention... it does this automatically.
Fixed USB issues
Compiled it with GCC 10 with the latest updates applied & custom optimizations is used
Implemented FRANDOM
Fade Ramp Control
Compatible with DriveDroid
WireGuard Support
SELinux Permissive/Enforced
Boeffla WakeLock Blocker
Added Unstable Power Detection through HKTweaks app (Google it)
Using CPUAssist & StuneAssist
Implemented SchedUtilX CPU Gov and made it as default
Implemented Blu_schedutil CPU Gov
CPU Max Freq for LITTLE - Max Freq 2002MHz Min Freq - 455Mhz
CPU Max Freq for BIG - Max Freq 2946MHz Min Freq - 650Mhz
Sky's the limit.. OC'ed CPU Quad Core to 2.31Ghz & Dual Core to 2.5Ghz! [Default on stock kernel is 1.8GHz Quad & 2.3GHz Dual]
Implemented Power saving work-ques and made it optional for those who don't like power saving
Updated F2FS to the latest updates taken from Oreo!
CPU Input driver implemented and updated
Battery polling & NFS wakelock control
State notifier driver
SimpleLMK [Oreo feature for the moment]
GPU OC [Oreo feature for the moment]
And a lot more, that you need to find .
FDE.AI & L Speed & Nuked Script it's been tested for Zeus kernel & ROM and me as a Kernel Developer I officially support it. It is been tested for everything.. stability , performance and improved battery life
Everyone give full support to those developers @Paget96 , @FeraVolt :fingers-crossed:
====================================================================================================
ZeusROM Q Version
For N960F/FD users:-
GoogleDrive Download Link:-
Download Link Here
Mega Download Link:-
Download Link Here
MD5:- a1d7cc2991435c74cf843b0ff468e70c
For N960N users:-
GoogleDrive Download Link:-
Download Link Here
Mega Download Link:-
Download Link Here
MD5:- aa656b105dfcf00a8e76e33e11b7beb4
====================================================================================================
Kernel Q Version
Here
Kernel Pie Version
Here
Telegram Link
mod edit - link removed
I recommend using Hktweaks app through this link.. it fully supports Zeus kernel
Here
Credits:-
Samsung Open Source Release Center for the Source code
Google for AOSP Common Kernel Source
@osm0sis for Android Image Kitchen
@klabit87 for his scripts :highfive:
@farovitus for ELS
@djb77 for scripts
@Anastasis Vasileiadis for his help to provide the needed changes for NetHunter to work
@Arteush for providing a proper scripts to get it working with all TWRP (Especially his own ones)
@Eamon for compile script
And every one that made Android a beautiful world! :fingers-crossed:
XDA:DevDB Information
Zeus Kernel, Kernel for the Samsung Galaxy Note 9
Contributors
azZA_09, Da-BOSS, All users on telegram group
Source Code: https://github.com/THEBOSS619
Kernel Special Features: F2FS, Custom CPU BUS, Debloated Code, Power Suspend Driver, CPU OC, CPU Bus Mods, Driver Mods, Pocket Judge Idle, GCC Mods, IO Switcher, UFS Mods, DynFsync, Host Performance Boost[HBP], HMP mods, Ainur Audio, SIMD & VSDO
Version Information
Status: Stable
Created 2019-08-28
Last Updated 2020-04-14
In order to Install the Kernel:
- Flash the Kernel in TWRP
- Flash Magisk
Recovery to be used - https://forum.xda-developers.com/galaxy-note-9/development/recovery-twrp-galaxy-note-9-t3929901
Thanks a lot @Arteush and @yarpiin for your hard work!
Magisk to be used - https://forum.xda-developers.com/apps/magisk/official-magisk-v7-universal-systemless-t3473445 - (Beta Version)
When you want to report a bug, provide logcat, ROM, Kernel Version and a way to replicate the bug.
For logcat, use https://github.com/Tortel/SysLog
How To Convert To F2FS Without Losing Data
Notice -You MUST have TWRP F2FS compatible recovery
1 - Backup your [Data] partition and your [Internal Storage](if possible)
2 - Warning backing up [Data] partition doesn't include your internal storage files like (Images,Musics,Video,etc..)
3 - Once finished, Convert /Data & /Cache Partition to F2FS
4 - Go to TWRP settings.. and tick [] at [Use rm-rf instead of formatting]
5 - Restore your backup.
6 - Done!
Sorry for the duplicates, use this thread till the other ones are deleted!
Thank you for your big contribution... the kernel wouldn't reach this level without you & your patience & most importantly your motivation & passion to keep pushing the kernel to the edge
Thank you from all my heart O
Thanks for your precious efforts my friend.
I am using latest kernel with latest ambasadii. Working like a charm.
How to keep the cpu freqiencf locked ?
I have no words to describe this!!! Kernel is super fast, super smooth and the apps are opening in lighting speed! I can't believe what im seeing here. THANK YOU, THANK YOU!
Sent from my [device_name] using XDA-Developers Legacy app
---------- Post added at 10:45 AM ---------- Previous post was at 10:01 AM ----------
samsung account failed to sign me in. maybe check this out.
Sent from my [device_name] using XDA-Developers Legacy app
karapoutsoglou said:
I have no words to describe this!!! Kernel is super fast, super smooth and the apps are opening in lighting speed! I can't believe what im seeing here. THANK YOU, THANK YOU!
Sent from my [device_name] using XDA-Developers Legacy app
---------- Post added at 10:45 AM ---------- Previous post was at 10:01 AM ----------
samsung account failed to sign me in. maybe check this out.
Click to expand...
Click to collapse
What baseband. CSG5 or CSG2
azZA_09 said:
-Go into TWRP recovery
-After that, Install Magisk
Click to expand...
Click to collapse
Could you provide correct links for:
- the F2FS supporting version of TWRP suitable for N960F
- the Magisk installer that can be installed using this TWRP
TIA.
jult said:
Could you provide correct links for:
- the F2FS supporting version of TWRP suitable for N960F
- the Magisk installer that can be installed using this TWRP
TIA.
Click to expand...
Click to collapse
Join telegram group and you will find everything you need the group is created for a reason... to provide support & to have everything you need for info :angel:
azZA_09 said:
What baseband. CSG5 or CSG2
Click to expand...
Click to collapse
CSG2
Sent from my [device_name] using XDA-Developers Legacy app
karapoutsoglou said:
CSG2
Click to expand...
Click to collapse
Update to csg5 and everything will work
jult said:
Could you provide correct links for:
- the F2FS supporting version of TWRP suitable for N960F
- the Magisk installer that can be installed using this TWRP
TIA.
Click to expand...
Click to collapse
Sure thing. Later today.
How do I switch to enforcing from permissive?
Thanks
Sent from my SM-N960F using Tapatalk
ALLDAT said:
How do I switch to enforcing from permissive?
Thanks
Click to expand...
Click to collapse
Kernel auditor, mtweaks or magisk selinux changer module. Your choice.
azZA_09 said:
Kernel auditor, mtweaks or magisk selinux changer module. Your choice.
Click to expand...
Click to collapse
Do you know where I can change that in ex kernel manager?
Sent from my SM-N960F using Tapatalk
ALLDAT said:
Do you know where I can change that in ex kernel manager?
Click to expand...
Click to collapse
I don't think you can do it
azZA_09 said:
I don't think you can do it
Click to expand...
Click to collapse
Thanks
Sent from my SM-N960F using Tapatalk
azZA_09 said:
Update to csg5 and everything will work
Click to expand...
Click to collapse
There is a CSG5 Baseband and a CSG5 Bootloader?

Categories

Resources