I am not a developer by any means, I did my homework and I figured out how to compile and cherry-pick cool things. I am open to advice and guides that can help me make this ROM even better, you can also always ask for features and I'll do my best to bring them in.

As this is my rom for daily use, it contains many, many tweaks and endless hours of work of the best devs of XDA. In these features you can find Faux's Intelliplug, Yank555 powersuspend driver and many other stuff. At this point if you use any other kernel with my ROM you will lose about 80% of the features and the experience I want to provide will be lost. If you like other custom kernels such as Pink please kindly use official Nightlys.

If you are still here and haven't ran away you must know that you can always ask me for new features you see in other fine roms (Such as Temasek, CrDroid, etc) and if everybody like that feature (Including me) I will gladly bring it into the ROM. Don't forget that if you want a full featured ROM there's plenty of fine choices. The main idea with this is the same as with my old CM11 builds; "To stay as close to Stable CM as possible while adding on a little somethin' somethin' to make things better."

DISCLAIMER: I am not responsible for any damages to your device, always have a nandroid on hand if anything happens

Source and credits:
*CyanogenMod for the awesome ROM and great support for our device
*Somcom3X our beautiful CM maintainer.
*JustArchi for the countless hours of testing build flags and Toolchains.
*Chainfire for the great Superuser.
*bedalus (picked lot of things from your kernel)
*GalacticStrider for his amazing build work on SaberSunset.
*CL3Kener
*Faux
*Synergy510 For his amazing work with Saberize optimizations which made possible this ROM. (I also took his thread as base to make this one :P)This ROM wouldn't be possible without them, so please donate and show your support to them.

-Default scheduler is ROW
[+] Which is vastly superior than default on real life usage
-Killed custom cm PowerHAL in favour of Qualcomm implementation.
[+] This improves battery consumption both on iddle and screen on.
-Disabled hispeed_freq when screen is off
[+] Intended to improve energy usage on iddle
-Replaced some libs to match qcom vendor
[+] This one fix some very annoying logs on the PowerHAL as it looked for libs that didn't exist. Such as “QCOM*PowerHAL:*Failed to acquire lock”
-Added MSM8226 board optimizations
[+] Given more data to the compiler such as number of cores and cache L1/L2 to allow it to optimize the code even further

-Updated to latest cm-12.1 sources
-Reverted some custom PowerHal upstream commits since we are using qcom implementation
-Deleted profile settings that used to turn on MP-Decision on several tasks (We may now use Intelli-Plug without it messing around)

Updated to latest CM12 sources
Kernel and ROM are now separated, if you want my kernel it must be downloaded and flashed after the ROM.
Merged pull request of @Frazew
Fixed screen record which I had broke on Build 15
Build lited with Opti-Charger
Misc updates to Kernel

Build 15.1

Quote:

-Finished bringing features of old kernel to the new one
-Implemented misc build.prop tweaks (Commit)
-Introduced Opti-Charger (To improve RAM use, more info in the spoiler)

Custom ROMs in the beginning had limited space to work with which is why Cyanogen introduced opticharging to the custom release tool in order to shrink apks to fit more apps on system partitions of the original android devices. The opticharger script pulls apart apks near the end of the build and optimizes all pngs drawables found in them. Originally this script used optipng which is great and there is absolutely no quality loss involved in the png compressions but more recently I’ve begun using pngquant because it compresses pngs even smaller 30-70% with usually an average of about 50%. Pngquant does result in a slight loss of quality but nobody has noticed yet (See more on pngquant here: http://pngquant.org/) (If you are worried about quality you can always use optipng which compresses without any quality loss themers usually use this option instead)

Currently, CyanogenMod has abandoned the use of the opticharger but many ROMs still use it such as SLIM, AOKP, LiquidSmooth, Dirty Unicorns, Carbon, Validus, and many others. Themers and app developers alike use these techniques as well to make their apps/themes run more smoothly. Making pngs 70% smaller actually makes the loading time 3 times faster for these pngs and also saves you RAM. I understand apks aren't all pngs but you'd be surprised how many junk pngs google has left behind since froyo that serve no purpose but are loaded into your ram with SystemUI anyways. Thankfully opticharging shrinks all of those undesirables by usually 50-70% and saves you several MB worth of space and speeds up your SystemUI. Since you can't unload the system UI this is well worth the effort! My motto always is every little bit counts

Many still argue that high end device don’t need opticharging anymore because they are fast enough to handle these full-sized pngs. While this is true it still doesn’t change the fact that opticharing IS still slightly faster and opticharged apks do use less ram

Updated with latest CM12 sources
Intelli-Plug 4.0 with eco-mode is back.
Added some special changes to hotplug
Added option to hide the annoying icon of root at status bar. (@Pupet_Master bet you are going to love this one)
Switched to Linaro Toolchain 4.9.2 optimized for A7 Cortex architecture. (Rom is still compiled with SaberMod)
Misc tweaks to kernel.

*Ditched my old build environment and bringed up @JustArchi optimizations which takes Android to a whole new level

Important changes:
- Optimized for speed yet more all instructions - ARM and THUMB (-O3)
- Optimized for speed also parts which are compiled with Clang (-O3)
- Turned off all debugging code (lack of -g)
- Eliminated redundant loads that come after stores to the same memory location, both partial and full redundancies (-fgcse-las)
- Ran a store motion pass after global common subexpression elimination. This pass attempts to move stores out of loops (-fgcse-sm)
- Performed interprocedural pointer analysis and interprocedural modification and reference analysis (-fipa-pta)
- Performed induction variable optimizations (strength reduction, induction variable merging and induction variable elimination) on trees (-fivopts)
- Didn't keep the frame pointer in a register for functions that don't need one. This avoids the instructions to save, set up and restore frame pointers; it also makes an extra register available in many functions (-fomit-frame-pointer)
- Attempted to avoid false dependencies in scheduled code by making use of registers left over after register allocation. This optimization most benefits processors with lots of registers (-frename-registers)
- Tried to reduce the number of symbolic address calculations by using shared “anchor” symbols to address nearby objects. This transformation can help to reduce the number of GOT entries and GOT accesses on some targets (-fsection-anchors)
- Performed tail duplication to enlarge superblock size. This transformation simplifies the control flow of the function allowing other optimizations to do a better job (-ftracer)
- Performed loop invariant motion on trees. It also moved operands of conditions that are invariant out of the loop, so that we can use just trivial invariantness analysis in loop unswitching. The pass also includes store motion (-ftree-loop-im)
- Created a canonical counter for number of iterations in loops for which determining number of iterations requires complicated analysis. Later optimizations then may determine the number easily (-ftree-loop-ivcanon)
- Assumed that loop indices do not overflow, and that loops with nontrivial exit condition are not infinite. This enables a wider range of loop optimizations even if the loop optimizer itself cannot prove that these assumptions are valid (-funsafe-loop-optimizations)
- Moved branches with loop invariant conditions out of the loop (-funswitch-loops)
- Constructed webs as commonly used for register allocation purposes and assigned each web individual pseudo register. This allows the register allocation pass to operate on pseudos directly, but also strengthens several other optimization passes, such as CSE, loop optimizer and trivial dead code remover (-fweb)
- Sorted the common symbols by alignment in descending order. This is to prevent gaps between symbols due to alignment constraints (-Wl,--sort-common)

FAQ
Thanks a lot @Travisholt92 for writing this guide, please give him a big thanks here!

Question 1: I am coming from (Stock or CM11), how can i install this?

Answer 1:
1. Back up all of your files, text messages, and everything else that you dont want to lose (try Easy Backup in the Google Play Store). You will lose everything stored on your phones internal storage and applications , your SD card will be safe.
2. Download the latest build posted in OP and Download GAPPS and move the .zip files onto your SD card (Remember where you put these files).
3. Shut down your phone.
4. Reboot into recovery mode by holding down the volume down button and the power button, then releasing the power button. This will come up with the Fastboot interface. Press volume down to highlight Recovery and then press volume up to boot into recovery mode.
(through TWRP)
5. Press Wipe
6. Press Advanced Wipe
7. Select Dalvik Cache, Data, Internal Storage, Cache, and System.
(Do not select microSD card or USB OTG)
8. Swipe to wipe.
9. Press Install. At the top of the screen make sure it says "Storage: microSD card". Navigate to the ROM .zip file and press it.
10. Press Add More Zips and select the GAPPS .zip file.
11. Swipe to confirm flash, reboot system, enjoy SaberMod!

(If none of these answers fix your issue read the comments for others having similar issues to see if anybody has found a fix for the issue. If the issue hasn't been meantioned previously please report the issue, leave a comment. Make sure to state what build you are running and what kernel you are using if you installed a custom kernel. If its something that happens when you perform a certain action such as after sending a text your phone reboots, try and be as detailed as possible when reporting the bug)

Question 2: I just installed (insert build name here and issue below). How do i fix this?

A. and my device is stuck at boot animation, device boots but spams with system application errors (meaning installed by your ROM not from GAPPS) , or anything else that prevents you from using your phone.

Answer: Backup your device and follow the directions for answer 1. (install the last ROM you were running if you are coming from an AOSP build if needed to back up your data)

XDA Developers was founded by developers, for developers. It is now a valuable resource for people who want to make the most of their mobile devices, from customizing the look and feel to adding new functionality.Are you a developer? | Terms of Service