[EOL][ROM+KERNEL] Unofficial CyanogenMod 12.1 with CAF 3.4.0 kernel [Apr. 10, 2016]

Search This thread

Sultanxda

Recognized Developer
Code:
/*
 * Your warranty is... still valid?
 *
 * 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 ROM
 * 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 laugh at you.
 *
 */

This is an unofficial CyanogenMod 12.1 build I developed after seeing some of the craziness in the official CyanogenMod kernel (such as massive merges from different sources and untested cherry-picks that introduce random reboots), as well as craziness with CyanogenMod's camera libraries. If you just want your phone to work without any fancy frills then you might be interested in using this. The ROM is the same as official CM12.1 on the outside, but there have been many optimizations under the hood. It comes with a fancy unique kernel I worked on that is cleanly based off of the latest CAF sources from Qualcomm.

Custom kernels are not compatible with this ROM unless otherwise noted. I will not provide support if you install a custom kernel.

ROM features:
  • Based off latest generic CyanogenMod 12.1 stable sources (root access is not included)
  • OTA updates via built-in CMUpdater
  • OxygenOS camera libraries (no camera bugs and improved camera performance)
  • Snapdragon Camera app by Qualcomm (comes with many unique features, such as high-speed recording with audio)
  • Custom camera HAL featuring:
    -Intelligent anti-shake algorithm (significantly reduces motion blur when capturing photos)
    -Faster autofocus in low lighting conditions
    -No stuttering/frame drops in camera viewfinder (viewfinder frame rate won't go below 30 FPS)
    -Slow-motion video recording at 60 FPS, 90 FPS, and 120 FPS for 720p, and 60 FPS for 1080p
    -High-speed video recording with audio at 60 FPS, 90 FPS, and 120 FPS for 720p, and 60 FPS for 1080p (you need to use the Snapdragon Camera app in order to use high-speed recording)
    -1080p video recording with the front-facing camera
    -2.5k 1440p video recording with the front-facing camera and back camera (only with the Snapdragon Camera app that comes with the ROM)
    -4k video recording at UHD and DCI resolutions
    -Manual focus
    -Manual ISO control
    -Slow shutter (ranging from 1/5000th of a second to 2 seconds)
    -More picture sizes than plain OxygenOS, such as 9.7MP 16:9
  • Many other misc. improvements under the hood

Kernel features:
  • Based off latest CAF Lollipop kernel source from Qualcomm (LA.BF.1.1.1_rb1.26)
  • Removed lots of excessive bloat
  • Rewrote battery driver (for the BQ27541 fuel-gauge chip; battery % readings are more accurate, there are various
    safety mechanisms now, and you may get better battery life)
  • Rewrote half of the Synaptics touchscreen driver (over 2500 lines of code modified; your touchscreen might work better)
  • Newest available Synaptics touchscreen firmware (no battery drain)
  • Dynamic CPU input boost driver I wrote myself (makes the phone feel smooth)
  • CPU underclocked to 1958MHz by default (you can disable this; see why I did this in the FAQ in the 3rd post)
  • Vibrator is automatically disabled when recording videos (so the buzzing noise doesn't get in the videos)
  • Custom thermal driver I wrote myself (keeps the phone cool)
  • LCD KCAL by Savoca
  • Westwood TCP congestion algorithm (enabled by default)
  • F2FS support
  • NTFS support
  • No placebo patches, features, or compiler "optimizations"
  • Many other misc. improvements not listed here

Source code:
Kernel (cm-12.1-caf branch): https://github.com/sultanxda/android_kernel_oneplus_msm8974
Local manifest (contains the rest of the sources): https://github.com/sultanxda/android/blob/master/bacon/cm-12.1-stable/local_manifest.xml

Credits:
  • CyanogenMod and its contributors
  • CAF (aka Qualcomm)
  • myfluxi (awesome friend with lots of amazing contributions)
  • 69gm (loyal guinea pig)
  • PA for the Google Apps
  • If your name should be here and it isn't, then make me use an iPhone 4 running iOS 8

Installation instructions (for first-time installation):
First, perform a backup of your existing setup, and then perform a clean install (wipe /data and /system; TWRP is recommended). Next, try flashing the ROM and see if it installs; if it installs without any issues then congratulations! Now just flash a Google Apps package, and then reboot.

If you get an error when trying to install ("oppo.verify_trustzone" error), then first you must install/use TWRP recovery 2.8.6.0 (TWRP 2.8.7.0 cannot properly update the modem). Next, download and flash the latest official CM12.1 snapshot. Then, without rebooting from recovery, wipe /system and flash my ROM. This process is necessary to update various firmwares (including TrustZone), as the updated firmware is needed by my ROM. After flashing my ROM, flash a Google apps package, and then reboot.


Installation instructions (for updating to a newer release):
If you are already running my CM12.1 ROM, then you can update to a newer version of the ROM via the built-in OTA updater or by simply dirty-flashing the new ROM build without wiping anything.

Downloads:
ROM:

Please read through the installation instructions before installing this for the first time.

Mirror 1: http://xdaforums.com/devdb/project/dl/?id=17892

Mirror 2: https://www.androidfilehost.com/?w=files&flid=33713&sort_by=date&sort_dir=DESC

Google Apps: http://xdaforums.com/android/software/tk-gapps-t3116347
SuperSU (if you want root access): http://xdaforums.com/showthread.php?t=1538053
Disable CPU underclock: http://xdaforums.com/devdb/project/dl/?id=12808

XDA:DevDB Information
CM12.1 with clean CAF 3.4.0 kernel, ROM for the OnePlus One

Contributors
Sultanxda
ROM OS Version: 5.1.x Lollipop
ROM Kernel: Linux 3.4.x
Based On: CyanogenMod

Version Information
Status: No Longer Updated

Created 2015-05-28
Last Updated 2018-01-20
 
Last edited:

Sultanxda

Recognized Developer
Changelog:

April 10, 2016:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Android Security Patch Level: April 1, 2016
*Camera: Reduced default JPEG quality to 95% (image files are smaller with no visible impact to quality)
*Camera: Made anti-shake algorithm less aggressive (images are better quality now)
*Camera: Improved image clarity
*Camera: Added ability to control JPEG quality in camera apps
*Snapdragon Camera: Added JPEG quality setting
*Fixed weather not displaying in cLock widget

Kernel:
*Android Security Patch Level: April 1, 2016
*Added F2FS support
*Camera: Fixed severe overexposure when using flash
*Flashlight is 2.5x brighter
*Fixed msm_cci_wakelock never disappearing in rare cases
*Updated display backlight driver from upstream cm-13.0

March 12, 2016:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Android Security Patch Level: March 1, 2016
*Camera: Implemented intelligent anti-shake algorithm (significantly reduces motion blur when capturing photos)
*Camera: Faster autofocus in low lighting conditions
*Camera: No stuttering/frame drops in camera viewfinder (viewfinder frame rate won't go below 30 FPS)
*Removed LockClock weather hack (Yahoo! weather provider is back)
*Reverted WiFi configuration update from OxygenOS 2.1.4 (caused issues with 5 GHz networks for some users)
*Added upstream fix for Contacts force close
*Reduced earphone speaker volume

Kernel:
*Android Security Patch Level: March 1, 2016 (CVE-2016-0821)

February 7, 2016:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Android Security Patch Level: February 1, 2016
*Fixed weather not displaying in cLock widget

January 31, 2016:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Updated WiFi configuration from OxygenOS 2.1.4

Kernel:
*Rewrote battery driver (for the BQ27541 fuel gauge chip):
-Battery % readings are more accurate
-Added various safety mechanisms
-You may get slightly better battery life

January 7, 2016:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Added upstream fix for black screen bug when using system profiles (NIGHTLIES-1721)
*Snapdragon Camera: Fixed user-set preferences getting reset when changing scene mode

Kernel:
*Added NFS support

January 5, 2016:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Android Security Patch Level: January 1, 2016
*Updated WiFi firmware (WCNSS version: CNSS-PR-1-4-1-c5-00086)

Kernel:
*Actually fixed double-tap-to-wake/gestures not working sometimes
*Fixed USB OTG not working when plugging the OTG cable in while the device is asleep
*Android Security Patch Level: January 1, 2016 (CVE-2015-6640)

December 20, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Snapdragon Camera: Fixed UI glitches when on-screen nav bar is enabled
*Fixed video calling in Skype and Viber
*Fixed poor video quality in WeChat

Kernel:
*Fixed double-tap-to-wake/gestures not working sometimes
*Added support for various human-interface devices (such as PlayStation and Wii controllers)
*Added support for CIFS

December 13, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Fixed force close when switching to camcorder mode in Snapdragon Camera
*Added updated proprietary libraries from CM's stable/cm-12.1-YOG7D branch

Kernel:
*Fixed slow charging

December 12, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Camera: Fixed rare split-exposure bug
*Camera: Fixed poor video quality during video calls (e.g. wrong aspect ratio in Hangouts)
*Added camera sensor calibration from CM (picture quality may be slightly better)
*Snapdragon Camera: Added option for zero-second tap-to-focus duration (especially useful while recording videos)

Kernel:
*Fixed screen backlight never turning off when ambient display is enabled (credit: myfluxi)
*Disabled MMC deferred resume (might've been causing rare reboots)

December 1, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Reverted GPS changes from previous build
*Added OxygenOS WiFi configuration
*Added HydrogenOS WiFi firmware
*Snapdragon Camera: Removed panorama mode

Kernel:
*Disabled CPU boosting on thread migration (fixes occasional high battery drain and overheating, especially when streaming videos)
*Rewrote core logic of CPU boost driver (better efficiency, better battery life, and phone heats less now)

November 16, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Renamed "Snapdragon Camera" to "Camera"
*Snapdragon Camera: Fixed exposure and white balance not changing after taking a picture
*Snapdragon Camera: Fixed some minor annoyances
*Camera: Antibanding is always enabled
*Updated WiFi configuration
*Updated GPS configuration

Kernel:
*Screen turns on faster

Old changelogs:

November 1, 2015:
Kernel:
*Reverted battery driver change (to fix random reboots... again)

October 31, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Updated WiFi configuration yet again
*Fixed WiFi hotspot getting disabled when mobile signal is lost
*Removed 'Prevent accidental wake-up' feature (it is very broken)

Kernel:
*Added battery driver from official CM12.1 kernel (should fix shut down at 20% battery for some users)

October 27, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Reverted back to original WiFi firmware images
*Tweaked WiFi configuration slightly
*Camera: Potentially fixed split-exposure bug when taking photos with flash in sunny conditions
*Snapdragon Camera: Added option to control anti-banding in camcorder mode

Kernel:
*Fixed headset buttons
*Fixed volume going up to the maximum or minimum when plugging in a headset
*Removed pink tint from notification LED
*Added support for JDI video-mode display (this could be the reason why some people couldn't boot CAF ROMs)

October 25, 2015:
Kernel:
*Reverted battery driver change (to fix random reboots)

October 24, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Fixed T-Mobile Visual Voicemail
*Added back WiFi firmware from the LG G3
*Snapdragon Camera: Enabled antibanding (auto antibanding mode) for camcorder

Kernel:
*Fixed very loud static noise when using headset microphones
*Fixed graphical artifacts when waking device from sleep for some users (it should definitely be fixed this time)
*Fixed device requiring multiple power-button presses to wake from sleep for some users
*Added battery driver from official CM12.1 kernel

October 17, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Reduced CPU boost frequencies (better battery and less heating)
*Increased earpiece speaker volume
*Permitted installation with HydrogenOS firmware
*Fixed WiFi-related random reboots affecting a small group of users
*Potentially fixed mobile network not reconnecting after signal is lost for a long period of time
*Camera: Removed ISO HJR option (it wasn't working)
*Fixed GSM signal strength hack (you will no longer see 103% signal strength)

Kernel:
*Fixed static background noise heard when using a headset
*Re-enabled ULPS for users with a Sharp panel
*Added fix for graphical artifacts when waking device from sleep for some users
*Fixed slow charging speed with some cables (charging speed should be the same as the CM kernel now)

October 11, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Increased mobile signal strength
*Fixed camera crashing in Bank of America app
*Fixed manual ISO control for camera
*Snapdragon Camera: Added option to control ISO
*Snapdragon Camera: Added option to control shutter speed
*Snapdragon Camera: Fixed aggressive auto rotation
*Disabled Fluence (dual-microphone mode; this should fix the distortion insanity)

Kernel:
*Fixed graphical glitches for users with a Sharp panel
*Fixed battery not charging with car chargers

October 4, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
*Fixed call recording
*Added upstream camcorder audio distortion fix (http://review.cyanogenmod.org/#/c/110690/)
*Fixed inverted audio channels in camcorder
*Fixed microphone distortion in phone calls from previous build
*Snapdragon Camera: Exposure and white balance are now locked when using tap-to-focus
*Snapdragon Camera: Added option to change the tap-to-focus duration
*Switched back to CM's WiFi firmware and configuration

Kernel:
*Fixed headset buttons
*Fixed Google Now getting automatically triggered when plugging in some headsets very quickly
*Relaxed thermal thresholds for the battery (again)

September 27, 2015:
ROM:
*Switched to new stable branch (YOG7D; this is equivalent to the nightlies as of September 22nd)
*Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes

Kernel:
*Relaxed thermal thresholds for the battery
*Fixed slow-charge issue
*Fixed long delay for audio to transfer when plugging in certain headphones (such as Apple EarPods)
*Fixed music getting automatically paused when plugging in certain headphones (such as Apple EarPods)

September 25, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG4P) CyanogenMod changes
*Switched back to original microphone configuration for phone calls (it's the same as it was with the Sep. 14th build, but now the microphone is slightly louder to fix the low-volume issues)
*Fixed broken volume control during phone calls

September 23, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG4P) CyanogenMod changes
*Reduced microphone sensitivity
*Reduced earphone speaker volume
*Reduced audible background noise when using microphone

September 22, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG4P) CyanogenMod changes
*Changed build keys to "release-keys" (maybe Android Pay will work?)
*Reduced earpiece-speaker volume
*Fixed low-volume microphone issues and distortion while Fluence is enabled (a.k.a. dual-microphone mode)
*Increased microphone volume
*Enabled Fluence for regular audio recordings
*Reverted camcorder microphone changes from CM in July
*Camera: Fixed incorrect exposure time reported in image details when slow-shutter is used
*Snapdragon Camera: Fixed Zero Shutter Lag option randomly getting enabled
*Reduced input-boost frequencies

Kernel:
*Reduced input-boost durations

September 14, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG4P) CyanogenMod changes
*Re-enabled fluence (dual-mic)

Kernel:
*Fixed device not entering deep sleep after unplugging from charger (this fixes the high Android OS battery drain from the previous build)
*Added some fixes to the Interactive governor from the Nexus 5 CAF kernel

September 13, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG4P) CyanogenMod changes
*Removed built-in root (use SuperSU instead)
*Changed build type from userdebug to user
*Fixed flashlight not turning off and camera completely breaking when using the flashlight while Trusted Face is enabled
*Removed modem "protection" (you can flash any modem you want now)
*Fixed @dcoulombe's major crash
*Updated part of the WiFi configuration from official CM12.1
*Increased input-boost frequency for primary CPU core (improves performance)
*Made Interactive governor scale up more aggressively (improves performance)
*Snapdragon Camera: Fixed reversed flash icons for camcorder flash option

Kernel:
*Fixed slow charging speed
*Removed ROW I/O scheduler
*Reduced long delay for a headset to start working after plugging it in (headsets are detected 2x faster now)

September 11, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG4P) CyanogenMod changes
*Switched back to Lollipop modem (DI.3.0.c6-00241-M8974AAAAANAZM-1)
*Reduced input boost frequencies slightly

Kernel:
*Fixed long delay in audio transfer when plugging in a regular pair of headphones (this only applies to regular headphones, not headsets)

September 10, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG4P) CyanogenMod changes
*Fixed flashing red borders
*Completely disabled strict mode (this is what fixed the flashing red borders)
*Switched to KitKat 44S modem (MPSS.DI.2.0.1.c7-00020-M8974AAAAANPZM-1)
*Increased input boost frequencies
*Updated GPS configuration from CM
*Video HDR is always disabled for 4k DCI (our ISP can't handle this)
*Switched back to WiFi (WCNSS) firmware from the LG G3
*Switched back to full WiFi configuration from the LG G3
*Snapdragon Camera: Added touch-to-focus for camcorder
*Snapdragon Camera: Added option to change focus mode for camcorder
*Snapdragon Camera: Disabled video HDR for 4k DCI (as stated above, our ISP can't handle this)

Kernel:
*Increased eMMC performance (via scheduling the MMC queue thread on idle CPUs)
*Increased bus bandwidth for the ISP (image signal processor)
*Increased clock rate of the ISP from 267MHz to 465MHz
*Fixed camera crashes while using video HDR with 4k UHD

September 6, 2015:
ROM:
*Latest upstream (stable/cm-12.1-YOG4P) CyanogenMod changes
*Enabled low-latency audio output
*Fixed camera crash while using video HDR
*Tweaked CPU governor for better battery life and lower heat output
*Snapdragon Camera: added updates from mikeNG (and a new icon from jrizzoli)
*Snapdragon Camera: fixed high-speed recording with 480p
*Snapdragon Camera: renamed many options for clarity
*Fixed poor quality with front-facing camera

Kernel:
*Added many updates to the audio subsystem from he official CM12.1 kernel and Nexus 5 CAF
*Added speaker and headphone configuration from official CM12.1 kernel (low speaker volume is fixed)
*Fixed most audio jack detection issues (aka fixed volume going down to zero or going up to max when plugging in headphones)

August 28, 2015:
ROM:
*Stable build based off of cm-12.1-YOG4P (you must perform a clean install to switch to stable builds; see the updated FAQ in the 3rd post and updated installation instructions in the OP for more details)

August 24, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Fixed exposure time getting set to 1/5000th of a second when trying to disable slow-shutter
*Cleared ccache before building the ROM (maybe this will fix soft reboots?)

August 23, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Added support for slow shutter (ranging from 1/5000th of a second up to 2 seconds)
*Removed encoder options from Snapdragon Camera

Kernel:
*Fixed CPU getting stuck at 1958MHz while device is asleep

August 22, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Changed CPU governor to Interactive
*Tweaked Interactive for better efficiency

Kernel:
*Removed Smartmax governor

August 21, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Fixed WiFi not automatically reconnecting for some users
*Fixed camera stability issues caused by undefined behavior (this should fix the flashlight reboots)
*Snapdragon Camera: fixed timelapse recording in 2.5k 1440p
*Snapdragon Camera: fixed incorrect viewfinder size for 13.1MP resolution
*Snapdragon Camera: fixed UI disappearing when trying to record video with invalid options (ex. trying to record HFR 120 video at 4k UHD resolution)

August 17, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Added back recent GPS change
*Fixed overheating (thermal settings are more aggressive now)

Kernel:
*Fixed glitches when the display turns on

August 16, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Added 2.5k 1440p video recording for the front-facing camera (you must use Snapdragon Camera)
*Added 2.5k 1440p video recording for the back camera (you must use Snapdragon Camera)
*Added flashlight fixes from CAF
*Updated part of the WiFi configuration from official CM12.1
*Reverted recent GPS change

Kernel:
*Possibly fixed glitches when the display turns on

August 14, 2015:
ROM:
*Latest upstream CyanogenMod changes

Kernel:
*Fixed overly-excessive and inconsistent thermal throttling
*Thermal driver now polls temperature sensor located on the PMIC instead of from TSENS
(thermal throttling is very accurate now, and it will throttle when the device actually feels hot)
*Fixed display backlight staying on (credit: myfluxi)
*Fixed unbalanced SPS IRQ enable (credit: myfluxi)

August 12, 2015:
ROM:
*Latest upstream CyanogenMod changes

Kernel:
*Fixed random reboots caused by Smartmax

August 11, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Disabled a/v streaming offload again (it was still breaking videos in browser)
*Switched back to old WCNSS (WiFi) firmware images
*Synced Snapdragon Camera with CAF
*Fixed incorrect video duration for HFR (slow-motion) videos
*Fixed touch-to-focus in HDR mode
*Fixed low framerate when recording 720p video with the front-facing camera
*Fixed manual focus
*Removed power HAL (it wasn't really doing anything)
*Fixed CPU max freq not sticking to 729MHz in low-power mode

Kernel:
*Reverted vidc drivers to CAF LA.BF.1.1.1.c3 (fixes random reboots)
*Display turns on faster now
*Fixed bugs in CPU input boost driver (CPU was not being boosted enough)
*CPU is boosted on thread migration
*CPU is boosted when waking the display and putting it to sleep
*Fixed touchscreen not working in doze (and hopefully fixed gestures/DT2W not working sometimes)

August 6, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Fixed sensor calibration being reset on each boot
*Forced triple framebuffering (UI feels smoother)

August 5, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Fixed compass (for real this time)
*Fixed some bugs in Snapdragon Camera

Kernel:
*Updated WiFi drivers back to CAF LA.BF.1.1.1_rb1.26
*Enabled regulatory feature for WiFi

August 4, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Fixed 720p HFR (slow-motion) and HSR (high-speed) video recording at 90FPS and 120FPS with all camera apps

Kernel:
*Updated WiFi drivers to CAF LA.BF.1.1.1.c3-04100-8x74.0

August 3, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Fixed 720p HFR (slow-motion) recording at 90FPS and 120FPS
*Added support for HSR (high-speed with audio) recording up to 120FPS for 720p and 60FPS for 1080p
*Added Snapdragon Camera app (only app that lets you record HSR videos)
*Removed option to record 1080p at 90/120FPS (making this work would require modification of the proprietary camera libraries)
*Fixed focus not working in HDR mode
*Reverted WiFi config changes from previous build
*Increased earpiece speaker volume
*Removed FWVGA camcorder resolution
*Re-enabled audio offload for a/v streaming
*Relaxed thermal thresholds

Kernel:
*Fixed display not turning on for users with a Truly panel
*Downgraded WiFi drivers to v3.8.20.5 (as these are what's used for the LG G3)

July 28, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Added 1080p video recording at 120 FPS
*Added ability to record video at 90 FPS (for both 720p and 1080p as well)
*Fixed broken video streaming in browsers (credit: myfluxi)
*Updated WiFi configuration (attempting to fix low WiFi speeds)
*Enabled audio offload for 12k and 24k sampling rates (credit: myfluxi)
*Disabled thermal-engine (we will use my kernel-based thermal solution instead)
*Enabled new kernel-based thermal mitigation

Kernel:
*Added homemade thermal driver (uses 3 throttling steps)
*Added various I/O scheduler tweaks for CFQ and Deadline (thanks to myfluxi)
*Fixed display not coming on for some users
*Fixed DT2W not working sometimes

July 25, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Added support for 1080P video recording with the front-facing camera
*Fixed framerate drop when taking picture while recording 4K video
*Updated complete WiFi configuration from LG G3 (better WiFi performance and stability)
*Updated WCNSS WiFi firmware from LG G3
*Fixed 30-degree error in compass (derp)

Kernel:
*Added and changed default TCP congestion algorithm to Westwood
*Added CD-ROM emulation support (FrozenCow)
*Added NTFS support

July 23, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Fixed 4K video recording in all camera apps (such as Google Camera)
*Fixed several bugs with Google Camera (such as broken photosphere and panorama functionality)
*All firmware on the modem partition is now shipped with the ROM (so everyone will have the correct firmware and baseband no matter what)
*Disabled fluence in phone calls (may have caused reduced mic volume during calls)
*Synced GPS HAL with CAF LA.BF.1.1.1_rb1.26
*Reverted WiFi config update from CM that broke all the things

Kernel:
*Added a bunch of sched patches (thanks to myfluxi for finding and testing these)

July 19, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Added support for 4K video recording at UHD and DCI resolutions (only works with CameraNext and ColorOS camera)

July 17, 2015:
ROM:
*Latest upstream CyanogenMod changes

Kernel:
*Fixed encryption (TWRP can now mount encrypted /data partitions)

July 15, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Changed default I/O scheduler to Deadline

Kernel:
*Added upstream Linux patch to reduce Deadline's latency
*Updated touchscreen suspend/resume routines to fix SoDs (again...)

July 14, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Fixed camcorder in some camera apps (e.g. CameraNext)

July 13, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Fixed WiFi hotspot (derp)
*Added custom camera HAL made from CAF LA.BF.1.1.1.c3 with the following features:
-More picture sizes (such as 9.7MP 16:9)
-JPEG quality is always set to 100% (so pictures are not super compressed, and they are clear)

Kernel:
*Removed kexec hardboot support (breaks encryption)

July 12, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Significant upstream change: compass is fixed
*Reduced input boost frequencies
*ROM is now compressed with LZMA (ROM zip is 50MB smaller as a result, and takes much less time to upload/download)
*Updated Adreno graphics libraries from LG V400 (Adreno version tag: LA.BF.1.1.2_RB1-AU017-20150203)

Kernel:
*Synced with CAF LA.BF.1.1.1_rb1.26
*Added kexec hardboot support
*Added LCD KCAL by Savoca

July 9, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Updated sensor configuration from OxygenOS
*Added face unlock drawable fix (http://review.cyanogenmod.org/#/c/102703/)

Kernel:
*Fixed touchscreen not working sometimes when waking device from sleep (again)

July 7, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Updated WPA supplicant overlay for Lollipop from Nexus 5
*Added "Enable AIG and MBDRC for stereo recording path"
*Fixed governor resetting to Interactive when changing perf mode back to balanced
*Changed default devfreq governor from cpubw_hwmon to msm_cpufreq (fixes random reboots)

Kernel:
*Increased audit rate limit and backlog limit (fixes random reboots)

July 4, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Synced audio HAL with CAF LA.BF.1.1.1_rb1.25
*Synced display HAL with CAF LA.BF.1.1.1_rb1.25
*Reduced time needed to optimize apps at boot
*Enabled WiFi host NS offload
*Added back vsync phase offsets
*Changed default CPU governor to Smartmax

Kernel:
*Synced with CAF LA.BF.1.1.1_rb1.25
*Synced prima (WiFi) drivers with CAF LA.BF.1.1.1_rb1.25
*Added Smartmax governor by maxwen
*Added LCD notify driver from LGE
*Updated touchscreen power routines to be more stable and use LCD notifier
*Fixed touchscreen not working sometimes when waking device from sleep
*Fixed occasional SoD caused by derpy touchscreen resume/suspend routines (happened most often when on low-power mode)
*Vibrator is automatically disabled when recording videos (so sound from the vibrator doesn't get into the videos)
*Reconfigured JDI cmd-mode panel settings for 62Hz (as this is the true refresh rate of the panel)

June 13, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Updated WiFi NVRAM config from LG G3
*Fixed low speeds when connected to 5GHz WiFi networks

Kernel:
*Synced with CAF LA.BF.1.1.1_rb1.24

June 9, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Battery percentage is shown during off-mode charging
*Removed vsync phase offsets
*Added back a RIL patch from CM

Kernel:
*Fixed front-facing camera (derp)
*Fixed support for Sharp panels
*Added CFQ I/O scheduler

June 6, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Fixed audio not playing out of speaker in some cases

Kernel:
*Added Qualcomm H/W crypto support (thanks to myfluxi for researching this and fixing issues with it)
*Fixed touchscreen not working when waking device from sleep
*Added back support for various different displays
*Added Motorola memory-routine optimizations

June 4, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Significant upstream change: DHCP WiFi issue has been fixed

Kernel:
*Fixed occasional long delay of the screen turning on when waking the device from sleep
*Moved touchscreen suspend/resume functions into high-priority workqueue

June 3, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Enabled OTA updates via built-in CMUpdater
*You can update to this build from June 2 via OTA

June 2, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Fixed force close when sending MMS

Kernel:
*Added back underclock down to 1958MHz by default (you can disable the underclock by flashing a zip available in the OP)
*Added more protection to CPU input boost driver
*Tweaked notification LED color a bit more

May 30, 2015:
ROM:
*Latest upstream CyanogenMod changes

Kernel:
*Fixed pink tint in notification LED
*Updated Synaptics touchscreen firmware from CM gerrit (new per-panel firmware, doesn't have battery drain)

May 29, 2015:
ROM:
*Latest upstream CyanogenMod changes
*Synced media HAL with CAF LA.BF.1.1.1_rb1.23
*Synced display HAL with CAF LA.BF.1.1.1_rb1.23
*Updated WCNSS (WiFi) configuration from CM
*Removed Qualcomm power HAL (does nothing without the performance daemon)
*Added custom power HAL to handle low-power mode (CPU max frequency is lowered to 729MHz for low-power mode)
*Fixed performance profiles

Kernel:
*Synced with CAF LA.BF.1.1.1_rb1.23
*Added back CPU frequencies up to 2457MHz
*Removed CPU underclock (CPU maxfreq is left at the default 2457MHz)
*Synced prima (WiFi) drivers with CAF LA.BF.1.1.1_rb1.23

May 28, 2015:
ROM:
*Initial release

Kernel:
*Initial release
 
Last edited:

Sultanxda

Recognized Developer
FAQ:

1. What is the difference between the stable and nightly builds?
Answer: My ROM builds are based off of the stable CM12.1 code branches, whereas the official CM12.1 nightly builds are based off of the nightly CM12.1 code branch. Stable builds provide much better stability than nightly builds, but they don't receive updates as often as the nightly builds. Stable builds are separate from the nightly builds; you cannot install a stable build on top of a nightly build. The stable builds are the same as the SNAPSHOT builds on CM's website.

2. Could you add camera slow-shutter times greater than 2 seconds?
Answer: No, I cannot. The reason why exposure times are capped at 2 seconds is due to the proprietary camera libraries from OxygenOS. Only OnePlus and Cyanogen Inc. can modify the proprietary camera libraries, so there is no way for me, a regular consumer, to implement exposure times greater than 2 seconds.

3. Why did you use OxygenOS camera libraries? They don't have 4K camcorder support!
Answer: My custom camera HAL enables 4K camcorder support with Oxygen's camera libraries, so this isn't an issue. Cyanogen's camera libraries have had some issues with the camcorder since day 1. The big issue that I have been able to reproduce on all OnePlus One devices I've come across is graphical artifacts in recorded videos (look towards the right @25 seconds): https://youtu.be/LyIbb5wIyfY?t=22s
(issue report on JIRA: https://jira.cyanogenmod.org/browse/BACON-3582)
OxygenOS' camera libraries do not have this issue, and thanks to my modifications, we now have 4K camcorder support with the OxygenOS libraries, so not much is lost by using them. The OxygenOS libraries can also take pictures faster/better than Cyanogen's libraries.

4. Why did you underclock the CPU to 1958MHz? Yer crazy, bro.
Answer: At 1958MHz, the amount of heat generated by the CPU is quite a bit less than at 2457MHz, so the CPU is throttled less often (leading to better user experience), and battery life is better as well. The performance difference between 1958MHz and 2457MHz is also not really noticeable unless you use a benchmark application. If you want to remove the CPU underclock then flash the zip from the first post that disables the underclock. You must flash this zip every time you install a new ROM update.
 
Last edited:

nazfalas

Senior Member
Mar 23, 2010
651
293
Oh I knew @Sultanxda rang a bell :->
Amazing development on the Sensation! Enjoyed your kernels/ROMs very much. Thanks, will try this one.

edit:
Just one question. Is this using the new Synaptics firmware with battery drain? If not, which version?
 
Last edited:

Sultanxda

Recognized Developer
Oh I knew @Sultanxda rang a bell :->
Amazing development on the Sensation! Enjoyed your kernels/ROMs very much. Thanks, will try this one.

edit:
Just one question. Is this using the new Synaptics firmware with battery drain? If not, which version?

It isn't. It's using the version before the one with the battery drain (so it's using the same Synaptics firmware as the official CM kernel).
 

nazfalas

Senior Member
Mar 23, 2010
651
293
It isn't. It's using the version before the one with the battery drain (so it's using the same Synaptics firmware as the official CM kernel).

Thank you for the reply. Just wondering, because I can't replicate my heat related touch issues (some preliminary testing). Only fix until now (yes, I tried every CM11S, CM11, COS12, ColorOS, OxygenOS, etc.) was the new firmware where I had to disable screen gestures/double tap to wake to stop the drain.
Very smooth btw. :-> Will have to see how battery life holds up through the day and if the touch issues are magically cured. :D
 
  • Like
Reactions: STARLORDUltimate

Sultanxda

Recognized Developer
Thank you for the reply. Just wondering, because I can't replicate my heat related touch issues (some preliminary testing). Only fix until now (yes, I tried every CM11S, CM11, COS12, ColorOS, OxygenOS, etc.) was the new firmware where I had to disable screen gestures/double tap to wake to stop the drain.
Very smooth btw. :-> Will have to see how battery life holds up through the day and if the touch issues are magically cured. :D

I rewrote half of the Synaptics touchscreen driver in the kernel (over 2500 lines of code modified), but I don't think my changes could've helped with the touchscreen issues. I have a friend who has a serious case of the ghost touches, and my modifications did nothing for him :/

@Sultanxda ...I am on CM12 2015-15-04 nightly,Franco r42

Can this be flashed on top?

You must be using the CM12.1 nightly, not CM12.
 

nazfalas

Senior Member
Mar 23, 2010
651
293
I rewrote half of the Synaptics touchscreen driver in the kernel (over 2500 lines of code modified), but I don't think my changes could've helped with the touchscreen issues. I have a friend who has a serious case of the ghost touches, and my modifications did nothing for him :/

As we have learned from the ghost touch discussions and the new synaptics firmware: there are apparently many different kinds of touch issues. Some heat related, some static related and some grounding related. Others just plainly have a completely faulty digitizer.
In my case it is heat related. I was able to replicate it multiple times by gently heating it with a hair dryer (even mild heat caused the issue) - cooling the device also removed any touch issues. For me it was also the special case of the x-axis issue where only one finger was recognized when both where on the same x-axis. This does currently not happen on your kernel - no matter the heat (not heating to the point where anything could be damaged, of course ;) ) making my OPO very usable again!
10 finger recongnition is still a little faulty, but who honestly needs that. :D
 

adinkwok

Retired Forum Mod / Inactive Recognized Developer
May 28, 2013
2,712
10,116
Seattle
adin.dev
@RenderBroken :victory:
@Sultanxda you sir deserve a

Cookie.gif
 
Last edited:

Sultanxda

Recognized Developer
As we have learned from the ghost touch discussions and the new synaptics firmware: there are apparently many different kinds of touch issues. Some heat related, some static related and some grounding related. Others just plainly have a completely faulty digitizer.
In my case it is heat related. I was able to replicate it multiple times by gently heating it with a hair dryer (even mild heat caused the issue) - cooling the device also removed any touch issues. For me it was also the special case of the x-axis issue where only one finger was recognized when both where on the same x-axis. This does currently not happen on your kernel - no matter the heat (not heating to the point where anything could be damaged, of course ;) ) making my OPO very usable again!
10 finger recongnition is still a little faulty, but who honestly needs that. :D

Lol, didn't notice that 10-finger recognition was faulty. That's a firmware issue that I probably can't fix through the kernel driver. The firmware sends touch data (number of fingers and their coordinates on the screen) to the kernel driver, and then the kernel driver parses this data and registers the touches accordingly. So if the kernel receives faulty data from the firmware then there's not much that can be done (trying to filter out bad data through the kernel driver is very difficult).

Funny that my changes actually made a difference for you, I totally didn't expect that. Now we wait to see if it'll stop working again after a day's use :p
 

Sultanxda

Recognized Developer

Top Liked Posts

  • There are no posts matching your filters.
  • 631
    Code:
    /*
     * Your warranty is... still valid?
     *
     * 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 ROM
     * 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 laugh at you.
     *
     */

    This is an unofficial CyanogenMod 12.1 build I developed after seeing some of the craziness in the official CyanogenMod kernel (such as massive merges from different sources and untested cherry-picks that introduce random reboots), as well as craziness with CyanogenMod's camera libraries. If you just want your phone to work without any fancy frills then you might be interested in using this. The ROM is the same as official CM12.1 on the outside, but there have been many optimizations under the hood. It comes with a fancy unique kernel I worked on that is cleanly based off of the latest CAF sources from Qualcomm.

    Custom kernels are not compatible with this ROM unless otherwise noted. I will not provide support if you install a custom kernel.

    ROM features:
    • Based off latest generic CyanogenMod 12.1 stable sources (root access is not included)
    • OTA updates via built-in CMUpdater
    • OxygenOS camera libraries (no camera bugs and improved camera performance)
    • Snapdragon Camera app by Qualcomm (comes with many unique features, such as high-speed recording with audio)
    • Custom camera HAL featuring:
      -Intelligent anti-shake algorithm (significantly reduces motion blur when capturing photos)
      -Faster autofocus in low lighting conditions
      -No stuttering/frame drops in camera viewfinder (viewfinder frame rate won't go below 30 FPS)
      -Slow-motion video recording at 60 FPS, 90 FPS, and 120 FPS for 720p, and 60 FPS for 1080p
      -High-speed video recording with audio at 60 FPS, 90 FPS, and 120 FPS for 720p, and 60 FPS for 1080p (you need to use the Snapdragon Camera app in order to use high-speed recording)
      -1080p video recording with the front-facing camera
      -2.5k 1440p video recording with the front-facing camera and back camera (only with the Snapdragon Camera app that comes with the ROM)
      -4k video recording at UHD and DCI resolutions
      -Manual focus
      -Manual ISO control
      -Slow shutter (ranging from 1/5000th of a second to 2 seconds)
      -More picture sizes than plain OxygenOS, such as 9.7MP 16:9
    • Many other misc. improvements under the hood

    Kernel features:
    • Based off latest CAF Lollipop kernel source from Qualcomm (LA.BF.1.1.1_rb1.26)
    • Removed lots of excessive bloat
    • Rewrote battery driver (for the BQ27541 fuel-gauge chip; battery % readings are more accurate, there are various
      safety mechanisms now, and you may get better battery life)
    • Rewrote half of the Synaptics touchscreen driver (over 2500 lines of code modified; your touchscreen might work better)
    • Newest available Synaptics touchscreen firmware (no battery drain)
    • Dynamic CPU input boost driver I wrote myself (makes the phone feel smooth)
    • CPU underclocked to 1958MHz by default (you can disable this; see why I did this in the FAQ in the 3rd post)
    • Vibrator is automatically disabled when recording videos (so the buzzing noise doesn't get in the videos)
    • Custom thermal driver I wrote myself (keeps the phone cool)
    • LCD KCAL by Savoca
    • Westwood TCP congestion algorithm (enabled by default)
    • F2FS support
    • NTFS support
    • No placebo patches, features, or compiler "optimizations"
    • Many other misc. improvements not listed here

    Source code:
    Kernel (cm-12.1-caf branch): https://github.com/sultanxda/android_kernel_oneplus_msm8974
    Local manifest (contains the rest of the sources): https://github.com/sultanxda/android/blob/master/bacon/cm-12.1-stable/local_manifest.xml

    Credits:
    • CyanogenMod and its contributors
    • CAF (aka Qualcomm)
    • myfluxi (awesome friend with lots of amazing contributions)
    • 69gm (loyal guinea pig)
    • PA for the Google Apps
    • If your name should be here and it isn't, then make me use an iPhone 4 running iOS 8

    Installation instructions (for first-time installation):
    First, perform a backup of your existing setup, and then perform a clean install (wipe /data and /system; TWRP is recommended). Next, try flashing the ROM and see if it installs; if it installs without any issues then congratulations! Now just flash a Google Apps package, and then reboot.

    If you get an error when trying to install ("oppo.verify_trustzone" error), then first you must install/use TWRP recovery 2.8.6.0 (TWRP 2.8.7.0 cannot properly update the modem). Next, download and flash the latest official CM12.1 snapshot. Then, without rebooting from recovery, wipe /system and flash my ROM. This process is necessary to update various firmwares (including TrustZone), as the updated firmware is needed by my ROM. After flashing my ROM, flash a Google apps package, and then reboot.


    Installation instructions (for updating to a newer release):
    If you are already running my CM12.1 ROM, then you can update to a newer version of the ROM via the built-in OTA updater or by simply dirty-flashing the new ROM build without wiping anything.

    Downloads:
    ROM:

    Please read through the installation instructions before installing this for the first time.

    Mirror 1: http://xdaforums.com/devdb/project/dl/?id=17892

    Mirror 2: https://www.androidfilehost.com/?w=files&flid=33713&sort_by=date&sort_dir=DESC

    Google Apps: http://xdaforums.com/android/software/tk-gapps-t3116347
    SuperSU (if you want root access): http://xdaforums.com/showthread.php?t=1538053
    Disable CPU underclock: http://xdaforums.com/devdb/project/dl/?id=12808

    XDA:DevDB Information
    CM12.1 with clean CAF 3.4.0 kernel, ROM for the OnePlus One

    Contributors
    Sultanxda
    ROM OS Version: 5.1.x Lollipop
    ROM Kernel: Linux 3.4.x
    Based On: CyanogenMod

    Version Information
    Status: No Longer Updated

    Created 2015-05-28
    Last Updated 2018-01-20
    293
    Changelog:

    April 10, 2016:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Android Security Patch Level: April 1, 2016
    *Camera: Reduced default JPEG quality to 95% (image files are smaller with no visible impact to quality)
    *Camera: Made anti-shake algorithm less aggressive (images are better quality now)
    *Camera: Improved image clarity
    *Camera: Added ability to control JPEG quality in camera apps
    *Snapdragon Camera: Added JPEG quality setting
    *Fixed weather not displaying in cLock widget

    Kernel:
    *Android Security Patch Level: April 1, 2016
    *Added F2FS support
    *Camera: Fixed severe overexposure when using flash
    *Flashlight is 2.5x brighter
    *Fixed msm_cci_wakelock never disappearing in rare cases
    *Updated display backlight driver from upstream cm-13.0

    March 12, 2016:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Android Security Patch Level: March 1, 2016
    *Camera: Implemented intelligent anti-shake algorithm (significantly reduces motion blur when capturing photos)
    *Camera: Faster autofocus in low lighting conditions
    *Camera: No stuttering/frame drops in camera viewfinder (viewfinder frame rate won't go below 30 FPS)
    *Removed LockClock weather hack (Yahoo! weather provider is back)
    *Reverted WiFi configuration update from OxygenOS 2.1.4 (caused issues with 5 GHz networks for some users)
    *Added upstream fix for Contacts force close
    *Reduced earphone speaker volume

    Kernel:
    *Android Security Patch Level: March 1, 2016 (CVE-2016-0821)

    February 7, 2016:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Android Security Patch Level: February 1, 2016
    *Fixed weather not displaying in cLock widget

    January 31, 2016:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Updated WiFi configuration from OxygenOS 2.1.4

    Kernel:
    *Rewrote battery driver (for the BQ27541 fuel gauge chip):
    -Battery % readings are more accurate
    -Added various safety mechanisms
    -You may get slightly better battery life

    January 7, 2016:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Added upstream fix for black screen bug when using system profiles (NIGHTLIES-1721)
    *Snapdragon Camera: Fixed user-set preferences getting reset when changing scene mode

    Kernel:
    *Added NFS support

    January 5, 2016:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Android Security Patch Level: January 1, 2016
    *Updated WiFi firmware (WCNSS version: CNSS-PR-1-4-1-c5-00086)

    Kernel:
    *Actually fixed double-tap-to-wake/gestures not working sometimes
    *Fixed USB OTG not working when plugging the OTG cable in while the device is asleep
    *Android Security Patch Level: January 1, 2016 (CVE-2015-6640)

    December 20, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Snapdragon Camera: Fixed UI glitches when on-screen nav bar is enabled
    *Fixed video calling in Skype and Viber
    *Fixed poor video quality in WeChat

    Kernel:
    *Fixed double-tap-to-wake/gestures not working sometimes
    *Added support for various human-interface devices (such as PlayStation and Wii controllers)
    *Added support for CIFS

    December 13, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Fixed force close when switching to camcorder mode in Snapdragon Camera
    *Added updated proprietary libraries from CM's stable/cm-12.1-YOG7D branch

    Kernel:
    *Fixed slow charging

    December 12, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Camera: Fixed rare split-exposure bug
    *Camera: Fixed poor video quality during video calls (e.g. wrong aspect ratio in Hangouts)
    *Added camera sensor calibration from CM (picture quality may be slightly better)
    *Snapdragon Camera: Added option for zero-second tap-to-focus duration (especially useful while recording videos)

    Kernel:
    *Fixed screen backlight never turning off when ambient display is enabled (credit: myfluxi)
    *Disabled MMC deferred resume (might've been causing rare reboots)

    December 1, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Reverted GPS changes from previous build
    *Added OxygenOS WiFi configuration
    *Added HydrogenOS WiFi firmware
    *Snapdragon Camera: Removed panorama mode

    Kernel:
    *Disabled CPU boosting on thread migration (fixes occasional high battery drain and overheating, especially when streaming videos)
    *Rewrote core logic of CPU boost driver (better efficiency, better battery life, and phone heats less now)

    November 16, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Renamed "Snapdragon Camera" to "Camera"
    *Snapdragon Camera: Fixed exposure and white balance not changing after taking a picture
    *Snapdragon Camera: Fixed some minor annoyances
    *Camera: Antibanding is always enabled
    *Updated WiFi configuration
    *Updated GPS configuration

    Kernel:
    *Screen turns on faster

    Old changelogs:

    November 1, 2015:
    Kernel:
    *Reverted battery driver change (to fix random reboots... again)

    October 31, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Updated WiFi configuration yet again
    *Fixed WiFi hotspot getting disabled when mobile signal is lost
    *Removed 'Prevent accidental wake-up' feature (it is very broken)

    Kernel:
    *Added battery driver from official CM12.1 kernel (should fix shut down at 20% battery for some users)

    October 27, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Reverted back to original WiFi firmware images
    *Tweaked WiFi configuration slightly
    *Camera: Potentially fixed split-exposure bug when taking photos with flash in sunny conditions
    *Snapdragon Camera: Added option to control anti-banding in camcorder mode

    Kernel:
    *Fixed headset buttons
    *Fixed volume going up to the maximum or minimum when plugging in a headset
    *Removed pink tint from notification LED
    *Added support for JDI video-mode display (this could be the reason why some people couldn't boot CAF ROMs)

    October 25, 2015:
    Kernel:
    *Reverted battery driver change (to fix random reboots)

    October 24, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Fixed T-Mobile Visual Voicemail
    *Added back WiFi firmware from the LG G3
    *Snapdragon Camera: Enabled antibanding (auto antibanding mode) for camcorder

    Kernel:
    *Fixed very loud static noise when using headset microphones
    *Fixed graphical artifacts when waking device from sleep for some users (it should definitely be fixed this time)
    *Fixed device requiring multiple power-button presses to wake from sleep for some users
    *Added battery driver from official CM12.1 kernel

    October 17, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Reduced CPU boost frequencies (better battery and less heating)
    *Increased earpiece speaker volume
    *Permitted installation with HydrogenOS firmware
    *Fixed WiFi-related random reboots affecting a small group of users
    *Potentially fixed mobile network not reconnecting after signal is lost for a long period of time
    *Camera: Removed ISO HJR option (it wasn't working)
    *Fixed GSM signal strength hack (you will no longer see 103% signal strength)

    Kernel:
    *Fixed static background noise heard when using a headset
    *Re-enabled ULPS for users with a Sharp panel
    *Added fix for graphical artifacts when waking device from sleep for some users
    *Fixed slow charging speed with some cables (charging speed should be the same as the CM kernel now)

    October 11, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Increased mobile signal strength
    *Fixed camera crashing in Bank of America app
    *Fixed manual ISO control for camera
    *Snapdragon Camera: Added option to control ISO
    *Snapdragon Camera: Added option to control shutter speed
    *Snapdragon Camera: Fixed aggressive auto rotation
    *Disabled Fluence (dual-microphone mode; this should fix the distortion insanity)

    Kernel:
    *Fixed graphical glitches for users with a Sharp panel
    *Fixed battery not charging with car chargers

    October 4, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Fixed call recording
    *Added upstream camcorder audio distortion fix (http://review.cyanogenmod.org/#/c/110690/)
    *Fixed inverted audio channels in camcorder
    *Fixed microphone distortion in phone calls from previous build
    *Snapdragon Camera: Exposure and white balance are now locked when using tap-to-focus
    *Snapdragon Camera: Added option to change the tap-to-focus duration
    *Switched back to CM's WiFi firmware and configuration

    Kernel:
    *Fixed headset buttons
    *Fixed Google Now getting automatically triggered when plugging in some headsets very quickly
    *Relaxed thermal thresholds for the battery (again)

    September 27, 2015:
    ROM:
    *Switched to new stable branch (YOG7D; this is equivalent to the nightlies as of September 22nd)
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes

    Kernel:
    *Relaxed thermal thresholds for the battery
    *Fixed slow-charge issue
    *Fixed long delay for audio to transfer when plugging in certain headphones (such as Apple EarPods)
    *Fixed music getting automatically paused when plugging in certain headphones (such as Apple EarPods)

    September 25, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG4P) CyanogenMod changes
    *Switched back to original microphone configuration for phone calls (it's the same as it was with the Sep. 14th build, but now the microphone is slightly louder to fix the low-volume issues)
    *Fixed broken volume control during phone calls

    September 23, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG4P) CyanogenMod changes
    *Reduced microphone sensitivity
    *Reduced earphone speaker volume
    *Reduced audible background noise when using microphone

    September 22, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG4P) CyanogenMod changes
    *Changed build keys to "release-keys" (maybe Android Pay will work?)
    *Reduced earpiece-speaker volume
    *Fixed low-volume microphone issues and distortion while Fluence is enabled (a.k.a. dual-microphone mode)
    *Increased microphone volume
    *Enabled Fluence for regular audio recordings
    *Reverted camcorder microphone changes from CM in July
    *Camera: Fixed incorrect exposure time reported in image details when slow-shutter is used
    *Snapdragon Camera: Fixed Zero Shutter Lag option randomly getting enabled
    *Reduced input-boost frequencies

    Kernel:
    *Reduced input-boost durations

    September 14, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG4P) CyanogenMod changes
    *Re-enabled fluence (dual-mic)

    Kernel:
    *Fixed device not entering deep sleep after unplugging from charger (this fixes the high Android OS battery drain from the previous build)
    *Added some fixes to the Interactive governor from the Nexus 5 CAF kernel

    September 13, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG4P) CyanogenMod changes
    *Removed built-in root (use SuperSU instead)
    *Changed build type from userdebug to user
    *Fixed flashlight not turning off and camera completely breaking when using the flashlight while Trusted Face is enabled
    *Removed modem "protection" (you can flash any modem you want now)
    *Fixed @dcoulombe's major crash
    *Updated part of the WiFi configuration from official CM12.1
    *Increased input-boost frequency for primary CPU core (improves performance)
    *Made Interactive governor scale up more aggressively (improves performance)
    *Snapdragon Camera: Fixed reversed flash icons for camcorder flash option

    Kernel:
    *Fixed slow charging speed
    *Removed ROW I/O scheduler
    *Reduced long delay for a headset to start working after plugging it in (headsets are detected 2x faster now)

    September 11, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG4P) CyanogenMod changes
    *Switched back to Lollipop modem (DI.3.0.c6-00241-M8974AAAAANAZM-1)
    *Reduced input boost frequencies slightly

    Kernel:
    *Fixed long delay in audio transfer when plugging in a regular pair of headphones (this only applies to regular headphones, not headsets)

    September 10, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG4P) CyanogenMod changes
    *Fixed flashing red borders
    *Completely disabled strict mode (this is what fixed the flashing red borders)
    *Switched to KitKat 44S modem (MPSS.DI.2.0.1.c7-00020-M8974AAAAANPZM-1)
    *Increased input boost frequencies
    *Updated GPS configuration from CM
    *Video HDR is always disabled for 4k DCI (our ISP can't handle this)
    *Switched back to WiFi (WCNSS) firmware from the LG G3
    *Switched back to full WiFi configuration from the LG G3
    *Snapdragon Camera: Added touch-to-focus for camcorder
    *Snapdragon Camera: Added option to change focus mode for camcorder
    *Snapdragon Camera: Disabled video HDR for 4k DCI (as stated above, our ISP can't handle this)

    Kernel:
    *Increased eMMC performance (via scheduling the MMC queue thread on idle CPUs)
    *Increased bus bandwidth for the ISP (image signal processor)
    *Increased clock rate of the ISP from 267MHz to 465MHz
    *Fixed camera crashes while using video HDR with 4k UHD

    September 6, 2015:
    ROM:
    *Latest upstream (stable/cm-12.1-YOG4P) CyanogenMod changes
    *Enabled low-latency audio output
    *Fixed camera crash while using video HDR
    *Tweaked CPU governor for better battery life and lower heat output
    *Snapdragon Camera: added updates from mikeNG (and a new icon from jrizzoli)
    *Snapdragon Camera: fixed high-speed recording with 480p
    *Snapdragon Camera: renamed many options for clarity
    *Fixed poor quality with front-facing camera

    Kernel:
    *Added many updates to the audio subsystem from he official CM12.1 kernel and Nexus 5 CAF
    *Added speaker and headphone configuration from official CM12.1 kernel (low speaker volume is fixed)
    *Fixed most audio jack detection issues (aka fixed volume going down to zero or going up to max when plugging in headphones)

    August 28, 2015:
    ROM:
    *Stable build based off of cm-12.1-YOG4P (you must perform a clean install to switch to stable builds; see the updated FAQ in the 3rd post and updated installation instructions in the OP for more details)

    August 24, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Fixed exposure time getting set to 1/5000th of a second when trying to disable slow-shutter
    *Cleared ccache before building the ROM (maybe this will fix soft reboots?)

    August 23, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Added support for slow shutter (ranging from 1/5000th of a second up to 2 seconds)
    *Removed encoder options from Snapdragon Camera

    Kernel:
    *Fixed CPU getting stuck at 1958MHz while device is asleep

    August 22, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Changed CPU governor to Interactive
    *Tweaked Interactive for better efficiency

    Kernel:
    *Removed Smartmax governor

    August 21, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Fixed WiFi not automatically reconnecting for some users
    *Fixed camera stability issues caused by undefined behavior (this should fix the flashlight reboots)
    *Snapdragon Camera: fixed timelapse recording in 2.5k 1440p
    *Snapdragon Camera: fixed incorrect viewfinder size for 13.1MP resolution
    *Snapdragon Camera: fixed UI disappearing when trying to record video with invalid options (ex. trying to record HFR 120 video at 4k UHD resolution)

    August 17, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Added back recent GPS change
    *Fixed overheating (thermal settings are more aggressive now)

    Kernel:
    *Fixed glitches when the display turns on

    August 16, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Added 2.5k 1440p video recording for the front-facing camera (you must use Snapdragon Camera)
    *Added 2.5k 1440p video recording for the back camera (you must use Snapdragon Camera)
    *Added flashlight fixes from CAF
    *Updated part of the WiFi configuration from official CM12.1
    *Reverted recent GPS change

    Kernel:
    *Possibly fixed glitches when the display turns on

    August 14, 2015:
    ROM:
    *Latest upstream CyanogenMod changes

    Kernel:
    *Fixed overly-excessive and inconsistent thermal throttling
    *Thermal driver now polls temperature sensor located on the PMIC instead of from TSENS
    (thermal throttling is very accurate now, and it will throttle when the device actually feels hot)
    *Fixed display backlight staying on (credit: myfluxi)
    *Fixed unbalanced SPS IRQ enable (credit: myfluxi)

    August 12, 2015:
    ROM:
    *Latest upstream CyanogenMod changes

    Kernel:
    *Fixed random reboots caused by Smartmax

    August 11, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Disabled a/v streaming offload again (it was still breaking videos in browser)
    *Switched back to old WCNSS (WiFi) firmware images
    *Synced Snapdragon Camera with CAF
    *Fixed incorrect video duration for HFR (slow-motion) videos
    *Fixed touch-to-focus in HDR mode
    *Fixed low framerate when recording 720p video with the front-facing camera
    *Fixed manual focus
    *Removed power HAL (it wasn't really doing anything)
    *Fixed CPU max freq not sticking to 729MHz in low-power mode

    Kernel:
    *Reverted vidc drivers to CAF LA.BF.1.1.1.c3 (fixes random reboots)
    *Display turns on faster now
    *Fixed bugs in CPU input boost driver (CPU was not being boosted enough)
    *CPU is boosted on thread migration
    *CPU is boosted when waking the display and putting it to sleep
    *Fixed touchscreen not working in doze (and hopefully fixed gestures/DT2W not working sometimes)

    August 6, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Fixed sensor calibration being reset on each boot
    *Forced triple framebuffering (UI feels smoother)

    August 5, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Fixed compass (for real this time)
    *Fixed some bugs in Snapdragon Camera

    Kernel:
    *Updated WiFi drivers back to CAF LA.BF.1.1.1_rb1.26
    *Enabled regulatory feature for WiFi

    August 4, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Fixed 720p HFR (slow-motion) and HSR (high-speed) video recording at 90FPS and 120FPS with all camera apps

    Kernel:
    *Updated WiFi drivers to CAF LA.BF.1.1.1.c3-04100-8x74.0

    August 3, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Fixed 720p HFR (slow-motion) recording at 90FPS and 120FPS
    *Added support for HSR (high-speed with audio) recording up to 120FPS for 720p and 60FPS for 1080p
    *Added Snapdragon Camera app (only app that lets you record HSR videos)
    *Removed option to record 1080p at 90/120FPS (making this work would require modification of the proprietary camera libraries)
    *Fixed focus not working in HDR mode
    *Reverted WiFi config changes from previous build
    *Increased earpiece speaker volume
    *Removed FWVGA camcorder resolution
    *Re-enabled audio offload for a/v streaming
    *Relaxed thermal thresholds

    Kernel:
    *Fixed display not turning on for users with a Truly panel
    *Downgraded WiFi drivers to v3.8.20.5 (as these are what's used for the LG G3)

    July 28, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Added 1080p video recording at 120 FPS
    *Added ability to record video at 90 FPS (for both 720p and 1080p as well)
    *Fixed broken video streaming in browsers (credit: myfluxi)
    *Updated WiFi configuration (attempting to fix low WiFi speeds)
    *Enabled audio offload for 12k and 24k sampling rates (credit: myfluxi)
    *Disabled thermal-engine (we will use my kernel-based thermal solution instead)
    *Enabled new kernel-based thermal mitigation

    Kernel:
    *Added homemade thermal driver (uses 3 throttling steps)
    *Added various I/O scheduler tweaks for CFQ and Deadline (thanks to myfluxi)
    *Fixed display not coming on for some users
    *Fixed DT2W not working sometimes

    July 25, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Added support for 1080P video recording with the front-facing camera
    *Fixed framerate drop when taking picture while recording 4K video
    *Updated complete WiFi configuration from LG G3 (better WiFi performance and stability)
    *Updated WCNSS WiFi firmware from LG G3
    *Fixed 30-degree error in compass (derp)

    Kernel:
    *Added and changed default TCP congestion algorithm to Westwood
    *Added CD-ROM emulation support (FrozenCow)
    *Added NTFS support

    July 23, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Fixed 4K video recording in all camera apps (such as Google Camera)
    *Fixed several bugs with Google Camera (such as broken photosphere and panorama functionality)
    *All firmware on the modem partition is now shipped with the ROM (so everyone will have the correct firmware and baseband no matter what)
    *Disabled fluence in phone calls (may have caused reduced mic volume during calls)
    *Synced GPS HAL with CAF LA.BF.1.1.1_rb1.26
    *Reverted WiFi config update from CM that broke all the things

    Kernel:
    *Added a bunch of sched patches (thanks to myfluxi for finding and testing these)

    July 19, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Added support for 4K video recording at UHD and DCI resolutions (only works with CameraNext and ColorOS camera)

    July 17, 2015:
    ROM:
    *Latest upstream CyanogenMod changes

    Kernel:
    *Fixed encryption (TWRP can now mount encrypted /data partitions)

    July 15, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Changed default I/O scheduler to Deadline

    Kernel:
    *Added upstream Linux patch to reduce Deadline's latency
    *Updated touchscreen suspend/resume routines to fix SoDs (again...)

    July 14, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Fixed camcorder in some camera apps (e.g. CameraNext)

    July 13, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Fixed WiFi hotspot (derp)
    *Added custom camera HAL made from CAF LA.BF.1.1.1.c3 with the following features:
    -More picture sizes (such as 9.7MP 16:9)
    -JPEG quality is always set to 100% (so pictures are not super compressed, and they are clear)

    Kernel:
    *Removed kexec hardboot support (breaks encryption)

    July 12, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Significant upstream change: compass is fixed
    *Reduced input boost frequencies
    *ROM is now compressed with LZMA (ROM zip is 50MB smaller as a result, and takes much less time to upload/download)
    *Updated Adreno graphics libraries from LG V400 (Adreno version tag: LA.BF.1.1.2_RB1-AU017-20150203)

    Kernel:
    *Synced with CAF LA.BF.1.1.1_rb1.26
    *Added kexec hardboot support
    *Added LCD KCAL by Savoca

    July 9, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Updated sensor configuration from OxygenOS
    *Added face unlock drawable fix (http://review.cyanogenmod.org/#/c/102703/)

    Kernel:
    *Fixed touchscreen not working sometimes when waking device from sleep (again)

    July 7, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Updated WPA supplicant overlay for Lollipop from Nexus 5
    *Added "Enable AIG and MBDRC for stereo recording path"
    *Fixed governor resetting to Interactive when changing perf mode back to balanced
    *Changed default devfreq governor from cpubw_hwmon to msm_cpufreq (fixes random reboots)

    Kernel:
    *Increased audit rate limit and backlog limit (fixes random reboots)

    July 4, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Synced audio HAL with CAF LA.BF.1.1.1_rb1.25
    *Synced display HAL with CAF LA.BF.1.1.1_rb1.25
    *Reduced time needed to optimize apps at boot
    *Enabled WiFi host NS offload
    *Added back vsync phase offsets
    *Changed default CPU governor to Smartmax

    Kernel:
    *Synced with CAF LA.BF.1.1.1_rb1.25
    *Synced prima (WiFi) drivers with CAF LA.BF.1.1.1_rb1.25
    *Added Smartmax governor by maxwen
    *Added LCD notify driver from LGE
    *Updated touchscreen power routines to be more stable and use LCD notifier
    *Fixed touchscreen not working sometimes when waking device from sleep
    *Fixed occasional SoD caused by derpy touchscreen resume/suspend routines (happened most often when on low-power mode)
    *Vibrator is automatically disabled when recording videos (so sound from the vibrator doesn't get into the videos)
    *Reconfigured JDI cmd-mode panel settings for 62Hz (as this is the true refresh rate of the panel)

    June 13, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Updated WiFi NVRAM config from LG G3
    *Fixed low speeds when connected to 5GHz WiFi networks

    Kernel:
    *Synced with CAF LA.BF.1.1.1_rb1.24

    June 9, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Battery percentage is shown during off-mode charging
    *Removed vsync phase offsets
    *Added back a RIL patch from CM

    Kernel:
    *Fixed front-facing camera (derp)
    *Fixed support for Sharp panels
    *Added CFQ I/O scheduler

    June 6, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Fixed audio not playing out of speaker in some cases

    Kernel:
    *Added Qualcomm H/W crypto support (thanks to myfluxi for researching this and fixing issues with it)
    *Fixed touchscreen not working when waking device from sleep
    *Added back support for various different displays
    *Added Motorola memory-routine optimizations

    June 4, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Significant upstream change: DHCP WiFi issue has been fixed

    Kernel:
    *Fixed occasional long delay of the screen turning on when waking the device from sleep
    *Moved touchscreen suspend/resume functions into high-priority workqueue

    June 3, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Enabled OTA updates via built-in CMUpdater
    *You can update to this build from June 2 via OTA

    June 2, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Fixed force close when sending MMS

    Kernel:
    *Added back underclock down to 1958MHz by default (you can disable the underclock by flashing a zip available in the OP)
    *Added more protection to CPU input boost driver
    *Tweaked notification LED color a bit more

    May 30, 2015:
    ROM:
    *Latest upstream CyanogenMod changes

    Kernel:
    *Fixed pink tint in notification LED
    *Updated Synaptics touchscreen firmware from CM gerrit (new per-panel firmware, doesn't have battery drain)

    May 29, 2015:
    ROM:
    *Latest upstream CyanogenMod changes
    *Synced media HAL with CAF LA.BF.1.1.1_rb1.23
    *Synced display HAL with CAF LA.BF.1.1.1_rb1.23
    *Updated WCNSS (WiFi) configuration from CM
    *Removed Qualcomm power HAL (does nothing without the performance daemon)
    *Added custom power HAL to handle low-power mode (CPU max frequency is lowered to 729MHz for low-power mode)
    *Fixed performance profiles

    Kernel:
    *Synced with CAF LA.BF.1.1.1_rb1.23
    *Added back CPU frequencies up to 2457MHz
    *Removed CPU underclock (CPU maxfreq is left at the default 2457MHz)
    *Synced prima (WiFi) drivers with CAF LA.BF.1.1.1_rb1.23

    May 28, 2015:
    ROM:
    *Initial release

    Kernel:
    *Initial release
    183
    FAQ:

    1. What is the difference between the stable and nightly builds?
    Answer: My ROM builds are based off of the stable CM12.1 code branches, whereas the official CM12.1 nightly builds are based off of the nightly CM12.1 code branch. Stable builds provide much better stability than nightly builds, but they don't receive updates as often as the nightly builds. Stable builds are separate from the nightly builds; you cannot install a stable build on top of a nightly build. The stable builds are the same as the SNAPSHOT builds on CM's website.

    2. Could you add camera slow-shutter times greater than 2 seconds?
    Answer: No, I cannot. The reason why exposure times are capped at 2 seconds is due to the proprietary camera libraries from OxygenOS. Only OnePlus and Cyanogen Inc. can modify the proprietary camera libraries, so there is no way for me, a regular consumer, to implement exposure times greater than 2 seconds.

    3. Why did you use OxygenOS camera libraries? They don't have 4K camcorder support!
    Answer: My custom camera HAL enables 4K camcorder support with Oxygen's camera libraries, so this isn't an issue. Cyanogen's camera libraries have had some issues with the camcorder since day 1. The big issue that I have been able to reproduce on all OnePlus One devices I've come across is graphical artifacts in recorded videos (look towards the right @25 seconds): https://youtu.be/LyIbb5wIyfY?t=22s
    (issue report on JIRA: https://jira.cyanogenmod.org/browse/BACON-3582)
    OxygenOS' camera libraries do not have this issue, and thanks to my modifications, we now have 4K camcorder support with the OxygenOS libraries, so not much is lost by using them. The OxygenOS libraries can also take pictures faster/better than Cyanogen's libraries.

    4. Why did you underclock the CPU to 1958MHz? Yer crazy, bro.
    Answer: At 1958MHz, the amount of heat generated by the CPU is quite a bit less than at 2457MHz, so the CPU is throttled less often (leading to better user experience), and battery life is better as well. The performance difference between 1958MHz and 2457MHz is also not really noticeable unless you use a benchmark application. If you want to remove the CPU underclock then flash the zip from the first post that disables the underclock. You must flash this zip every time you install a new ROM update.
    71
    @Sultanxda how much longer do you see yourself supporting the OPO? Are you planning on getting a OPT or either of the new Nexus devices?

    I hate Nexus devices, and I just spent 4 months reprogramming my OPO to make it work, so why would I ditch it and waste all the time I spent working on the OPO?

    My OPO works fine, and as long as it works I won't get a new phone for maybe another 1.5 years. No reason to burn money and time for a new device.
    70
    New stable build uploaded. This build is different from the builds I've provided thus far. The build is based off of the stable/cm-12.1-YOG4P branch of CM12.1, and it is basically my equivalent of COS12.1 (it is not actually COS12.1). It's a bummer, but you must perform a clean install to switch to the stable builds. I'll try and maintain the stable builds separately from the regular nightly builds I've been providing so far, so the stable builds will receive separate OTA updates from me and such. Updates will be released much less frequently for the stable version, as it's meant to be just that: a stable version. If you're the kind of person who would use COS12.1 then you may be interested in switching to the stable version. Personally, the soft reboots were killing me, so I'm currently using the stable version.

    There is more detailed information on the stable version in the FAQ, and there are updated installation instructions in the OP as well.

    Let's see how this goes :silly: