Current Version (As Of 07.24.2015): AK.284.OPO.CM12.1
Developed By: ak
- Compiled with Toolchain UBER 5.1
- New Synaptic drivers from CM12.1 – per-panel firmware loading
- -O3 Optimized
- Universal Kernel Control Support (Integrated into Kernel ZIP)
- Synapse Enabled
- Anykernel Ramdisk Format (Compatible with all ROMS)
- Bricked hotplug driver (Enabled by default)
- Intelli hotplug driver
- Msm hotplug driver
- CPU Freqs Table: 268Mhz 2880Mhz
- GPU Freqs Table: 200Mhz 587Mhz
- MSM Thermal full Control
- LZ4 Support
- ZRAM Support
- Kcal Control: Colors, Saturation, Hue, Contrast and more
- Voltage Control
- Sound Control
- Charge Control
- Kexec Hardboot – Multirom
- Arch Power
So what is a Kernel?
A Kernel is low level software that serves as a go-between for your device’s Operating System and Physical Hardware, by regulating the exchange of instructions between the two. Android devices use Linux-based kernels which aren’t exactly the same as what you would find within a Linux-based OS as they often contain coding specific to the version of Android it is serving, as well as the device itself.
In lieu of another ROM review this week, I’d like to discuss an aspect of Flashaholism that I consider just as integral to achieving peak system performance as the ROM itself, if not more so. The sheer number of possibilities made available through choosing the right kernel for your device are, as they say, endless. Be that as it may, it’s an element that is seemingly overlooked and neglected frequently, due in part to an overall lack of understanding, as well as the potentially overwhelming technical nature of the customizations involved. I’m here in an attempt to demonstrate the importance of an optimized kernel in any Flashaholic’s arsenal, and make it all seem just a bit less intimidating for some of our more casual users.
Speaking of arsenals, I’ll be taking this opportunity to showcase AK Kernel, why? Because it’s my go-to, my rock, my Knight in Shining Armor. It’s true that there are a handful of other well-received kernels available for the OnePlus One, the second most popular probably being Franco, as well as Boeffla, Furnace, Tyr, and Metallized, but in my humble opinion none of them hold a candle to the versatility offered by AK, they just don’t, and I’ll gladly debate that wants to call my bias.
Now with that said, I don’t intend to use this article as a platform on which to trash its competitors, as they are all solid kernels in their own right, and most definitely superior to comparable stock options. Some of these may even be a better fit, or more appealing to those users that want a plug-and-play kernel without the need to slog through the cornucopia of customizability that is AK. However, I’ve always been of the opinion that when delving into kernel mods, best results are achieved by those that have at least some semblance of an idea as to what they’re doing while being aware of the repercussions of the changes they make. Beyond that, if this article in any way helps you to get better a grip on AK’s functionality then you will undoubtedly be able to handle the others just fine.
Now, I’ve seen some users that have had less than ideal experiences with AK, and I think a lot of that has to do with a lack of understanding in regard to properly utilizing what it has to offer. I’ve heard the ‘Franco = Battery Life’ mantra, the ‘Boeffla is better at this’, ‘Flash Furance for that’ arguments. What these users fail to realize is that AK, unlike some of its competitors, is not designed for a specific purpose or to excel in one particular area while compromising another. AK excels at EVERYTHING; it’s incredibly proficient at doing what YOU tell it to do. You just need to know how to effectively communicate with it, and once you do, you’ll quickly realize that you can just as easily replicate the configurations of its aforementioned siblings should you so choose; or better yet tune to your own personal specs and create something that’s uniquely you based on individual preferences.
Want a blazing fast, hyper-performing, graphical beast of a processor? AK can do that. Want an economical, energy conscious configuration that slowly sips juice for optimal battery life and max SOT? AK can do that. Would you prefer the best of both worlds, a profile that provides your device with the power that it needs, when it needs it, and works to conserve power when it doesn’t? AK can definitely do that. I believe the problem that users sometimes run into with AK is that they approach it similarly to how they would with some of the other more common options. They flash AK, and never delve any deeper into it then the default settings permit and then wonder why it’s not performing miracles for them. It’s simply because you haven’t told it which miracles to perform yet.
What I had planned to put initially was a comprehensive, soup to nuts breakdown of the Synapse/UKM interface by which AK Kernel is configured, individually highlighting each element and thoroughly explaining what it does and how it’s utilized. I’d like to get to that point eventually, but it’s occurred to me fairly quickly that if I truly went that route, this article would become a bonafide, novella-sized User’s Manual and unlike myself, I’m sure most of you would lose interest after eight pages of discussing the subtle nuances of MSM Limiter. So what I’m going to do is provide you all with a basic overview this week, and if the interest is there, I will continue from this point with subsequent articles digging further into AK’s tunables.
So where to begin? For those of you with an interest in AK that would like to maximize your experience but don’t realistically envision getting down and dirty in Synapse or putting forth the effort required to educate yourself on its intricacies, I would strongly urge you to visit the following thread wherein those of us that are in the know do all the heavy lifting for you:
What you’ll find here is a regularly updated list of some of the most popular Synapse Profiles put together by very knowledgeable individuals as well as an indication as to the type of application each profile is best suited for (i.e. Smooth UI, Everyday, Gaming, and Battery Saving). You’ll also find an SOT range specified so that you’ll know what you can expect in terms of Battery Life from each Profile. These Profiles can serve as excellent foundations on which to build your own unique configuration, or you can simply restore them as is until you begin to feel more confident in your abilities. Personally, I’m a pretty big fan of DemonPhoenix’s work on his MixMash series, and often use his profiles as a base on which to build my own. Honorable mention goes to Stylo King and his work.
Something I will touch on briefly in this article are CPU Governors & I/O Schedulers. These two elements exist at the core of all kernel modification, and are often the subject of many commonly asked questions. For starters, allow me to provide you with a brief explanation of what each of these things are, as well as what it is that they regulate.
What is a CPU Governor?
Simply put, a Governor is a component that acts by controlling your CPU’s Clock Speed, or more commonly, Frequency. This Frequency is typically expressed in Megahertz (2457 MHz) and can also occasionally be seen expressed as Gigahertz (2.5 GHz). Your Governor’s primary function is to regulate Processor Frequency by increasing or decreasing it to match System Demand, based on specific criteria and parameters coded into each unique Governing Module. For the end user, this plays a critical role in affecting the overall ‘smoothness’ of one’s interface, and perhaps even more importantly, Power Consumption.
What an a I/O Scheduler?
In essence, an I/O scheduler regulates the order in which data is written, or read from storage. I/O schedulers act by prioritizing each block of data based on which process is requesting the operation, as well as that operation’s estimated completion time. Like Governors, there are many, many different I/O scheduling modules available each programmed with unique criteria which governs the way in which these processes are carried out.
For now, I won’t be exhaustively covering the hundreds upon hundreds of available Governors and I/Os, nor am I likely to ever do such a thing. What I would like to do is specifically focus on those supported within AK Kernel. As stated, now is not the time for me to delve deeply into what makes each unique module tick, and what exactly differentiates them from one another, however that IS something I may do in future write-ups. What I will do, in the most concise way possible, is provide you with a list of what you can expect to find within AK itself.
So, that’s about where I’m going to wrap it for this week. Based on reader response I would like to continue this exposé in the coming weeks by diving deeper into Synapse and exploring it’s configurables in depth, piece by piece as a teaching tool to demonstrate how to better utilize what AK has to offer to improve overall user experience and get the most out of your device.