Code:
/*
* Your warranty is no longer valid, unless you lie.
*
* I am not responsible for bricked devices, strained relationships,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this kernel
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*
*/
This is a no-frills custom kernel for the Pixel 4 and Pixel 4 XL designed to be used with the stock ROM and custom Android 11 ROMs. It's intended to be a simple replacement for the stock kernel that brings several under-the-hood enhancements. This kernel is not meant to be customized by users.
Changelogs for each update can be found in the 2nd post of this thread.
Features:
Full real-time preemption (PREEMPT_RT), which makes the kernel as responsive and stutter-free as possible
Compiled with GCC 12.1 from the Arch Linux repository
Built with Link Time Optimization (LTO) for improved overall kernel performance
Built with Dead Code Elimination (DCE) to shrink the kernel's size by removing unused code
Removed lots of excessive bloat (improves security and performance)
Simple LMK, a custom low memory killer that improves memory management
Optimized CPU frequencies and EAS energy model for improved performance and battery life
WireGuard, a next generation secure VPN tunnel
Passes SafetyNet bootloader unlock check
Improved gaming performance
Improved overall system fluidity and graphics performance
Improved stability
Many other miscellaneous improvements not listed here
Source code:
11.0.0-sultan branch: https://github.com/kerneltoast/android_kernel_google_floral
Credits:
zx2c4 (for WireGuard)
osm0sis (for AnyKernel3)
kdrag0n (for quite a few useful commits)
If your name should be here and it isn't, then replace my camera with a OnePlus 3
Installation instructions:
You can flash this kernel normally in TWRP, LineageOS recovery, or Franco Kernel Manager.
Telegram group:
https://t.me/sultanskernel
Downloads:
Latest kernel
Changelog:
June 16, 2022:
*Fixed rare random reboot into the bootloader when turning on or rebooting the phone sometimes
*Fixed several rare random reboots during normal usage, caused by PREEMPT_RT
Old changelogs:
June 1, 2022:
*Fixed random reboots introduced in the previous build
May 11, 2022:
*Fixed performance regression that worsened GeekBench scores
*Fixed very rare random reboots caused by zRAM
*Fixed potential lags when exiting the camera
*Now built with GCC 12.1 instead of 11.3
May 4, 2022:
*Fixed rare delays of up to 20 seconds when trying to wake the phone from deep sleep
*Improved wake speed when waking the phone while it is entering deep sleep
May 1, 2022:
*Fixed some mistakes related to Pixel Visual Core power management
April 30, 2022:
*Fixed frequent random reboots for users who migrated from Kirisakura
*Removed Android version check from the installer zip
*Fixed random reboots and freezes during deep sleep
April 24, 2022:
*Enabled full real-time preemption (PREEMPT_RT) to make the kernel as responsive and stutter-free as possible
*Optimized several sources of micro-stutters in the kernel
*Switched the deep sleep mode to s2idle, which makes the phone wake up from deep sleep faster
*Improved thermal management by disabling CPU isolation, which was a feature used by the thermal driver that degraded performance while gaming and actually increased heat output
*Improved graphics performance
*Now built with GCC 11.3 instead of 11.1
October 18, 2021:
*Merged September Security Bulletin fixes (October didn't have any kernel changes)
*Improved memory management performance
*Improved system performance while using the camera
*Fixed a regression that caused worsened battery life
*Fixed video calling causing the entire UI to freeze with some apps
August 23, 2021:
*Merged August Security Bulletin fixes
July 25, 2021:
*Fixed front camera not working when using the Social Media Depth feature in Google Camera
July 10, 2021:
*Merged July Security Bulletin fixes
*Now built with GCC 11.1 instead of 10.3
*Improved Simple LMK responsiveness and accuracy, to only kill apps when it's really needed
May 6, 2021:
*Merged May Security Bulletin fixes
*Improved Simple LMK for better memory management (for example, games are less likely to be killed when multitasking while playing)
*Further improved scheduler performance for better overall system performance
*Further improved performance of Unity-based games (such as Genshin Impact)
April 6, 2021:
*Merged April Security Bulletin fixes
*Fixed some apps not working with the previous update
March 21, 2021:
*Improved scheduler performance for better overall system performance
*Improved performance of Unity-based games (such as Genshin Impact)
March 4, 2021:
*Re-enabled BPF JIT compiler to improve gaming and overall system performance
March 1, 2021:
*Merged March Security Bulletin fixes
*Fixed a bug where parts of the screen would erroneously remain dim in some apps
*Improved graphics performance
*Improved storage access latency
*Improved touch latency
*Improved overall system fluidity and power consumption
February 8, 2021:
*Added back missing thermal mitigation drivers to fix overheating
February 6, 2021:
*Merged February Security Bulletin fixes
*Further reduced overall system jitter
January 31, 2021:
*Fixed a bug in the ashmem rewrite that broke some system-wide sound effects
January 30, 2021:
*Added back support for prototype units
*Fixed a scheduler bug that caused random stutters
*Improved overall system fluidity
*Rewrote anonymous shared memory driver (ashmem) for improved graphics performance
January 16, 2021:
*Initial release
Pixel 4 user here, after flashing your kernel with both ex km, and fkm can't even get past boot and stuck at fastboot menu. Magisk 12.4, Rom : Latest January Update Security Patch
danielaniq28 said:
Pixel 4 user here, after flashing your kernel with both ex km, and fkm can't even get past boot and stuck at fastboot menu. Magisk 12.4, Rom : Latest January Update Security Patch
Click to expand...
Click to collapse
That's weird, there are multiple Pixel 4 users on Telegram that don't have issues with it. Could you get your phone working again and then do the following: reboot, go into developer options, tap bug report, share the bug report via gmail, then email it to [email protected]. I removed support for prototype versions of Pixel 4 but maybe I removed support for a Pixel 4 variant that's in production.
Sultanxda said:
That's weird, there are multiple Pixel 4 users on Telegram that don't have issues with it. Could you get your phone working again and then do the following: reboot, go into developer options, tap bug report, share the bug report via gmail, then email it to [email protected]. I removed support for prototype versions of Pixel 4 but maybe I removed support for a Pixel 4 variant that's in production.
Click to expand...
Click to collapse
ah yes it's the prototype version/ FTU ones, so there's no way i can probably use your kernel? I'll send the log anyway
danielaniq28 said:
ah yes it's the prototype version/ FTU ones, so there's no way i can probably use your kernel? I'll send the log anyway
Click to expand...
Click to collapse
If I find out what version it is I can just add support back. Do you think I should add back support for all of the different prototypes, or is there only one prototype version circulating around?
Also, how did you even get a prototype?
Sultanxda said:
If I find out what version it is I can just add support back. Do you think I should add back support for all of the different prototypes, or is there only one prototype version circulating around?
Also, how did you even get a prototype?
Click to expand...
Click to collapse
Here in Malaysia they sell them at a very cheap price , it lacks the face id part. Idk if it's actually illegal to sell/use them. I've send the logs anyway, my email starts with danielaniq28
New build is up with some fancy under-the-hood improvements.
The January 28th kernel has been reuploaded as a January 29th build because i messed up the 28th build. If you managed to get the 28th build before I removed it, please install the 29th build. Cheers.
Just discovered that I made another small mistake in the update, so I've uploaded it again as a January 30th build.
I made another derp that broke some system-wide sound effects (such as touch sounds), so I've uploaded a new kernel with the bug fixed. We're living in the future now, boiz.
New build is up.
New build is up with overheating fixed.
I learned that the DP out function has been soft-disabled by Google, even though the USB-C port supports it. Any chance of enabling that in the kernel?
ditzah said:
I learned that the DP out function has been soft-disabled by Google, even though the USB-C port supports it. Any chance of enabling that in the kernel?
Click to expand...
Click to collapse
Idk, it might need ROM support. I'd have to test it, but more likely than not, it isn't as simple as you may think.
New build is up with the March fixes and lots of performance improvements I made.
hi, silly question, after flashing, can i lock the bootloader again ? (supposing i temporarily installed TWRP just for flashing) otherwise, any way to get google pay working ? thanks
khaledtaleb said:
hi, silly question, after flashing, can i lock the bootloader again ? (supposing i temporarily installed TWRP just for flashing) otherwise, any way to get google pay working ? thanks
Click to expand...
Click to collapse
Usually not a good idea re-locking the bootloader with non-official software.
You can pass safetynet and use google pay with magisk and a couple modules, if you need more info you can take a look at a post I wrote some time ago, should still work fine now.
As of today, there is also a new useful module: universal safetynet fix. I have installed them all, and I can use gpay just fine
Thank you for your answer. however i never managed to install this kernel using TWRP since TWRP only supports android 10, not 11, so recovery got stuck on splash screen. So basically until we get TWRP support for android 11, no other way to install this kernel without root ?
khaledtaleb said:
Thank you for your answer. however i never managed to install this kernel using TWRP since TWRP only supports android 10, not 11, so recovery got stuck on splash screen. So basically until we get TWRP support for android 11, no other way to install this kernel without root ?
Click to expand...
Click to collapse
I've been using LineageOS recovery. Are you on stock?
Related
{
"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
For STOCK
Hello every one, just sharing my kernel for the H990 so other people can also use it as well as it helps in finding out bugs and issues.
Now, I'm not really a super dev like franco or myfluxi or showp1998 or those other great guys , I'm just some guy who likes to have his device do what he wants and puts what he wants on his device as well as it being some sort of a hobby. came from the galaxy s3 T-mobile, & Xperia M which I've also compiled my kernels on and now here on the LG V20
I am a fan of KISS (keep it simple stupid) but i also want advanced features hence the PARADOX,
this kernel was forked from DOTS which is LGE V10G sources
FEATURES
Compiled with Linaro 7.2 toolchain
Upstreamed (as of posting Linux 3.18.102)
GPU OC - 652mhz, no CPU OC
AUTO SMP Hotplugging
Interactive governor (though it might change in the future) other governors removed
ROW io sched, other ioscheds removedAdreno idler
Adreno Boost
KCAL support
UKSM
CRC on/off (your choice if you want it switched off, allegedely gives a 30% boost)
FSYNC on/off (again your choice if you want it enabled or disabled for performance boost)
Dynamic Fsync ( if you want fsync operations to happen only when screen is off)
powersuspend driver
DriveDroid CD-ROM emulation (use your phone as a Windows10 or any OS for that matter as an INSTALLER)
Westwood as default TCP algorithim
boeflla wakelock blocker (use my version of kernel adiutor to access its settings)
Optimizartions here and there
more to be added soon
KERNEL MANAGEMENT APP IN SECOND POST
DISCLAIMER
I am not responsible for any damage what-so-ever done to your phone, as with any kernel, you accept this risk.
Known BUGS
using PPTP vpn's cause a kernel panic,
light bleeds from the 2nd screen to the main screen due to diffrences in brightness when using Backlight Dimmer
but still not bright enough to burn your eyes when you turn your phone on in your pitch black room
DOWNLOAD
see attachments
or here
INSTRUCTIONS/HOW TO
same as DOTS for 1st time rooting
Follow the instructions provided by emdroidle here : https://forum.xda-developers.com/v20...-h990-t3624296
At step 16, instead of typing fastboot reboot, just unplug the usb cable, remove battery, wait 5 sec, put the battery back and reboot the phone. This should limit the risk of static screen at reboot.
Once the kernel installed, update your phone to the latest KDZ for your region using KDZ Writer : https://forum.xda-developers.com/v20...riter-t3649818
1st TIME INSTALLING
PLEASE DELETE texfat.ko in /system/lib/modules folder using your root file manager of choice
or run
Code:
[STRIKE]rm /system/lib/modules/texfat.ko[/STRIKE]
after flashing in recovery
For those rooted with custom recovery just flash in TWRP
CHANGELOG
Code:
neocore.zip - Initial release
Code:
neocore-rev-1.zip
>enabled cifs
>fixed pptp vpn kernel panic hopefully
>edited zip installer so you dont need to remove modules manually
>made most modules built in except for a few that are needed for bluetooth/fm radio and 4 others that stay as a module
>minor compilation fix
Code:
neocore-rev-2.zip
>added force fast charging
>draw 2.5A from normal chargers (LG sets it to 1.8A)(needs more verifying-my phone charged in 2hours)
>added backlight dimmer (totally useless in day but in pitch blackness of night you wont hurt your eyes)
>WireGuard VPN support - is it the future of VPN???
>CafActive governor - just an interactive governor from CodeAurora
Code:
neocore-rev-3.zip
impulse governor added
sio scheduler added
fiops scheduler added
linux 3.18.91
arch power and gentle fair sleepers with switch to enable/disable them
boeffla wakelock blocker
remove draw 2.5 amp draw from charger - not sure if it really was dawing 2.5amps so removed it
many under the hood tweaks
Code:
neocore-rev-4.zip
upstreamed to 3.18.97
improvements
all changes and updates are in the commits in wip branch for now 2nd semester of med school is taking to much of my time so updates will be slow and a bit disorganized until school is over :silly::silly::silly:
Code:
neocore-reboot.zip
reworked from ground up based on 10q sources from h990q
Code:
neocore-reboot-v1.1.zip
tweaked interactive governor
GPU OC to 710mhz
GPU finally idling on 133mhz instead of 214
voltage control added
bunch of under the hood tweaks
Code:
neocore-reboot-v1.2.zip
fixed that ssusb wakelock
GPU OC changes
More of under the hood tweaks
return of draw 2.5 amps from regular usb chargers
Code:
Neocore LOS version
disabled 2nd screen
upstreamed to 3.18.105
small changes from neocore 1.2
Code:
neocore-reboot-v2.0.zip
3.18.110
SD821 frequencies 2.3ghz/710mhz
lazyplug hotplug
zram compression threads changed to 2 instead of 1 ( 4 was just hogging the cpu sometimes)
zram compression switched to lz4
BFQv8r12 as default io sched
Removed voltage control
under the hood improvements
Code:
neocore-reboot-v2.1.zip
upstreamed to linux 3.18.112
switched to linaro GCC 7.3-2018.05-rc2 toolchain
moar overclock (little cluster- 1.8ghz)
updated lz4 compressor module
bring down config_hz to 300 (should fix some weird things happening like fast charging taking too long)
interactive overhauled (compatibility with AKT, i just started using it)
Code:
neocore-reboot-v2.2.zip
upstreamed to linux 3.18.113
zram overhauled
back to lzo compression on zram
low memory killer overhauled
android binder overhauled
Code:
neocore-reboot-v2.5.zip
upstreamed to linux 3.18.117
fore LINEAGE 15.1
after a really long while of testing, adding/removing stuff heres my first release of NeOcOrE for Lineage 15.1
Download in attachments
or here mind the zip names
flash in twrp
changelog:
Code:
lineage-neocore-1.0.zip- initial LOS release
Linux 3.18.118
GCC 7.3.1 QUVNTNM toolchain
power cluster OC to 1.824ghz
dynamic fsync 3.0
crc off
DTS-eagle built into kernel
KCAL support
wireguard support
drivedroid support
schedutil backport
iosched switcher
adreno idler
zram rework
BFQv8r12 default iosched
random backport from 4.2
modified thermal config
Code:
lineage-neocore-2.0.zip - 2nd release
Linux 3.18.122
Linaro GCC 7.3.1 toolchain
MSM_SIMPLE_THERMAL added
bring commits for clang (but i only get a black screen if i compile with clang though :(:eek::crying: )
under the hood tweaks
removed some stuff from 1.0( OC, Dynamic Fsync, Backlight dimmer)
Thanks to
embroidle - without him no root for us
jahlex & leicxan - forked their source
x86cpu
arter97
myfluxi
lordodin912
eoghan2t9
franciscofranco
flar2
CAF
the guys that upstream the linux tree
and maybe more i might have forgotten to add
SOURCE: https://github.com/thirdzcee/h990x-msm-3.18/tree/neox-stable
https://github.com/thirdzcee/neocore-h990.git
NeOcOrE-Adiutor
the app to compliment my kernel
its a fork of Grarak's Kernel Adiutor plus additions that are needed to control additional kernel features, if you use kernel adiutor please uninstall 1st before installing my app
DOWNLOAD HERE or HERE
Neocore.zip
KA profile, just unzip. import profile from KA
VPN works like a charm. Device is fast and responsive.
can i flash on top of DOTS
taus90 said:
can i flash on top of DOTS
Click to expand...
Click to collapse
Yes you can
Hey, nice work! Glad to see some more action.
I am on rev 1, everything runs very smooth. So far only one comment: auto rotation doesn't really work. Can you also test it?
Waiting for updates and thumbs up for the dev!
mekanix said:
Hey, nice work! Glad to see some more action.
I am on rev 1, everything runs very smooth. So far only one comment: auto rotation doesn't really work. Can you also test it?
Waiting for updates and thumbs up for the dev!
Click to expand...
Click to collapse
I'm just glad im getting some feedback, weird auto rotation works fine for me and was not experienced by 2 other people who tested the kernel, whats your model? rev-2 is up btw,
Flashed Rev-2 a couple of hours ago.
All good so far. Will update after a day.
Thank you dev
Hello everyone, just wondering if this kernel is compatible with H990DS ( dual sim card ). Thanks in advance.
oscarmaldonado said:
Hello everyone, just wondering if this kernel is compatible with H990DS ( dual sim card ). Thanks in advance.
Click to expand...
Click to collapse
yes. I use an H990DS
thirdzcee said:
yes. I use an H990DS
Click to expand...
Click to collapse
Thanks bud!!!!!
Tested rev 2 for 2 days and the phone is a bit warm, drains battery faster and not as responsive as rev 1 so I switch back to it waiting for rev 3. Anyway rev 1 works better for me than original Dots
Thanks buddy!
Just dirty flash from DOTS 1.4 to rev 2 for the backlight dimmer.
Thanks bro:highfive:
Rev 3 is out guys,
changelog
Code:
neocore-rev-3.zip
impulse governor added
sio scheduler added
fiops scheduler added
linux 3.18.91
arch power and gentle fair sleepers with switch to enable/disable them
boeffla wakelock blocker
remove draw 2.5 amp draw from charger - not sure if it really was dawing 2.5amps so removed it
many under the hood tweaks
Added an app to control kernel features in second post
its still the same as kernel adiutor app plus an interface to control boeffla wakelock blocker and a different name and icon
Started using rev3 since you posted it, coming form DOTS 1.4 on H990DS. Seems to be behaving a little better, running cool and having a bit better battery life (though some of this might be due to the post_boot.sh mod that's posted on this forum that I installed alongside your kernel). 0 issues encountered, auto rotation works fine.
*when i set backlight dimmer in my screen the edge of top right side lighter than other area.
sajadzare said:
In my screen the edge of top right side lighter than other screen edges. I flashed rev2 but not changed. When install dots 1.4 kernel that problem solved. But dots kernel have not Dipper screen feature
Click to expand...
Click to collapse
Yes its described in the bugs on 1st post, its gonna take a while to fix as my classes have resumed, but i will try and fix it in the future
Hi guys, im getting a hard time trying to make sixaxis app work, since the kernel loads bluetooth modules separatelly Im wondering if anyone can try sixaxis compatibility checker with this kernel.
Tried with dots and mk2000 with no luck. Weird sixaxis app works fine with other v20 like h910, h918 but on h990ds is a no go.
Sixaxis compatibility checker is free on the google store.
Thanks!
will5 said:
Hi guys, im getting a hard time trying to make sixaxis app work, since the kernel loads bluetooth modules separatelly Im wondering if anyone can try sixaxis compatibility checker with this kernel.
Tried with dots and mk2000 with no luck. Weird sixaxis app works fine with other v20 like h910, h918 but on h990ds is a no go.
Sixaxis compatibility checker is free on the google store.
Thanks!
Click to expand...
Click to collapse
I've V20 H990DS and Sixaxis compatibility checker returns me a compatibility with my device, i've root, installed Paradox Kernel and 10.i SEA firmware
*** This kernel is now end-of-life and not supported nor actively developed anymore !!! ***
Hi all,
some of you know me from the other OnePlus or Samsung devices areas, where I provide my kernels already for more than five years to OnePlus 5, 3T, 3, 2, one and X, Galaxy S5, S3 and Note 10.1 users for all sort of platforms (Samsung, Cyanogenmod, Omnirom etc.)
Now I own a OnePlus 5T device and decided to port my kernels also to this device.
Please note:
I am not heading to have as many features as possible implemented, this is not my design goal. If you are more into that, move on to other, good existing kernels. If you are searching for a good mix of improvements and new functions while not sacrificing stability, you are welcome here (see below the history section for more info).
Compatibility
Important: This kernel is only meant to be compatible with official OnePlus OOS and nothing else.
So when the kernel does not run on custom rom XYZ, do not even bother me with it or ask hundred times in the thread for compatibility.
I could not care less about it !!
To add: A community build is NOT an official build supported here. If you use a community build and have issues, don't complain or even report.
Important notes
Read first, especially when you are new to my kernels:
http://wiki.boeffla.de
Boeffla-Kernel uses the anykernel concept = Flash stock kernel of rom first !
This kernel is ONLY compatible to OxygenOs stock, nothing else !!!
If you are using a custom rom that bases on OxygenOs, it might work. However, if it does not work, do not expect me to do tweak to make the kernel running with your favorite rom. I would not do it - my one and only reference is OxygenOs stock.
It is not supposed to be compatible to CM, HydrogenOS etc.
Also note: You have to use Boeffla-Config app which I provide on my homepage to tweak the kernel. 3rd party apps will not be able to unleash the full power of the kernel.
Important: Manually disable battery optimisation for Boeffla-Config app in the rom settings (battery -> battery-optimisation)
Installation
Read the install instructions in the support section on the Boeffla Site.
Support
First read the FAQ section on the Homepage !!!
Click here to learn about all possible kernel settings in the config app (outdated at the moment).
Click here to learn about using the config app.
I will refuse to give support if you do any undervolting/overclocking and experience freezes or hot reboots.
I will also not provide any support if you do not use Boeffla-Config app to tweak the kernel, other 3rd party tweaking apps are known (and intended) to cause issues.
I will refuse to give support if you have xposed framework installed and reporting any kind of weird issues. My opinion to xposed it quite clear: too powerful for >90% of the users that just mess up their system with it.
Otherwise, you can get in touch with me via the support e-mail address: [email protected]
Please provide kernel version, rom version, a detailed issue description and ideally supporting screenshots or log files.
Change logs
(you can also access them directly in Boeffla-Config V2 by pressing menu and selecting change log...)
Change log for OxygenOS 5.x.x kernel - Click here
Change log for OxygenOS 4.x.x kernel - Click here
Known issues
none known
Features
Note: This kernel only runs on OOS 4.x.x for the OnePlus 5T - nothing else !!!
Important: Manually disable battery optimisation for Boeffla-Config app in the rom settings (battery -> battery-optimisation)
Support of anykernel concept (only latest kernels) - flash stock kernel before flashing Boeffla
Full integration with Boeffla-Config V2 (you need at least version 2.5.10 or higher !!!) configuration app (get it from http://www.boeffla.de) to configure all kernel settings
Dash charging fully supported
The two CPU clusters (big and little cpu) can be configured completely separate in terms of min/max frequencies, governors and CPU core profiles
Additional governors: zzmoove, blu_active, impulse, cultivation
Additional schedulers: fiops, bfq, sio, sioplus, fifo, vr, tripndroid, maple, zen
Underclocking CPU and GPU supported
No CPU and GPU overclocking (not planned too)
No CPU and GPU voltage interfaces (not planned too)
GPU boost implemented (4 levels)
CPU core profiles to restrict number of CPU cores being used (the OP5T does not hotplug based on load)
USB charge rate bumped up to 900 mA
Boeffla charge analysis (display of charger type and charge current in Boeffla-Config app in real time)
Notification LED control (effect + speed for blinking/fading, brightness for continuous notification like battery charging etc.)
Boeffla-Sound engine V1 (headphone volume control, earpiece control in calls, microphone gain control in calls)
Dynamic FSync (activated if screen on, deactived if screen off), configurable
Input boost frequencies and duration configurable per CPU cluster, input boost switch
Show CPU frequency usage per CPU and frequency in Boeffla-Config
Show current CPU core frequencies in realtime (note: other apps than Boeffla-Config will likely display wrong information on offline cores as they are not up-to-date yet)
Show GPU frequency usage per frequency in Boeffla-Config
KCal V2 Color control
Display backlight limits configurable (to avoid display brightness gets too low in some situations)
Display backlight dimmer
Swipe2wake gestures
Boeffla generic wakelock blocker
Control haptic feedback of gestures (except fingerprint)
Haptic feedback intensity control (from 0 to 25, with 25 being 100%)
Swipe2sleep gestures
SD card read ahead buffer configurable (default increased to 1024 kB)
Ext4 File system tweaks (default to on, can be disabled)
Kernel logger (dmesg) configurable
CIFS support (module, do not mount inside /data, if you rooted with Chainfire SuperSu, make sure you uncheck the namespace separation in SuperSu app)
NFS read-only support (module)
NTFS support (module)
XBox support (module)
OTG-Ethernet support (module)
TCP Congestion changed to Westwood
Many additional TCP congestion algorithms available
Entropy values configurable
Swap supported
Wireguard supported
Various kernel tweaks
Doze mode configurable in Boeffla-Config
Full selinux strict support (switchable to permissive on demand)
Show speedbin information (PVS level) in Boeffla-Config app
init.d support (in /system/etc/init.d - set correct permissions!)
Automatic EFS backup
Fully supports OOS device encryption, but does not force it
Integrated full busybox 1.27.2 (own compilation)
Compatible with systemless root
Safetynet: verifiedbootstate + additional flags removed
Kernel initialisation log file (with history of 3 log files)
Emergency reset script automatically placed into /boeffla-kernel-data folder of your internal memory
Google gcc 4.9 toolchain (64 bit) used for best stability
Always based on latest OOS kernel sources (https://github.com/OnePlusOSS/android_kernel_oneplus_msm8998)
Download
For all information and downloads (stable AND testing versions), visit the Boeffla-Kernel homepage:
www.boeffla.de
History and design targets
Basically I created my first Boeffla-Kernel in 2012 as there was no kernel for the Samsung Galaxy S3 around that had exactly the mix of functionalities that I wanted. I wanted to have full flexibility in undervolting and charge rates for instance, but did not like the sharpness and/or brightness tweaks many kernels have implemented as per default.
Hence, I began to create my own kernel after a while, adding all the features I like. This is the result of my work, which in the end I decided to share with you. I hope you like it as much as I do.
The objective of this kernel is to have a kernel for daily use. It does not aim for best battery life, or best smoothness or best benchmark scores. Also it does not aim to have the broadest feature set available everywhere.
It aims more for a good mix of all, not sacrificing stability and functionality in the end.
And - most important: It aims to stay quite close to stock !!!
These design targets are also valid for the OnePlus kernel here!!!
This said, I will definitely NEVER implement:
things I do personally not need
things I do not like
things that are in any way dangerous
anything which is highly experimental
a CAF based kernel
anything that requires upstreaming of kernel parts to a higher kernel major version
So do not even ask for it if it falls into the listed categories. Everything else I am happy to check and decide.
And: I do not really care about benchmark numbers, they say almost nothing as long as something is not completely wrong. Important for me is the feel-good factor.
I am also not interested in gaming at all, so never expect a gamer kernel. It will just not happen...
Compatibility
To reiterate it again: Flash the kernel only if you are running a compatible rom !!!
Configuration of the kernel
To tweak and configure the kernel, manually load and install the app Boeffla-Config V2 from the downloads section on www.boeffla.de.
You need at least version 2.5.10 or higher for the OnePlus 5T Boeffla Kernels.
Donation
If you like my work, feel free to donate: Donation-Link
If you donate at least 2,49 EUR (to be in line with the donation app prices on Google Play store), you will receive a personal donation code which unlocks some nice little comfort functions in Boeffla-Config V2 on top.
Source code
All sources can be found in my Github repository: http://github.com/andip71
Credits to developers
Of course, I had never been able to create all that by my own. So I want to give credits to the really good developers around, that have given me all the inspiration and from which I cherry picked lots of the implemented functionalities:
* ZaneZam
* eng.st
* flar2
* arter97
* Grarak
* Entropy512
* Faux
* FranciscoFranco
* Ak
* Osm0sis
... I just hope I did not forget someone. If so, please let me know and I will add you of course.
Thanks to all of you for your great work !!!
Disclaimer
*** As always - Flash on our own risk! ***
Make sure you flash the correct version depending on your firmware version!
I can and will not take any responsibility for bricked phones or lost data.
It is generally recommended to run a complete Nandroid backup in your custom recovery and safely store your personal data before you flash a new kernel.
Cheers and enjoy
Andi
Latest change log:
OOS4
http://kernel.boeffla.de/oneplus5t/boeffla-kernel-oos/oos4xx/changelog.htm
--- Reserved ---
WHAT MAKES YOU THINK I WILL MAKE A KERNEL FOR ONE PLUS 5 T ?????
Sendt fra min SM-N950F med Tapatalk
Thread opened.
First beta version has just been released - 1.0-beta1.
Feature list, see OP.
Have fun
Andi
Is it compatible with open beta 2 ?
Awesome.. Was waiting for your Kernel
zebasketteur said:
Is it compatible with open beta 2 ?
Click to expand...
Click to collapse
I would assume not, as in title is says OOS 4
---------- Post added at 02:42 PM ---------- Previous post was at 02:05 PM ----------
Just flashed, seems that the max brightness is lower, with the display backlight settings unchanged. Apart from that all seems to be good.
Nice to see you here! I have use your kernels starting with Samsung S3 and after that many many devices and always being good!
zebasketteur said:
Is it compatible with open beta 2 ?
Click to expand...
Click to collapse
This is very clearly stated in the opening post.
No.
Hetex said:
[/COLOR]Just flashed, seems that the max brightness is lower, with the display backlight settings unchanged. Apart from that all seems to be good.
Click to expand...
Click to collapse
This is not changed by me. As long as you do not play in the app with the settings, this is 1:1 as in stock kernel.
Anyone else? I mean, nothing is impossible of course.
Andi
Lord Boeffla said:
This is not changed by me. As long as you do not play in the app with the settings, this is 1:1 as in stock kernel.
Anyone else? I mean, nothing is impossible of course.
Andi
Click to expand...
Click to collapse
Not sure if it is the same problem but in the first release of elementalX kernal, whether the brightness dimmer was enabled or not the brightness at maximum was half of what it should have been.
Thanks.
Lord Boeffla said:
This is not changed by me. As long as you do not play in the app with the settings, this is 1:1 as in stock kernel.
Anyone else? I mean, nothing is impossible of course.
Andi
Click to expand...
Click to collapse
You have to revert THIS exact commit in order to fix that (not working anymore on OP5T)
Welcome to OP5T mate btw :highfive:
Cheers'
Hello Boeffla
Hetex said:
Not sure if it is the same problem but in the first release of elementalX kernal, whether the brightness dimmer was enabled or not the brightness at maximum was half of what it should have been.
Thanks.
Click to expand...
Click to collapse
Good hint. Will check in that direction when more people are sure this brightness thingy is real.
Update: Analysis started...
Andi
Lord Boeffla said:
Good hint. Will check in that direction when more people are sure this brightness thingy is real.
Update: Analysis started...
Andi
Click to expand...
Click to collapse
Ok, issue analyzed, confirmed to be a bug.
Bug is fixed and beta2 already compiling. Stay tuned. And thanks for the report.
(BTW it was not the brightness dimmer but a changed brightness range sent by the rom to the kernel, so the min/max limiter was cutting too early)
Thanks
Andi
AndroidGX said:
You have to revert THIS exact commit in order to fix that (not working anymore on OP5T)
Welcome to OP5T mate btw :highfive:
Cheers'
Click to expand...
Click to collapse
Thanks. Sorry, did not see your post as I was busy analyzing.
Well... reverting a commit and losing the functionality is not the option when I can fix it, eh? :fingers-crossed:
And so I did.
MrTalon4 said:
Hello Boeffla
Click to expand...
Click to collapse
Hello MrTalon4
Andi
Hi all,
small bugfix update is out:
Version 1.0-beta2
18.01.2018
Fix: Backlight limit implementation adjusted to OP5T (display could never reach maximum brightness before)
Enjoy
Andi
Welcome,it is nice to see you here ..waiting one for oreo
marko94 said:
Welcome,it is nice to see you here ..waiting one for oreo
Click to expand...
Click to collapse
Yeah. But not before it gets out of open beta, not before it is released officially.
... my golden rule for a long time.
Andi
Welcome to the 5T-Zone
Is it possible to have WireGuard implementation for your new 5T kernel (at some point in the near future) ?
Edit:
I just rechecked the OP, already there. Too cool
{
"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.
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 1.0.0 + 4.3 App Trailer
Hey, NoGravity Kernel dev coming from the good old OnePlus 2 here! I'm a graduating student in computer science and I actually work as a programmer. I made a pretty solid kernel for that old Oneplus device and even added Energy Aware Scheduling (EAS) support to it backporting new features like Dynamic Schedtune Boosting to this old 3.10 kernel. With it being pretty much at its apogee, I need a new challenge on a newer kernel (4.9+) while keeping NGK's mindset of Performance/smoothness while getting decent battery life due to added battery oriented features.
For those who want a to know more about my work here is the link to NoGravity Kernel for OnePlus 2.
The Kernel will boot using stock (Pocophone F1) CPU & GPU frequencies that correspond to the Balance Profile when Magisk is present. Overclocked frequencies can be selected in any kernel manager app. Other profiles for battery, performance and gaming can be switched to in my app.
To tweak the kernel easily, here's my No Gravity app! featuring custom profiles (Battery, Balanced, Performance and Gaming). My app offers some features that cant be found in other kernel tweaking apps. You can find them lower in the thread.)
-No Gravity app! support
-Android T (13) ready
-Rebased to full CAF
-Enforcing SELinux
-KernelSU support
-OxygenOS Ports support Please read compatibility section
-9.1.24 & 10.3.7 Novatech Touchscreen Firmware
-Updated, Cleaned up & Optimized NVT/FTS Touchscreen drivers for latency and responsiveness and reduced touch issues
-The two CPUs (Silver and Gold) can be configured completely separate in terms of min/max frequencies and governors
-Unlocked PUBG HDR+Extreme options (Disabled by default, enable it in app)
-CPU Next frequency selection tunable (linear/expnential)
-GPU Overclocked to 835 MHz (GPU overclock/underclock is possible)
-GPU Underclocked to 160 MHz on idle
-Adrenoboost
-Updated energy model
-Pixel Thermals support
-Using Evaluation Thermals
-Own Thermal Suspend API
-Own Thermal Locking Mecanism (Mostly for using NGK thermals on MIUI)
-NAP power saving state for Adreno 630 GPU
-Dynamic Stune Boost
-Devfreq boost and Cpu Boosting drivers
-Disabled ZRAM by default
-FSync Control (ON/OFF)
-Faster Applications Opening speed
-Slimbus Overclock
-Added Fingerprint boost
-Added WakeBoost module
-Added and Using ZEN I/O Scheduler as default for app opening speed && overall Smoothness
-Added Maple, SIO, FIOPS, BFQ, ANXIETY I/O Scheduler
-Westwood(Default) & BBR TCP Algorithms
-DTS Headphone X Software Drivers
-Sound Control support
-Vibration Control
-Charging throttling removed
-Maximum charge rate over USB 3.0
-WireGuard support
-USB Ethernet support
-Controller support
-DriveDroid support
-HDR Video Playback support
-KCAL support
-K-Lapse 5.0 support
-Network Guru app support
-Blocked and tweaked wakelocks (Boeffla & more)
-Fingerprint improvements
-Caches optimisations
-Compilation optimisations
-Debloated
-F2FS Support with GC
-Compile with Proton Clang + Polly + Thin LTO
-Latest CAF Tags merged in
-Always upstreamed to latest! (4.9.337)
-And many more under the hood changes...
-Injected sepolicies to work on Enforcing SELinux
-Per-App Tweaks page to apply tweaks to specific apps
-Kernel & App update checker (Direct install of kernel and app on Pocophone) + Selection between touch firmware versions
-Balance(Default),Performance,Battery,Gaming & Gaming+ Profiles (QSTile available)
-Custom Profile Creator Page that let's you create and share profiles with the NGK community (/SDCARD/NGK/PROFILES/)
-Precise CPU temperature for both Clusters separately
-CPU Page with following tunables:
-CPU Governor
-CPU Frequency Selection Algorithm (Linear/Exponential)
-CPU Min/Max Frequencies
-NGK Smart Throttling
-NGK Stats Page showing last gaming session FPS+ Chart, throttling, 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
-RAM usage
-Kernel Page to let you control:
-App optimization (ART) Button
-Thermals:
NoGravity (NGK’s default) || Battery || Stock one
-PUBG HDR+Extreme config unlocker
-ZRAM
Battery Page to let you control:
-Adaptive Charging
-Charging rate limiter
-Battery Thermal Throttling Removal:
ON (NGK’s default) || OFF
-GPU Page:
-GPU Stats
-Min/Max GPU Freq Selector
-Adrenoboost
-KLapse (Brightness and Daytime modes)
-Backlight Dimmer
-HDR ON/OFF toggle
-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
-DTS Eagle (Sound) Info Page
-More will be added...
-More features...
-Let me know what you want and those may be added!
This kernel should work on any ROM/Ports! Since I love OnePlus and I'm myself a OnePlus 2 user, I will do my best to fully support OOS ports.
Reported to work on: OnePlus 6 Holi Edition, OnePlus 7 OB8 & OB8 Quince, Quarantine Edition. OxygenOS devs do not support custom kernels so if you face any issues with NGK don't post in their groups, post here instead. Latest OOS may have calling issues as reported by some users.
-I recommend before coming to conclusion, give it at least 2 complete charge cycles and then raise any issue.
-I recommend to use my app, franco app or EX Kernel Manager if you need to tweak the kernel further
-CPUs since Snapdragon 845 can't be overclocked from kernel this is why it is removed
-Flash No_Gravity_Kernel-vX.X.zip file in TWRP (Latest TWRP Recovery Recommanded)
-(Optional) - Clear cache and Dalvik => if you do so, Use App Optimization button in NGK App.
Download No gravity Kernel / Download No Gravity App
Donate me! / Telegram Group /
No Gravity App Changelog / No Gravity Kernel Changelog
-The android community and to all my testers for using my kernel and your precious feedbacks and ideas!.
-thanasxda for his experience/knowledge on the Pocophone
- @[COLOR=#00b5d3]_undead[/COLOR] & @[COLOR=#00b5d3]Wmbruckner[/COLOR] for the crowdfunding
-Followings for their donations!
@[COLOR=#00b5d3]Wmbruckner[/COLOR]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
Contributors
Pierre2324
Source: https://github.com/Pierre2324/NGK_android_kernel_xiaomi_sdm845
Version Information
Status: Stable
Current Version: 4.4.0
Created: 2019-11-16
Last Updated: 2023-04-30
Changelog
NoGravity Kernel v4.4.0 & App 6.4.0
Previous Changelogs:
NoGravity Kernel v4.3.1[/B]
NoGravity Kernel v4.3.0 & App 6.3.0[/B]
NoGravity Kernel v4.2.0 & App 6.2.0
NoGravity Kernel v4.1.0 & App 6.1.0[/B]
NoGravity Kernel v4.0.0 & App 6.0.0
NoGravity Kernel v3.3.0 & App 5.3.0
NoGravity Kernel v3.2.1 & App 5.2.1
NoGravity Kernel v3.2.0 & App 5.2.0
NoGravity Kernel v3.1.0 & App 5.1.0
NoGravity Kernel v3.0.0 & App 5.0.0
NoGravity Kernel v2.4.1
-Pixel thermal fix
-Upstreamed to 4.9.281
NoGravity Kernel v2.4.0
NoGravity Kernel v2.3.1
NoGravity Kernel v2.3
NoGravity Kernel v2.2:
NoGravity Kernel App v4.2:
NoGravity Kernel v2.1 / App v4.1:
NoGravity Kernel v2.0:
NoGravity Kernel App v4.0:
NoGravity Kernel v1.5.5:
NoGravity Kernel App v3.5.5:
NoGravity Kernel App v3.5.1:
NoGravity Kernel App v3.5:
NoGravity Kernel v1.5:
NoGravity Kernel App v3.4.2:
General:
Changelog/Update page is now scrollable in case of big changelogs to see download buttons
App now checks for update when app is resumed also (not just when app is launched)
Pocophone F1-Mi8:
Fixed an issue where frequencies were shown over CPU and GPU labels when turning off respective temps in NGK Stats Overlay
OnePlus 2:
Nothing specific to OP2 added
NoGravity Kernel App v3.4.1:
General:
Changed text of update checker button 'View changelog' to 'Download!' when an update is present
Other small fixes
Pocophone F1-Mi8:
Updated NGK Stats Overlay UI
NGK Stats Overlay doesn't block input touches anymore
Better FPS Idling algorithm to prevent bad user's FPS stats when display isn't refreshed (e.g just looking at launcher)
Last session average FPS now updates right after toggling off the switch when in NGK app
OnePlus 2:
Nothing specific to OP2 added
1.4 Build:
NoGravity Kernel App v3.4:
General:
Updated Profiles
New App & Kernel Update checker
Small fixes
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
OnePlus 2:
nothing specific for oneplus 2 has been added
Kernel 1.4:
NoGravity Thermal locking mecanism
OxygenOS Crack*
Add DT2W node for OxygenOS and enabled by default
Input boost driver cleanup
Touch drivers tweaks
GPU max stable overclock dropped to 800MHz (835MHz still available)
Rebased Techpack Drivers (Fixes Mi8 sound issue)
Updated profiles
Brought back updated Wireguard
Added back HDR playback feature
Removed old CPU governors
Network GURU app can now be opened
Merged latest CAF tag
Updated to latest Anykernel
Always upstreamed to latest (4.9.215)
And many more under the hood changes/optimisations
Notes:
Now Kernel comes in Pie and Q versions only, if you are still on Pie blobs simply use Pie kernel
Kernel and app updates will now show up when they are released on main page of NoGravityKernel App along with device specific changelog and download buttons
NGK Thermal Locking Mecanism prevents ROMs from overriding a thermal selection (Mainly MIUI) (when NGK Thermals are ON only, when they're OFF, ROM will have it's default behavior)
NGK now boots on OxygenOS, OOS developers do not support custom kernels so if there are any issues do not report in their groups.
1.3 Build: Welcome to Mi 8!
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
Pocophone-Mi8:
New GPU Page:
-GPU Stats
-KLapse (Brightness and Daytime modes)
-Backlight Dimmer
OnePlus 2:
DDR Input Boost Toggle
Kernel 1.3:
Fixed Screen Freezes
Updated Profiles
GPU min 160MHz, GPU max 835MHz
GPU optimisations (Governor, Latency)
Better CPU idling
Optimised Schedutil Governor
Changes to EAS Energy model
Updated schedtune,devfreq boosts
Better app opening speed
Exposed a Dynamic Stune Boost Duration tunable to userspace (Now independent to input boost duration) -Small changes to input boost
Sched cleanup
Added FIOPS,BFQ,ANXIETY I/O Schedulers
Updated thermals
Brought back RCU 4.14 backport
Vibration Control
Compiled with DragonTC
Huge compilation optimisations for performance
POLLY Optimisations
Debloated even more
Now Permissive by default, Android 10 Q blobs don't seem ready yet
Always upstreamed to latest! (4.9.212)
And many more under the hood changes...
Notes:
Max GPU frequency of 835MHz is only reachable manually as I don't consider it fully stable. On the other side, 820MHz Overclock is stable and is used in my profiles.
I wanted to use relatively longer dynamic schedtune boost duration compared to input boosts so made them separate in terms of length.
I would recommend turning off No Gravity app toast notifications from Magisk Manager app.
1.2 Build:
NoGravity Kernel App v3.2:
General:
Updated Profiles
Auto-dismiss Apply on boot notification
Updated descriptions
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
OnePlus 2:
Fixed App opening on AGK
Fixed EAS Dynamic Schedtune Bug
Kernel 1.2:
Updated to latest Touch Firmware
Updated with Xiaomi Q Kernel Source (Touch,Sound,PSU,WLAN,GPU,etc)
Silver cluster will now ramp all the way down to 300MHz for better idle drain
Removed some GPU latency
Underclocked GPU on idle to 170MHz (from 180MHz)
820MHz GPU frequncy step added between 710MHz & 835MHz
New Thermal Suspend API
FSync Control (ON/OFF)
DTS Eagle Software Driver
Bluetooth changes
Optimisations, Removed some bloat
Bluetooth Fixed
Wifi Speed Meter Fixed
Random Reboot Fixed
Blackscreen issue Fixed
SmartPack/Kernel Adiutor issue Fixed
Camera Fix for MIUI Q and ROMs with Q-Blobs (see separate build)
Updated AnyKernel3 changes (No Need to flash magisk after updating!)
Always upstreamed to latest! (4.9.210)
And many more under the hood changes...
Notes:
Thermal Suspend API : This is a small API I’ve written in the kernel directly (to make sure no background services are running for it) that unsets NGK thermals when screen turns off and enables them back when screen is turned back on. (This fixes some issues on some specific ROMs where screen wouldn’t turn on or phone would random reboot while device sleeps or is charging)
There is now a camera fix version to fix camera on ROMs with Q-Blobs like MIUI Q, so if your camera isn't working flash this one.
Kernel 1.1 Pie Edition:
NoGravity Kernel v1.1 now working on Pie ROMs
Using v1.0 Base
Notes:
This kernel uses v1.0 base so will work on both Android Pie and Q ROMs/Ports/MIUI
From now on releases will be separate in 2 builds: [9] and [10]. People on Android 10 should use [10] builds since it is rebased to Full Q CAF sources even tho [9] build would still work.
1.1 Build: Welcome to No Gravity Kernel App for Pocophone!
NoGravity Kernel App v3.1:
Pocophone F1 support added
Balance(Default),Performance,Battery & Gaming Profiles*
Precise CPU temperature for both Clusters separately
Kernel 1.1:
Rebased completely to full Q CAF (LineageOS Staging)
Removed CPU overclock*
Removed charging throttling*
Many Optimisations
F2FS updated with GC and changes
Debloated the Kernel
Westwood(Default) & BBR TCP Algorithms added
Using 2048kb read ahead
Fixed ZEN I/O Scheduler initialisation
Picked port of RCU's taken from 4.14
Updated SDFAT to EXFAT
Removed a CPU boosting driver that could conflict with another
Battery oriented tweaks
Tried to fix random reboots and other issues some people were getting
Always upstreamed to latest! (4.9.206)
And many more under the hood changes...
Notes:
Profiles also have a QSTile for fast switching
If you didn’t already know it was only placebo/performance wouldn’t change, but don’t worry there are other ways to make performance better
If you want charging throttling, you can set it back on here by setting the value to N instead of Y: sys/modules//sys/module/smb_lib/parameters/skip_thermal
MIUI ROM/Port variants may have some issues but I didn't have much testers on those so please send logs if you have issues
1.0 Build: Welcome to Android 10 & Pocophone!
Kernel:
Overclocked CPU (Silver 1.76->2.0Ghz, Gold 2.8-> 3.0Ghz) (Will boot with stock clocks)
Energy model modifications to fit NGK overclocked frequencies
GPU Overclocked to 835 MHz
GPU Underclocked to 180 MHz on idle
Using Evaluation Thermals (For now..)
NAP power saving state for Adreno 630 GPU
Added Adreno Idler
AdrenoBoost
Dynamic Stune Boost
Devfreq boost and Cpu Boosting drivers
Disabled ZRAM
Faster Applications Opening speed
Slimbus Overclock
Added Fingerprint boost
Added WakeBoost module
Added and Using ZEN I/O Scheduler as default for app opening speed && overall Smoothness
Added Maple, SIO and FIOPS I/O Scheduler
Power Efficient Workqueues
Sound Control support
Maximum charge rate over USB 3.0
WireGuard Support
KCAL Support
K-Lapse 5.0 Support
Blocked wakelock (Boeffla & more)
Fingerprint improvements
Caches optimisations
Compilation optimisations
Novatek touch firmware from 10.3.7.0
Always upstreamed to latest! (4.9.201)
Using Anykernel3
And many more under the hood changes...
Useful stuffs
Clean flashing a kernel:
1. Boot into recovery
2. Wipe dalvik/art cache, cache, system and vendor(if recovery have this option)
3. Reboot into recovery (only needed on some recoveries)
4. Flash latest ROM zip
(Optional) Flash other zips like GApps, DFE, etc depending on ROM and your preference
5. Flash latest Magisk zip
6. Reboot into system (yes boot with stock kernel first)
7. Reboot into recovery
8. Flash latest NGK Kernel zip
9. Reboot and enjoy
Not to be confused with a ROM clean flash!
Do not wipe data or internal storage!
Encryption fix
For the ones who uses an encrypted device, those steps needs to be done to worl properly with NGK:
To those who are facing screen flicker/bootloop upon flashing NGK on an encrypted device.
1. Dirty flash your current ROM and boot into system.
2. change your password to whatever you want then click on "No" when it shows "Secure Start-up".
3. Boot into recovery then flash NGK. You will notice that it will not ask for a password even though you are encrypted.
Taking logs
Screen Freezes:
-Connect phone to PC
-Run following commands in terminal:
[*]adb shell
[*]dmesg
Random Reboots:
-When the random reboot occurs press the TWRP button combo to got straight into TWRP
-Send the pstore folder as a .zip file located in /sys/fs/
Any runtime kernel/app related crashes that doesnt make the device reboot or freeze:
-Use Matlog app on play store
-Start recording before the issue
-Stop recording after the issue
-Send the .zip file created
Charging:
Okay lets break it down for yall.
Every kernel on every device has WARM_TEMP and HOT_TEMP values which are usually always 45 and 50 respectively.
When device reaches 40-42C charging rate will decrease more and more until it reaches about 45C where device will stop charging even if its plugged in for safety reasons. Battery must not charge when they are this hot.
Battery thermal removal: this will prevent throttling before battery reaches about WARM_TEMP. Once battery reaches about 45C there is nothing in the world you can do. So yea battery thermal removal is still safe, just a matter of preference because if charging throttles before reaching 45C it will heat less then continue charging but if charging doesnt throttle yea it will charge charge faster under 45C but may heat more so you may hit 45C faster. So as in every other tweaks it depends on user.
As per my tests I would get about those but that may vary for you:
Battery temp (°C) - Charging rate (mA) tuples
46-1800
45-1800
44-2000
43-2600
42-2800
What else? oh yea here are some tips for you to lower temps (cause yes some of you charge while playing pubg..)
Tips for lowering temps:
-Turn off NGK thermals from NGK APP
Right you all need to understand thermals first.. A lot of users are just asking best thermals, best this, best that.. there is no universal bests..
Thermals will throttle performance depending on heat generated.. so yes there is a gain in performance when using NGK thermals because performance will throttle at higher temperatures. Why do I say it depends? Well someone living in a hot place and is getting high temps and throttling will use NGK thermals so he gets more performance for the same temperature point but there is always throttling else a phone would heat too much in the end and be really unsecure and all. That being said, if your device throttle with stock thermals then you go ngk thermals it will throttle at higher temps but in the end may still throttle and if you hit too high temps it will throttle even harder to keep temps low. For those people using normal thermals would be best since yea performance will throttle but it will prevent the phone from getting higher temps which could lead to more intense throttling. (Can also read about charging above you may want more aggressive thermals that will throttling performance to reduce heat so you can charge phone)
So next tip:
-Reduce Big cluster max frequency as this cluster is a hest generator
-Use another profile than Gaming! (Performance for me is best because its less aggressive, some people prefer balance for gaming)
All in all, try stuffs by yourself I think I did my part guiding you through all this, the best things you can do is the best things for yourself not necessarily the best for others.
Touchscreen Tests (NGK v1.5.5):
Spent a whole week with testers to just sit down and find the firmware to choose and then rebuild the drivers from the groud up.. but first here's an intro
Intro:
Small intro for everyone cause many people confuse many things..
-Panels: We have 3 main panels:
FTS, NVT REV1 & NVT REV2
-Touch firmware: comes in kernel and also in ROMs but kernel will flash its inbuilt firmware if the kernel firmware checksum is different to the one already present in ROM
-Touch Drivers: comes in kernel and those dont have numbers/versions its up to the kernel dev to make changes it those so stop asking for driver version no one can answer that precisely compared to firmware
Tests:
Alright now enough talking, the tests and results.
-Panels:
For FTS panels, using stock xiaomi drivers was fine no touch issues seem to happen since those went out.
For NVT panels, some had touch issues on rev1 and rev2 depending on firmware used while keeping xiaomi stock drivers so below tests were focusing on NVT mostly
-Firmware:
We tried 3 firmware and the ones who remained are 9.1.24 and 10.3.7 since other one gave issues
So I did incremental test builds modifying drivers for both firmware
-Drivers:
For drivers, as said before I reverted all changes to xiaomi stock drivers from their source. Some issues were present for some on both firmware version and different issues on both panel revisions (rev1 and rev2)
-Latency:
some issues was only related to latency and I knew latency was going to be better by optimizing the drivers later on
-Touch issues:
So based on that, I only took account of the issues present between firmware for each driver changes
Part 1:
Part 1 was updating novatech drivers from a CAF source that can be seen in my kernel source. So did that, compiled 2 versions again fixed some small issues here and there like firmware flashing wasnt working, touch didn't work at first and some bootup issues, anyway main thing is that novatech driver were updated a bit with less variable locking and such coding changes making the driver faster. Results after that were good it fixed some people's issues but latency wasnt perfect.
-Part2:
Now was time to optimize the drivers and did for both NVT and FTS (most of those optimizations were seen in previous ngk versions) but needed to add them again and add some more and see how they impact (cause not every optimizations means better results, some optimizations introduced issues)
Conclusion:
So in the end if TLDR
The conclusion was that issues were fixed after some driver changes as some optimizations made them worst, 9.1.24 firmware gave better touch (mostly under load or heat a.k.a for gamers) and didnt impact day to day users hence why NGK uses now 9.1.24 drivers.
BUT that is based on the fact that I reviewed the drivers from official xiaomi source, then updating them, then doing specific optimizations, other kernels may have different results or different ways of doing tests, thats just how I did it.
So yea for people who wont like touch, I will send this cause I did work on it to give better touch to most users and limiting the touch issues. I still dont think its possible to have perfect latency and perfect touch due to our phone but here's what has been done..
Great work as always, glad to see you here! NGK was one of the best kernels for OnePlus 2, I'm excited to see what NGK brings in for Poco. You deserve much more appreciation for your work, I am doing my bit. For whosoever appreciates his work, following is a crowdfunding link that we created for getting Pierre a Pocophone, as he does not own one. Just to be clear, he isn't involved with this anyway, we, the OnePlus 2 family has done this on our own will, as a token of appreciation of all the work he has done for the community.
https://bit.ly/34b406p
Congrats on the kernel.
Best kernel in the west is out for poco
can it be used in PIE ?
add some screen overclock pls
and also, can i use it to one plus rom? thank you
Hutabarat said:
can it be used in PIE ?
Click to expand...
Click to collapse
Yea can be used ! Thanks for giving it a go
lucyr03 said:
Best kernel in the west is out for poco
Click to expand...
Click to collapse
Hehe hell yea!
_undead said:
MOD EDIT: quote removed
Click to expand...
Click to collapse
Thanks to yall for it, its appreciated and makes me want to make the best kernel I can Cool stuff coming!
cloudzzz00 said:
add some screen overclock pls
and also, can i use it to one plus rom? thank you
Click to expand...
Click to collapse
Havent been tested on Oxygen OS port yet.. Let me know how it goes! I'm not really into screen overclocking unless you want your screen to be damaged in a year... :cyclops:
Nice Work
Will Post it in Poco Official Channel:highfive:
Thanks for the effort! Although it's weird that almost every kernel devs are saying that CPU OC is not possible/necessary in recent SoCs anymore.
Will the source code be available? Can you create a script to easily run the build process for the kernel so that we can mess around with it?
Congratulations bro
Flashed the kernel, but the no gravity app doesn't detect the kernel.
Edit- My bad, it says coming soon in OP.
Legend is now working on poco. So lucky to have you bro.
quick question, if i have drunk optimus installed, how do i change it to this kernel?
and how to update it?
thanks!
Awesome bro... keep it up..
---------- Post added at 10:11 PM ---------- Previous post was at 10:10 PM ----------
Gysenok said:
quick question, if i have drunk optimus installed, how do i change it to this kernel?
and how to update it?
thanks!
Click to expand...
Click to collapse
flash stock boot or dirty flash you rom. then NGK.
This kernel only for android 10?
youngAvJ said:
Awesome bro... keep it up..
---------- Post added at 10:11 PM ---------- Previous post was at 10:10 PM ----------
flash stock boot or dirty flash you rom. then NGK.
Click to expand...
Click to collapse
how to dirty flash? and what is ngk? and how to update?