[G2 Android Development] GalaticStryder:
​

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!​

Cod. 001:

State: Solved!

Priority: Normal.

Overview: Min. CPU boost frequency overlays min. CPU frequency.

Cod. 002:

State: Solved!

Priority: Low.

Overview: Bricked hotplug is a little messed up in Synapse organization.

Cod. 003:

State: Solved!

Priority: High.

Overview: MSM limiter frequency on suspend is actually the opposite causing frequency locks after awaking from sleep.

Cod. 004:

State: Unsolved.

Priority: High.

Overview: Possible race conditions causing BSOD for some use usecases, the frequency is low and causes unknown.

Cod. 005:

State: Solved.

Priority: High.

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.​

Dorimanx

Savoca

RenderBroken

Snuzzo

Neobuddy

Myfluxi

FranciscoFranco

AlexDNS

Faux123

AK

SultanXDA

Tsunamical

Showp1984

Apbaxel​

​

Source for Kernel at Github.

Source for AnyKernel2 at Github.

Guide and introduction to Lambda Kernel development at Github.
​

​

~ All project resources were built with free and open source software. ~​

~ Lambda Kernel trademark and logos are copyleft. ~​

~ This is a development thread, be polite. ~​

XDA:DevDB Information

Lambda Kernel, Kernel for the LG G2

Contributors

GalaticStryder

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...

Version Information

Status: Stable

Current Stable Version: Infinito Beta 13

Stable Release Date: 2017-01-29

Created 2015-12-13

Last Updated 2017-01-29