[KERNEL] [MM] [H815 & H811] ★ SimpleGX KERNEL v3.0.0 ★ (17th July)


Inactive Recognized Contributor
Jun 24, 2010
★ Montpellier ★


This kernel concerns LG G4 (both H815/International and H811/T-Mobile) versions only

You will void your warranty after flashing this kernel
I'am not responsible of any damage caused to your device after flashing this kernel

Some reading..

Here I go again from Samsung, but now to LG adventure!
SimpleGX is only looking for simplicity and stability, trying to aim for best battery life, smoothness and performance experience, than a pure stock kernel.
It has been mostly designed for people who like "flash-and-play" kernels (you flash and you can directly enjoy, without doing customizing anything to get the best battery life and smoothness experience possible), that is how I always liked things.
This kernel will never implement experimental things to stay as close as possible as stock and avoid bugs like many other kernels. Choice is large in H815 kernels, but I wans't personally enough satisfied after testing all of them, so I decided to make mine for my personal use first, and share it to the community.
Keep in mind I still dont qualify myself as of a real developer, but just a basic person with some android/linux knowledge already.
As always, I'm enjoying sharing my contribution here on XDA for free, which taking me a lot of (my free) time to test before releasing (my device has already been a lot tortured to release this kernel) so, if you can offer me a little beer, it will be really appreciated!

This kernel must be only flashed over an official LG ROM and not AOSP/AOKP (like CyanogenMod, etc) !

Feel free to include my kernel to your ROMs / Threads but please don't forget to inform/ask first via PM and credit me in your original thread.

(over a pure stock kernel) :
  • Better battery life and overall performance experience
  • Trying to include only efficient (but not so much experimental) tweaks
  • Stay as close as possible from pure stock source

★ FEATURES (up-to-date) ★ :
Base :
  • Directly based from latest available "LGH815_Android_Marshmallow_V20j" Android 6.0 source from LG (for clean work and stability)
  • Compiled with UBER-TC (4.9.4 / 2017-01-15 / aarch64-linux-android) toolchain with optimization flags
  • Ramdisk from 20g stock kernel
  • Stock Linux 3.10.84
Main :
  • Auto install SuperSU 2.79 SR3
  • Auto install BusyBox 1.26.2
  • Native ExFAT support
  • FIOPS scheduler added
  • noop as default I/O scheduler
  • Optimized other stock schedulers for SSD's
  • All TCP congestion control modules activated with Westwood currently as default
  • SElinux set to "Permissive"
  • Stock ZRAM enabled (may be configurable with scripts provded in downloads section)
  • Logd disabled
  • init.d support
  • USB fast charge (but disabled as default)
  • KCAL post-processing driver
  • DriveDroid support
  • Dual-boot ready
  • All yet QuadRooter vulnerabilities fixed
  • Some miscellaneous tweaks, fix and patches to improve overall smoothness and battery life experience
  • ... and (maybe?) more to come !
Various tweaks :
  • Full changes to be discovered directly in my Github source below
(some tweaks may be configurable via Kernel Adiutor)

Features that will NEVER be included in this kernel :

  • Any CPU/GPU overclocking / undervolting
  • Adreno idler
  • state_notifier
  • Any upgrade of Linux kernel 3.10.x
  • Dual-Boot Sammy/AOSP
  • CyanogenMod compatibility
  • MIUI compatibility
  • Any integrated pre-settings scripts (kernel will always stay with stock values)
  • etc

  • An unlocked Bootloader
  • A Marshmallow LG firmware (H815-20X - X means A/B/C/D/E/F/G/H/I/L, etc)
  • A custom recovery (TWRP recommanded), to flash the kernel
  • Optional : to control some kernel tweaks, you can install Kernel Adiutor)

★ SOURCE (up-to-date) ★ :

  1. Backup everything you need (internal & external),
  2. Unlock your Bootloader
  3. Flash TWRP recovery
  4. Reboot to Recovery
  5. Make a backup of your boot partition (just in case)
  6. Flash kernel
  7. Reboot and enjoy !

★ FAQ ★ :
  • Can I install this kernel into my actual ROM/Firmware ?
    As long as you run any Marshmallow firmware, it should be compatible. For your information, in the zip name, "X" means firmwares A/B/C/D/E/F/G/H/I/L, etc.
  • What is the difference between H815 and H811 versions ?
    If your LG G4 is the International version then it's called H815, if it's the T-Mobile version then it's H811. Both worlds are compatible with this kernel. Please download the right version corresponding your device. The difference between the two builds are just the respective defconfigs for each devices.
  • I checked into system info and can still see "3.10.83", is this normal ?
    It's because I don't upgrade stock linux 3.10.83 and system info only show this information. To see if you flashed kernel properly, please check with Kernel Adiutor (into kernel version), or CPUSpy, etc.
  • I'm feeling some weird battery drain, how can I fix this ?
    Try THIS tips, it should do the trick.

★ for H815 ★
★ for H811 ★
★ ZRAM scripts ★

Need supports ? all kind of questions must be posted on this thread directly. Be sure to read at least completely this first post before asking any question.
If you enjoy this kernel, don't forget to rate this thread
, and clicking the 'thanks' button (right below) is always appreciated to keep this thread maintained ;)




Last edited:


Inactive Recognized Contributor
Jun 24, 2010
★ Montpellier ★


17.07.2017 : v3.0.0 released.
  • Fully and completely rebased from latest available 20o official LG source (for clean work)
  • Ramdisk updated to 20o
  • Update UBER-TC toolchain to latest 2017-04-22 (from @DespairFactor)
  • Removed KCAL post-processing driver (was causing some artifacts sometimes while browsing)
  • Removed some unnecessary commits about QuadRooter patches and microphone fix while recording (since new 20o source already fix them by itself)
  • Other personnal minor kernel compilation optimizations

31.03.2017 : v2.1.0 released.
  • ramdisk updated to 20p
  • Removed SuperSU (I now prefer to let people decide by themselves which root solution they want to have)
  • Removed BusyBox from osm0zis (same as root above)

05.03.2017 : v2.0.3 released.
  • fix sound recording problem from latest 20L firmware
  • Update toolchain to latest UBER-TC 2017-02-26 toolchain (from @DespairFactor)
  • tools: update mkbootimg

01.03.2017 : v2.0.2 released.
  • ramdisk updated to 20l

31.01.2017 : v2.0.1 released.
  • Revert back to FIOPS as default I/O scheduler.

28.01.2017 : v2.0.0 released.
  • Fully and completely rebased from latest available 20j official LG source (for clean work)
  • ramdisk updated to 20g
  • BusyBox installer updated to 1.26.2 from osm0sis
  • sbin: update internal busybox to 1.26.2 from osm0sis
  • defconfigs: set noop as default I/O scheduler (instead of fiops)

19.01.2017 : v1.5.10 released.
  • Now compiled with latest UBER-TC 2017-01-15 toolchain (from @DespairFactor)

15.01.2017 : v1.5.9 released.
  • SuperSU updated to 2.79 SR3
  • sbin: update internal busybox to 1.25.1 from osm0sis
  • defconfig: enable back stock ZRAM
  • Added two flashable ZIP's to configure ZRAM (can be found in downloads section).
    Few other scripts will be available very soon. Actual ones are to disable or enable ZRAM (stock flashing kernel will enable ZRAM as default now).
  • Some new UI retouch during flashing procedure

25.12.2016 : v1.5.8 released.
  • simplegx.sh: added a small battery life tweak
  • Minor retouch during flashing procedure (updater-script)
  • Removed old useless init.d script during flashing procedure

24.12.2016 : v1.5.7 released.
  • ramdisk updated to 20k

24.12.2016 : v1.5.6 released.
  • SuperSU updated to 2.79
  • ramdisk updated to 20j

30.11.2016 : v1.5.5 released.
  • SuperSU updated to 2.78 SR5

29.11.2016 : v1.5.4 released.
  • SuperSU updated to 2.78 SR4
  • simplegx.sh: stop google service and restart it on boot

27.10.2016 : v1.5.3 released.
  • defconfigs: enable both "WQ_POWER_EFFICIENT_DEFAULT" and "CRYPTO_CRC32_ARM64"
    A little mistake from me but I completely forgot to make them active.. so those two tweaks are now really enabled.

21.10.2016 : v1.5.2 released.
  • block_dev: implement readpages() to optimize sequential read
  • ramdisk: minor update into simplegx.sh script

19.10.2016 : v1.5.1 released.
  • ramdisk updated to 20L

15.10.2016 : v1.5.0 released.
  • Fully and completely rebased from latest available 20i official LG source (for clean work)
  • ramdisk updated to 20i
  • BusyBox updated to 1.25.1
  • UBER-TC toolchain updated to latest available (20160726).

Previous releases changelog...

02.09.2016 : v1.4.8 released.
  • Update SuperSU to latest 2.78

20.08.2016 : v1.4.7 released.

31.07.2016 : v1.4.6 released.
  • add FIOPS I/O Scheduler
  • defconfig: add FIOPS I/O Scheduler and set it as default

30.07.2016 : v1.4.5 released.
  • ext4: Speedup WB_SYNC_ALL pass called from sync
  • arm64: crypto: increase AES interleave to 4x
  • readahead: make context readahead more conservative
  • writeback: fix race that cause writeback hung
  • writeback: fix writeback cache thrashing
  • mm: slub: Default slub_max_order to 0

05.07.2016 : v1.4.4 released.
  • Reverted all previously added cpu-hotplug things
  • Update SuperSU to latest 2.76 stable

18.06.2016 : v1.4.3 released.
  • soc: qcom: add bricked_hotplug driver
  • soc: qcom: add msm performance hotplug
  • defconfig: Enable 'BRICKED_HOTPLUG'
  • defconfig: Enable 'MSM_PERFORMANCE_HOTPLUG_ON'

11.06.2016 : v1.4.2 released.
  • ramdisk: update to 20h

01.06.2016 : v1.4.1 released.
  • cpufreq: cpu-boost: don't boost big cluster on input touch unless it has at least 1 task running on any of its cores to save power
  • cpufreq: governor: Be friendly towards latency-sensitive bursty workloads

23.05.2016 : v1.4.0 released.
  • defconfig: disable ZRAM (again)
  • Revert "cpufreq: governor: Be friendly towards latency-sensitive bursty workloads"
  • Update SuperSU to latest 2.74 beta

18.05.2016 : v1.3.6 released.
  • Update SuperSU to latest 2.72 beta

06.05.2016 : v1.3.5 released.
  • ramdisk: update to 20g

01.05.2016 : v1.3.4 released.
  • Fixed battery drain issue from stock 20f ramdisk.

23.04.2016 : v1.3.3 released.
  • Makefile: force 'fno-pic'
  • ramdisk: update to 20f
  • ramdisk: removes new 'xfrm logging' service from stock 20f ramdisk
  • Now auto installing (latest 1.24.2) BusyBox during flashing procedure

08.04.2016 : v1.3.2 released.
  • arm64: lib: memory utilities optimization
  • arm64: kconfig: Move LIST_POISON to a safe value
  • crypto: crc32 - Add ARM64 CRC32 hw accelerated module
  • Fixed ExFAT support (for people which had issues with it)

03.04.2016 : v1.3.1 released.
  • Update compilation toolchain (UBERTC) from 20160303 to latest 20160401
  • Update SuperSU from 2.68 to latest 2.71 beta

29.03.2016 : v1.3.0 released.
  • SELinux: Reduce overhead of mls_level_isvalid() function call
  • arm64: topology: fix cpu power calculation
  • Revert "cpufreq: cpu-boost: don't boost big cluster on input touch unless it …"
  • Revert "mm: optimize Kernel Samepage Merging (KSM)"
  • Revert "mm/ksm: engage deferred timer by default"
  • Revert "power: process: drecrease time to enter sleep"

26.03.2016 : v1.2.9 released.
  • Migrate compilation toolchain to latest UBER-TC 4.9.4 - 2016.03 (infos)

21.03.2016 : v1.2.8 released.
  • Revert "defconfig: enable KSM and ZBUD"
  • power: process: drecrease time to enter sleep
  • futex: Implement lockless wakeups
  • sched: Implement lockless wake-queues
  • mm/ksm: engage deferred timer by default
  • mm: optimize Kernel Samepage Merging (KSM)

08.03.2016 : v1.2.7 released.
  • defconfig: enable back stock ZRAM, SWAP and ZSMALLOC
  • defconfig: enable KSM and ZBUD
  • defconfig: disable back SCHED_AUTOGROUP
  • Now auto installing (latest 2.68) SuperSU during flashing procedure

23.02.2016 : v1.2.6 released.
  • cpufreq: cpu-boost: don't boost big cluster on input touch unless it has at least 1 task running on any of its cores to save power

23.02.2016 : v1.2.5 released.
  • cpufreq: governor: Be friendly towards latency-sensitive bursty workloads
  • Bluetooth: hidp: fix device disconnect on idle timeout

19.02.2016 : v1.2.4 released.
  • Add USB fast charge (but disabled as default)
  • Add KCAL post-processing driver

13.02.2016 : v1.2.3 released.
  • tcp_output: set initial TCP window size to 64K for speed improvement
  • Makefile: optimize gcc toolchain for big.LITTLE system
  • ramdisk: fix init.d permissions

07.02.2016 : v1.2.2 released.
  • ramdisk: update to 20E

06.02.2016 : v1.2.1 released.
  • ramdisk: remove logd to avoid probable battery drain
  • ramdisk: update simplegx script

31.01.2016 : v1.2.0 released.
  • This release is like a new start. I completely started again from stock source and revised commits one by one (some were deleted, some added) because I wasn't satisfied enough about previous release.
    Less artificial, more efficiency but always more close to stock.
    Please visit my github page to see what exactly changed (old source deleted), or you can just read actual main features from post above.

26.01.2016 : v1.1.1 released.
  • ramdisk updated to 20D.
  • Added a slight optimization in Makefile.

24.01.2016 : v1.1.0 released.
  • Fully and completely rebased from latest available 20d official LG source (for clean work).
  • Fixed broken ExFAT (this time definitely).
  • Fixed broken Bluetooth (thx @slim80).
  • Some more tweaks for better smoothness and battery life.
  • Completely revised personal scripts for better kernel building (+ tools updated, etc).

21.01.2016 : v1.0.2 released.
  • Definitely fixed random lags/freezes.
  • ExFAT finally fixed ! (big thanks to my friend @xdamc2010 for his precious help)

15.01.2016 : v1.0.1 released.
  • Fixed some more random lags/freezes.
  • Slight tweak for battery life.
  • Some very slight ramdisk and Makefile changes.
  • ExFAT still not fixed (currentry trying to).

10.01.2016 : v1.0.0 released.
  • Initial release (check actual features).
Last edited:


Inactive Recognized Contributor
Jun 24, 2010
★ Montpellier ★


Thank you to support my work ! :highfive:
Last edited:


Senior Member
Sep 3, 2015
Any reason why you'll never add overclocking/underclock? It's your kernel and you're of course allowed to do whatever you want with it [emoji14]

Sent from my LG-H815 using Tapatalk

Rosa Elefant

Senior Member
Sep 20, 2010
Welcome to LG! I like your signature. "If you take life too seriously : just undervolt it." Heh, yes, instabilities... :)

I'll keep an eye on this kernel for experiences. I hadn't tried a custom kernel on my G4 yet...
Looks like this one is less likely to break things than others.

Last edited:


Senior Member
Dec 2, 2005
Corrupt sd card... going back to stock and waiting for a future release. In lupus kernel works fine too.

Thanks for your work anyway


Inactive Recognized Contributor
Jun 24, 2010
★ Montpellier ★
Thanks guys for the report about ExFAT issue, I'll fix this very soon :good:
(I wasn't aware because I still have my old 32gb sdcard so cannot test personally, I will attach a beta here in my next post, so you guys will confirm if it will work :good:)
Stay tuned!
Cheers' :good:


Senior Member
Oct 3, 2013
Czech Paradise
I have not problem with SD card because I using old 32gb card.
But overall performance is great and battery seems great too.
Im tested all custom kernels for LG G4 and this kernel seems good maybe best of all... :) :)
  • Like
Reactions: AndroidGX


Inactive Recognized Contributor
Jun 24, 2010
★ Montpellier ★
Sd card issue
Tested beta 2, still no go for sd card.
Thanks guys for your report. I know where the problem is, I'm currently stuck at signing exfat module step. It will be fixed asap (I hope) :good:

I have not problem with SD card because I using old 32gb card.
But overall performance is great and battery seems great too.
Im tested all custom kernels for LG G4 and this kernel seems good maybe best of all... :) :)
Thanks for your report, if you wait for official v1.0.1, you'll even be more surprised, removing a bit more both thermal and random lags :good:
'laters :cowboy: