Your warranty is now void.
I am not responsible for bricked devices, dead SD cards, thermonuclear war.
Please do some research if you have any concerns about using custom ROMs/Kernels.
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.
Lambda Kernel is a CAF recreation of the LG G2's Kernel written for CAF based custom ROMs. It fits the needs of anyone looking for a decent performance/battery rate, being totally compatible with up to the newest Android 7.1 ROMs and all the way down to Android 5.1 ROMs using the wildcard concept.
It follows the flash n' go principle, everything packed in the Kernel is already tweaked and ready to be used as a daily driver for most users.
The downloads, contributors and source code are at the bottom of this post, it is recommended to read everything before flashing.
"The Lambda Kernel project was born as a reasonable alternative for non-lge firmware users that would enjoy having a decent operational system on their devices but, unfortunately, weren't possible because of the lack of a great Kernel for this panorama. That was a paradoxical paradigm, such a powerful device tied by controversial chains.
As a hobbyist and enthusiast, stepping forward on this was a must. Having the tools and one of the greatest kernels in the Android world at my side (dorimanx), sharing the same platform and device, I couldn't hesitate so long. Although we may never hit his level, it's worth mentioning this project has its own philosophy and purpose. Constructing a different way of thinking is always a pleasure."
"Everything that is yours needs to be controlled by anybody else than you. When flashing this kernel on a custom firmware, you'll be signing an authority term over your device possession. You'll be breaking chains imposed by a society niche that is closed source, proprietary and arrogant. They are the world that superimposes your look to keep you from seeing the Truth. The Truth that you are a slave. Like all the others you were born in chains. The world is a prison where there is neither hope nor taste nor smell, a prison for your mind. But still there's only one hope, there's only one way out: K.I.S.S. to maintain your own rules, to avoid unnecessary complexity in your escape."
The releases follow an organized naming scheme, alphabetically ordinary using portuguese words.
The current release name is Infinito.
Also, they follow a two-week basis schedule in the BETA stages in order to pack the latest security updates and code improvements. The STABLE ones don't have a schedule in mind, they are meant to be released after the BETA ones get 100% debugged and tested.
EXPERIMENTAL: My own testing builds for certain features and tests. They have numbers and comments in their versioning according to the consecutive builds I build and the latest changes in which I should look into testing. They aren't normally shared, although sometimes I publish them. If you see one of them, don't forget they are recommended for advanced users/developers only because of their potential changes that must be debugged before publishing a beta/stable version.
BETA: They are closer to the proper release version but still can have some errors or bugs to be reported and tested, they also have a number to avoid confusion. It's most likely what you'll be flashing in order to catch up with the latest code base and security updates.
STABLE: That's the version for the ones that don't want their devices to be lab rats for new features and staging changes. It might have some little issues but it's generally able to fill all user needs in terms of stability for such a bleeding-edge project.
Pretty straightforward once you get used to it, isn't it?
A general panorama for Lambda Kernel, always matching the latest release, in this case Infinito BETA 13.
NEW ↠ Everyting new that has been added compared to the previous release.
HOT ↠ The amazing uniqueness of Lambda Kernel on every byte.
TESTING ↠ The name says for itself, usually works properly but should be better evaluated.
DISABLED ↠ What has been added in source code but disabled due to issues.
EXTRA ↠ Related to UKM/Synapse/Anykernel and other miscellaneous.
3.18.y F2FS filesystem support NEW
NTFS filesystem support HOT
CPU overcloking up to 2.8GHz HOT
Latest Linux Kernel 3.4.y base version HOT
Built with Dorimanx's PWR GCC (Linaro 6.1) HOT
Motorola's quick wakeup driver with LPM support HOT
Nougat's sdcardfs filesystem support HOT
The battery friendly AutoSMP plugging driver HOT
Experimental Blu Plug hotplugging driver HOT
My version of the MSM Hotplug with fast lane mode HOT
My own balanced version of the Bricked Hotplug HOT
Impulse governor with fast lane mode support HOT
ULL audio path support HOT
Enhanced ARM scheduler clock HOT
Improved the Completely Fair Scheduler (CFS) routines HOT
Up-to-date binder framework HOT
Updates on slim_ngd from 3.10.y HOT
Mainline security and overflow patches HOT
Upstream DirtyCow exploit fixes HOT
Block updates from 3.10.y HOT
GPU updates from Dorimanx Kernel converted to my code HOT
Disabled the stupid gentle fair sleepers and arch power HOT
Automated two-week changelog shipped to the device HOT
My own optimization set called Fast Lane V2 HOT
Tweaked Motorola's low memory killer HOT
Backported 3.10.y sound drivers + offload for more formats HOT
Faux Sound Control v3.8 for LGE my tweaks HOT
500MB swap space available on two compression streams HOT
ZRAM compressed memory with LZ4 support HOT
ZSMALLOC allocation framework for ZRAM HOT
Memory management updates from 3.18.y HOT
Ability to use your device as a USB keyboard and mouse HOT
My implementation of the state notifier for LGE touch panel HOT
MSM Limiter v5.4 driver with per core support HOT
Internal Kernel clock frequency at 300Hz HOT
CPU frequency driver up-to-date with 3.10.y HOT
NET/Bluetooth updates from 3.14.y from dorimanx HOT
New android alarms API to "replace" RTC HOT
Dynamic dual core CPU boosting coded by sultanxda HOT
GPU overcloking up to 533MHz HOT
Force fast charge v3.2 driver HOT
Process reclaim support HOT
Advanced memory stats monitoring HOT
Anykernel2 installer fully up-to-date HOT
Exclusive UCI/UKM support for Synapse HOT
Newest GPU drivers (kgsl/devfreq) from Linux 3.18.y kernel branch HOT
Adreno Idler for msm-adreno-tz GPU governor HOT
Krait voltage control compatible with 3.18.y GPU drivers HOT
Dynamic QoS voting based on USB activity HOT
Set USB to always use the maximum speed available HOT
Reduced CPU retention voltages as per Qualcomm HOT
Added 499MHz CPU clock frequency HOT
Fixed encoding activity burning all RAM and forcing CPU usage HOT
Fixed Wi-Fi roaming standby drain and frame buffer overflow HOT
Fixed all irq requests for oneshot HOT
Power management QoS framework updates from 3.10.y HOT
Latest sweep2sleep driver inlined with dorimanx HOT
New I/O schedulers: fiops, zen, tripndroid and sioplus HOT
Cleaned some LG changes in cpufreq that aren't relevant for CAF/CM HOT
Updated queue_stats code HOT
Added Motorola's optimized memutils HOT
Increased TCP output for faster connectivity HOT
All advanced TCP congestioners available HOT
Stereo call recording support HOT
Fixed the slow charging bug in userspace HOT
Added back LGE's HIFI sound buffers for enhanced playback HOT
FSync switcher HOT
Enabled more TCP congestion options HOT
Adaptive LMK enabled by default and tweaked HOT
Kerne same-page merging (KSM) support DISABLED
SELinux permissive out-of-the-box EXTRA
GPU time in states for monitoring EXTRA
Dynamic wallpaper changer when flashing EXTRA
All values set to performance/balanced out-of-the-box EXTRA
GPU gaming boost for intense mobile gamers EXTRA
General updates in Synapse UI to match the new features EXTRA
AnyKernel2 ↠ It's the main feature of this kernel, it doesn't only make our lives easier by avoiding the usage of ramdisk but also let us change and ship many new features without touching the ROM side. Another great point on AnyKernel usage is the ability to setup your device on boot up, setting the governors and values that we love right out of the box without any kind of pain.
UCI/UKM ↠ UCI is a binary that allows Synapse access to control and manage the kernel's core. UKM is the component that allows prebuilt .json modules to build the Synapse UI without compiling the app on Android Studio or other Android IDE. You won't need to install a new version of the app from somewhere to get up-to-date, the kernel will automagically ship the changes I made in Synapse UI and apply them on the fly.
Linux 3.4.113 ↠ As you may know, your phone a ton of electronic hardware such as SmartTVs, printers, laptops, watches and even glasses run the Linux kernel. If you wanna know more about the Linux kernel, please watch this video on YouTube. The 3.4.113 version of the Linux kernel has been finished in Oct 26, 2016 and it's currently marked as EOL (End of Life) version.
MSM Hotplug ↠ This driver was coded by neobuddy. It is the chosen one to be the default hotplugging mechanism, supplying a nice range of options and a feature that dialogs directly with impulse governor called 'fast lane'. This feature will jump all cores into a speed trail when the CPU governor detects a high load average, thus reducing pressure on the main cores and improving performance.
Bricked Hotplug ↠ One of the recommended hotplug drivers. It was first coded by showp1984, now it is marginally cleaner and faster with neobuddy updates on top of it. It's a very complex hotplug but supplies one of the most stable hotplugging mechanism for any mobile Linux Kernel. Should be used in case the user wants total control on every bit of the plugging mechanism.
AutoSMP ↠ Yet another hotplugging, this one is focused on stability and fair resource usage, it's very minimal and offers bare minimal sets of controls. Should be used on user cases where battery life is the main target or just as a simple alternative to bricked hotplug.
Dual Core CPU Boosting ↠ This driver was coded by sultanxda for the Oneplus One recently. It allows a dynamic CPU boosting based on user input and hotplug activity. I have tweaked it to boost the first CPU to 1.2GHz for 1.5s on user input if the second CPU is already awake, if not it will then boost the second one to 1.4GHz for 1.5s as well. If the second CPU needs to stay online due to hotplug load, it will stay boosting the first CPU if the input is detected and if the frequency doesn't pass the threshold it will let the hotplug and governor decide what to do.
Dorimanx Fast Charger ↠ The fast charger driver that dorimanx uses on his kernel. Allows the configuration of the charging scheme, you can set from 500mV to 2000mV charging levels. The cable and charger will affect the charging level as well, don't use any charger/cable you found in the garbage can. I'm not responsible for the bad usage of this feature. Neither dorimanx, it's absolutely your fault if you damage your device.
Swap ↠ The Linux swap is very old and consolidate way of getting more RAM by caching older process and instances to a cached space out of the RAM space. This feature was common on servers but sooner came to the Android mobile devices as well. The swap space is usually not present in most devices as it costs more CPU power to "swap" the "files" from real RAM memory to another place, this place can be a hard drive partition, a portion the real RAM itself (Z-RAM) or even a file in some cases.
Z-RAM ↠ Another form of swap, commonly used on some Android phones due to higher CPU levels of instrumentation provided by ARM, in which we can same memory not by placing the caches to another place like a usual swap but compressing it in runtime as more instances and processes request real memory. As a note, Z-RAM has something called max compression streams, which are the maximum amount of parallel writes to the "new area", we set one per every 256MB of Z-RAM space, the default is 512MB of space compressed with two compression streams to keep power/battery compensation.
Faux Sound Control ↠ This driver, written by Faux, exposes the Kernel sound driver (WCD9320) to allow fine tuning from userspace, instead of the default static values they were set by the manufacturer. The fine tuning happens using two different APIs on my Kernel, one written for the proprietary app by Faux and another one by dorimanx, for STweaks. I've modified the STweaks scripts to add them on Synapse, calling it Synapse API for users that don't want to buy/use the proprietary app. The open Synapse API is capable of tuning the headphone, speaker and microphone gains without distortion since the magic happens in Kernel level and not in software level.
Read this twice before flashing/posting!
Overview: Min. CPU boost frequency overlays min. CPU frequency.
Overview: Bricked hotplug is a little messed up in Synapse organization.
Overview: MSM limiter frequency on suspend is actually the opposite causing frequency locks after awaking from sleep.
Overview: Possible race conditions causing BSOD for some use usecases, the frequency is low and causes unknown.
Overview: Sound control affects call audio volume and distortion is noticeable when the value is high.
Read this twice before flashing/posting!
Q. Can I flash this Kernel on Android Lollipop?
A. Yes and no, only Android 5.1, 6.0, 7.0 and 7.1 are supported natively.
Q. Is this kernel compatible with LG stock firmware/ROM?
A. No, LG stock is Android 5.0 and already has dorimanx Kernel support, Lambda is only for targets in the answer above, custom ROMs commonly.
Q. What are variants on the LG G2 development scheme?
A. As many
crap carriers on the market, LG is known to implement region based hardware, this causes the existence of series of devices that are identical but have some differences in terms of hardware. This forces developers to adapt and recreate the device trees for every single model.
Q. How to install this kernel?
A. Download the version you'd like to use and flash using a custom recovery like TWRP.
Q. I have an error in red when flashing the zip file, what is that?
A. Maybe your download was corrupted somehow, try to download once again.
Q. I have a "device not supported, aborting..". error in TWRP, what is wrong?
A. Your firmware/ROM's build.prop property 'ro.product.device' may have been modified and doesn't match the device filter protection implemented in TWRP. Ask your firmware/ROM's developer why he did this or post the value for 'ro.product.device' entry. Last but not impossible, the variant you have isn't supported like the ISAI variant family.
Q. I noticed the Synapse UI is so old-school, why can't I use Kernel Adiutor?
A. You can, but that would waste all the time I spent making UKM (read in details) unique for this kernel. You won't be able to use all the guts properly either. So, please don't use Adiutor as main Kernel Tweaking app, you can use it as a fallback option to see the frequencies and etc.
Q. I have problems to restore my settings with Synapse. What to do?
A. Well, this can be many things. The usual gripe happens when the bare ROM has an updated version of toybox and thus some busybox commands end up not working well. What I'd try at first glance is open it, to to TOOLS and tap Reset Synapse to clear the databases. Then, I'd open it again, dismiss any message on the screen and start tuning it to create the proper new database. After this, I'd export my config in SETUP just to save it for later and Reload Synapse. This usually works for most users...
Q. Why SELinux is set to permissive?
A. Some mods request the usage of permissive policies to work properly, it was needed to please everyone who had the mods before flashing the Kernel. You can always turn SELinux to enforcing in Synapse.
Click the Downloads
button above to go straight to Github
releases page, find the appropriate file for your variant
and flash it in recovery.
Many developers and people helped to bring the pieces of code needed to build the Lambda Kernel Project, some of them are listed below.
Source for Kernel
Source for AnyKernel2
Guide and introduction to Lambda Kernel
development at Github
~ Lambda Kernel
trademark and logos are copyleft
~ This is a development thread, be polite. ~
Lambda Kernel, Kernel for the LG G2
Source Code: https://github.com/GalaticStryder/kernel_lge_msm8974
Kernel Special Features:
Per core control, impulse governor, custom plugging, dual core boosting, fast charge, overclock...
Current Stable Version:
Infinito Beta 13
Stable Release Date: