KERNEL | Nougat CM / AOSP | 7th Jan | HalogenKernel R31 | UBER | 3.4.42


Senior Member
Apr 4, 2015


For Changelogs please see POST #2.
For FAQ please see POST #3.

 * Your warranty is now void.
 * I am not responsible for bricked devices, dead SD cards,
 * 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  simply laugh at you.
This kernel is ONLY meant for AOSP/CM ROMs.

Upto R14 Kernel supports Lollipop.
From R15 onwards Kernel supports ONLY Marshmallow.
From R18 onwards Kernel supports Doze + Marshmallow.
From R30 onwards Kernel supports ONLY Nougat.

This kernel is built especially for these 3 things :- 1. Audio, 2. Performance, 3. Battery Life.
The main aim of halogen is to bring performance without compromising stability & battery. And that is what I intend to do. Go ahead and try this kernel, and it should make your device much better.

(features of ONLY the latest version is mentioned)

  • Based on Linux Kernel 3.4.42
  • Updated with the latest CM14.1 sources
  • Built with UBER Toolchain GCC-4.9
  • Any Kernel 2 script used
  • Kexc Hardboot patched
  • Built with optimization flags for enhanced performance
  • GPU OC to 533 MHz & UC to 100 MHz
  • Disabled PowerHal log spam (thanks to @attack11)
  • Faux Sound Control v3.5
  • Headset in high performance profile
  • Slimbus overclocking for superior audio quality
  • Enabled CPU boost
  • Add Frandom
  • Power effecient work queues enabled by default
  • Reclaim RAM from loggers
  • Disable gentle_fair_sleepers for increased I/O
  • Enable advanced unaligned_access
  • Enable arch_power
  • Use power efficient workqueues for bam_dmux
  • Optimize square root algorithm
  • intelliactive, intellidemand, zzmoove cpu governors
  • intelliplug v4.0 cpu hotplug
  • enabled advanced tcp congestions
  • Ability to use your device as USB Keyboard / Mouse
  • Stereo call record support
  • psx2usb
  • KCAL v2 by Savoca
  • Dynamic FSync
  • Added optimized square root algorithm
  • Added optimized ARM_RWSEM algorithm
  • NEON kernel mode
  • Ex-FAT support


This kernel will be supported for a long time with updates directly streamed from CM kernel sources i . e . as long as CM keeps publishing updates to its base, this kernel will also be updated.

(do not mirror my links)
[ Latest Version ]
[ Older Versions ]

  1. Reboot into recovery.
  2. Make a nandroid BackUp.
  3. Select Install zip from SD Card.
  4. Select the Downloaded zip.
  5. Then Reboot to System.
  6. Leave your phone untouched for 2-3 minutes after first reboot to allow the kernel to spread it's wings.

  • Kernel Adiutor
  • Faux123 Kernel Enhancement Pro
I do not support any other apps.

~~Motorola for kernel sources
~~Luk & Luca -for various fixes
~~Thecrazyskull, DC07 -for cherry-picks
~~many more.......
Please don't start a war here if I forgot to mention someone. PM me and I will add him / her.

XDA:DevDB Information
HalogenKernel, Kernel for the Moto G 2014

Source Code:

Kernel Special Features: Faux sound, Kexec, KCAL, Intelliplug

Version Information
Status: Stable
Current Stable Version: R31
Stable Release Date: 2017-01-07

Created 2015-06-11
Last Updated 2017-01-07


Last edited:


Senior Member
Apr 4, 2015

(simplified changelog, for full changelog please look at my GitHub commits.)

R31 --> 07/01/2017

  • Merged CM Updates
For older changelogs :-

R30 --> 30/10/2016

  • First Nougat release
  • For changes please see post #670
R29 --> 24/07/2016

  • Merged CM Updates
R28 --> 08/06/2016

  • Merged CM Updates
  • AROMA installer
  • Added tripndroid IO Scheduler
  • CPU optimizations
  • ARM tweaks and updates
R27 --> 12/05/2016

  • Merged CM Updates
R26 --> 10/04/2016

  • Merged CM Updates
R25 --> 16/03/2016

  • Merged CM Updates
R24 --> 18/02/2016

Reverted the following :-
  • CPU OC/UC - 1593/96 MHz
  • CPU UV
  • LMK tweaks + Agressive LMK mode
  • Following CPU govs --> lionheart, dancedance, bioshock, alucard
  • Following Hotplugs --> Mako, Auto-smp
Added the following -->
  • Merged CM Updates
  • Built with UBER Toolchain GCC-6.0
R23 --> 19/01/2016

  • Merged CM Updates
  • Overhauled boot script
R22 --> 11/01/2016

  • Rebased kernel on android 6.0.1_r10
  • Rebuilt kernel from scratch
  • Merged a lot of CM updates
  • Added futex updates
  • Cpu UV added (hardcoded values)
  • Added 2 new hotplugs :- Auto-smp & Mako
  • Removed Alucard Hotplug
  • Overhauled updater script
R21 --> 30/12/2015

  • Add CPU OC/UC - 1593/96 MHz
  • Adapt cpu_govs for CPU OC/UC
  • Merged CM Updates
R20 --> 29/12/2015

  • Merged CM Updates
R19 --> 23/12/2015

  • Added 3 new cpu_govs: Lionheart, DanceDance & Bioshock
  • Enabled CPU boost
  • Added optimized ARM RWSEM algorithm
  • ARM updates merged directly from CAF (See Git)
  • Mutex updates (See Git)
  • LMK updates (See Git)
  • Add agressive LMK
  • Build using -O3 & -graphite flags for enhanced performance
  • Cortex-A7 optimizations in Makefile
  • block: Disable add_random
  • Implemented LoUIS cache
  • Made bioshock as default gov. in boot script
  • Many other optimizations (smp, rcu, vfs, vfp, etc... See Git)
R18 --> 20/12/2015

  • Merged latest CM Updates (support for Doze)
R17 --> 17/12/2015

  • Merged latest CM Updates
  • Made interactive as default gov. in boot script
R16 --> 03/12/2015

  • Fixed FM Radio not working
  • Fixed Section Mismatches
  • Enabled pipe flag
R15 --> 27/11/2015

  • Build Kernel from scratch based on cm-13.0 kernel base
  • Compiled using Hyper-Linaro 5.1 Toolchain
  • Kernel version brought down to 3.4.42 temporarily
  • Revert SE Linux force permissive
  • Revert use Modulo sched & strict alias flags
  • Enabled Simple GPU Algorithm
R14 --> 11/10/2015

  • Merged latest updates
  • Updated kernel to v3.4.109
  • Updated bfq to v7r8
R13 --> 6/09/2015

Brought back the following :-
  • SE Linux tweaks
  • msm:kgsl tweaks
  • Enable unaligned_access
  • DOLBY dap dependency fix
Removed the following :-
  • Simple GPU Algorithm
New features :-
  • Update with latest CM sources
  • Implement Adreno Idler
R12 --> 26/08/2015

Removed the following :-
  • CPU UC to 96MHz
  • SE Linux tweaks
  • USB Fast Charge v2
  • Added optimized ARM_RWSEM algorithm
  • msm:kgsl & wcnss tweaks
  • Optimize square root algorithm
  • Enable unaligned_access
  • DOLBY dap dependency fix
  • Ultrasound & ASoC : qdspv2 tweaks
Changed the following :-
  • Update 'zzmoove' cpu_gov to v1_beta-8
  • Set 'zzmoove' as the default CPU Gov
R11 --> 22/08/2015

  • Merged latest CM updates
R10 --> 13/08/2015

  • Once again rebuilt the whole kernel ! ;)
  • Updated with latest CM sources
  • Possibly fix interactive deep-sleep issues
R9 --> 25/07/2015

  • Updated with the latest CM sources
  • Rebased and built whole kernel from SCRATCH
  • Removed useless tweaks
  • Updated cpu_hotplugs & cpu_govs
  • Optimized zzmoove profiles again
R8 --> 11/07/2015

  • Updated with the latest CM sources
  • Reverted RAM OC to 566MHz
  • Reverted some power hogging tweaks
  • Updated hotplugs :- intelliplug, msm-hotplug (neobuddy89 versions)
  • Added Bricked Hotplug
  • Optimized zzmoove profiles
R7 --> 30/06/2015

  • Disabled msm_limiter
  • zzmoove : add back zzopt & zzmod, zzopt unstable for now.
  • Introduce kernel cooker
  • Bug fixes
R6 --> 24/06/2015

  • Updated kernel version to 3.4.108
  • Enabled kernel_config_neon
  • zzmoove : remove profiles 'zzopt' & 'zzmod'
  • Add strict_aliasing & modulo_sched flags
  • Add msm:kgsl & wcnss tweaks (see GitHub)
  • Add MSM Frequency Limiter driver v3.6
  • Add Ultrasound & ASoC : qdspv2 tweaks (see GitHub)
  • RAM OC to 566 MHz
  • And many more I can't fit in here, so please checkout GitHub.
R5 --> 20/06/2015

  • Added USB Fast Charge v2
  • Enabled NEON mode
  • Added Ex-FAT support
  • SE Linux tweaks (see GitHub)
  • zzmoove : set default profile to 2
  • tune up some governors
  • Enable intelliplug by default
  • Random / entropy tweaks
R4 --> 17/06/2015

  • CPU UC to 96 MHz
  • GPU OC to 533 MHz & UC to 100 MHz
  • Disabled PowerHal log spam
  • Reclaim RAM from loggers, increasing default ram to 883 Mb
  • Disable gentle_fair_sleepers for increased I/O
  • Enable unaligned_access
  • Enable arch_power
  • Use power efficient workqueues for bam_dmux
  • Optimize square root algorithm
  • Many tick, clockevents & timer tweaks (see GitHub)
  • Lower swappiness from 60 --> 45
  • Added optimized ARM_RWSEM algorithm
  • Force SE Linux permissive
  • Added state notifier driver
  • Enabled quick wakeup
  • NOATIME and NODIRATIME as default
R3 --> 14/06/2015

  • CPU Govs removed :- wheatley, nightmare, HYPER, darkness, pegasusq, ondemandplus
  • Added simple GPU Algorithm
  • 3 new CPU Hotplugs added :- intelliplug, alucard, msm-hotplug.
  • Power effecient Wqs enabled by default
  • Reclaim RAM from loggers
  • devfreq:Add conservative governor
  • devfreq tweaks (see GitHub)
  • Dynamic FSync added
  • Intellithermal v2 added
R2 --> 13/06/2015

  • New CPU Govs added :-
    intelimm, intellidemand, intelliactive, smartmax, pegasusq, alucard, impulse, ondemandplus, wheatley, yankactive, nightmare, HYPER, darkness, zzmoove.
  • New TCP Congestions enabled :-
    westwood, cubic, reno, hstcp, hybla, vegas, veno, scalable, lp, yeah, illinois, hctp, advanced, highspeed.
  • New I/O Schedulers added :-
    fiops, vr, zen, sio, bfq, cfq, deadline, noop, tripndroid, fifo
  • Added KCAL v2 by Savoca
  • Optimized slub memory allocation
  • Increase torch power by 20 mA
  • Added stereo call recording support
  • psx2usb
  • Added NVIDEA Power effecient patches
  • Changed CFlags = Ofast
  • Optimize sfck compression
  • Many sched tweaks and optimizations (see GitHub)

R1 --> 12/06/2015

  • Initial Release
Last edited:


Senior Member
Apr 4, 2015


This kernel does not have X, Y or Z feature. Please add it !
No such requests shall be entertained.
For this device the closer to stock we are, the better it is. Hence no need for "fancy" useless features/tweaks. The main aim of halogen is to bring performance without compromising stability & battery. And that is what I intend to do.
AND if you really want this or that feature which is not there in halogen, please feel free to compile your own builds.

Oh no ! I encountered a BUG !
Upload the file named last_kmsg that located in /proc/last_kmsg. It contains kernel logs. Clearly state the bug / what you experienced along with your current kernel settings. Bug reports without logs will be ignored.

Recommneded settings ?
Halogen is pre-configured for best. For custom settings please google, do some research and you are encouraged to post your own settings in this forum. You can start here.

My battery drained overnight !! Look at these screenshots...
Not a halogen fault. The kernel does not “drain” battery. On Android devices, the kernel provides a mechanism for keeping the phone awake, called a wakelock. Processes running on the device (e.g. apps and services) can ask the kernel for a wakelock, and the kernel will oblige. So yes, the kernel is technically keeping the phone awake, but only because an app or service has asked it to. It is these apps and services that are misbehaving and causing drain, not the kernel. Doze mode, introduced in Android Marshmallow, is designed to limit the time that apps and services can wake up the device.
All thanks to @flar2 for his excellent post.
Last edited:


Senior Member
Apr 4, 2015
[ 12 June, 2015. Version --> R2 ]
New features added :-
** 14 new cpu govs added !!!(check changelog for their names) **
** New I/O schedulers added (added tripndroid) **
** New TCP Congestions added **
** Stereo call recording **
and MUCH, much more......................CHECK CHANGELOG.
Did you know ? :-
With the release of R2, Halogen Kernel becomes the ONLY kernel with maximum number of cpu govs !!! (among all kernels for stock/cm of titan/falcon).
This kernel has around 20 cpu govs !!!
Try reading this guide by @gsstudios before selecting out among the many CPU Govs.
E _N_J_O_Y !!!;)


Senior Member
Jan 2, 2013
Last edited:
  • Like
Reactions: TiGuy82


Senior Member
Apr 4, 2015
there is something terribly wrong... at boot maximum cpu frequency is set to 384MHz, this give terribly long boot time, stuttery bootanimation and longer time for apps optimization after a rom update
Even I had been facing the bug...BUT I fixed it out and the BUG IS NO MORE !!!
I will be soon releasing the update ! The problem was with some improperly adapted CPU governors which limited the max cpu freq to 384 at boot. I have removed them and now the cpu clocks @ 11190 during boot.
I appreciate your work with the script. Its good, and I hope you will keep supporting my kernel in the future.:)
  • Like
Reactions: YuriRibeir0


Senior Member
Feb 9, 2012
Available RAM is less than stock CM12.1 kernel - ~900 MB vs ~860 MB. Pretty sure you're already aware of it, but thought I'd highlight it anyway just in case.

Sent from my Moto G 2014 using Tapatalk

CreasingMass Dev

Senior Member
Jul 16, 2014
C. Izcalli
Is the kernel stable? i'm using cm12.1 for daily use and some of the kernels i've tried always gave me the problem where the logcat is spammed with something liek "failed to acquire lock" everytime i touched the screen, can someone report?


Senior Member
Apr 4, 2015
Available RAM is less than stock CM12.1 kernel - ~900 MB vs ~860 MB. Pretty sure you're already aware of it, but thought I'd highlight it anyway just in case.

Sent from my Moto G 2014 using Tapatalk
Yes I m aware... It will be improved in future versions.
However it does not matter much, Linux handles memory in a different way and will release appropriate ram when required. What really matters is whether you are getting a smooth experience or not.


Senior Member
Dec 11, 2013
Available RAM is less than stock CM12.1 kernel - ~900 MB vs ~860 MB. Pretty sure you're already aware of it, but thought I'd highlight it anyway just in case.
Yes, there are changes in that. As the OP said, it depends on the kernel. Since our device has 1024MB RAM, the remaining RAM gets allocated to Graphics, audio processing, etc. If you are familiar with it, its very similar to Intel & AMD's allocation of RAM to Graphic memory in computers.