ROM [5.1.1] Unofficial CyanogenMod 12.1 with CAF 3.4.0 kernel

  1. 69gm
    Jelly Bean Jul 15, 2015

    69gm , Jul 15, 2015 :
    EDIT: This is still a great ROM, but for those who are a little more daring, might I suggest this:


    For those of you who didn't know about this ROM, I just wanted to point you to it.

    This is a CM 12.1 build with a Pure CAF kernel by @Sultanxda. It works really well. And best of all, it has been heavily optimized for stability and battery friendliness.

    The most recent innovation is in the camera which takes makes my One take incredible pictures!

    If you are interested in checking out Sultan's ROM go here.

    I understand a little more description in this OP would help some people but remember, I am NOT the dev. Please go to the official site linked above for the latest news and updates. I am only amending this post for convenience to others. Here are the details as quoted from @Sultanxda :

    * 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 I modified myself from CAF featuring:
      -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
      -JPEG quality is always set to 100% (pictures are very high quality)
    • 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)
    • 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...neplus_msm8974
    Local manifest (contains the rest of the sources): https://github.com/sultanxda/android...l_manifest.xml

    • 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 (TWRP 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.


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

    Mirror 1: http://forum.xda-developers.com/devd...t/dl/?id=16548

    Mirror 2: https://www.androidfilehost.com/?w=f...&sort_dir=DESC

    Google Apps: http://forum.xda-developers.com/andr...gapps-t3116347
    SuperSU (if you want root access): http://forum.xda-developers.com/show....php?t=1538053
    Disable CPU underclock: http://forum.xda-developers.com/devd...t/dl/?id=12808

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

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

    Version Information
    Status: Stable

    Created 2015-05-28
    Last Updated 2016-01-31
    Last edited: Feb 3, 2016

    Joyyy, Matius4, bfalge and 37 others like this.
  2. 69gm
    Jelly Bean Jul 15, 2015

    69gm , Jul 15, 2015 :

    April 10, 2016:
    *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

    *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:
    *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

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

    February 7, 2016:
    *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:
    *Latest upstream (stable/cm-12.1-YOG7D) CyanogenMod changes
    *Updated WiFi configuration from OxygenOS 2.1.4

    *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:
    *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

    *Added NFS support

    January 5, 2016:
    *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)

    *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:
    *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

    *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:
    *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

    *Fixed slow charging

    December 12, 2015:
    *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)

    *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:
    *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

    *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:
    *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

    *Screen turns on faster

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

    October 31, 2015:
    *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)

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

    October 27, 2015:
    *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

    *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:
    *Reverted battery driver change (to fix random reboots)

    October 24, 2015:
    *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

    *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:
    *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)

    *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:
    *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)

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

    October 4, 2015:
    *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

    *Fixed headset buttons
    *Fixed Google Now getting automatically triggered when plugging in some headsets very quickly
    *Relaxed thermal thresholds for the battery (again)
    Last edited: Apr 11, 2016

    NewCorn, pikota, gaster and 9 others like this.
  3. 69gm
    Jelly Bean Jul 15, 2015

    69gm , Jul 15, 2015 :

    1. What is the difference between the stable and nightly builds?
    Answer: The stable builds are based off of the stable CM12.1 code branches, whereas the nightly builds are based off of the nightly CM12.1 code branch. The stable builds should provide better stability than the the nightly builds, but they won't receive updates as often as the nightly builds. The stable builds are separate from the nightly builds; you cannot install a stable build on top of a nightly build (however, you can install a nightly build on top of a stable build). An easy way to think about the stable builds is to think of them as my equivalent of COS12.1. The stable builds come with root access just like the nightly builds.

    2. 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):
    (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.

    3. 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: Aug 28, 2015

    NoNoZaZa and bhavinvis like this.
  4. #HYPEorGTFO
    KitKat Jul 15, 2015

  5. Naman Bhalla
    Recognized developer Recognized Developer Jul 15, 2015

    Naman Bhalla , Jul 15, 2015 :
    ROM is great ..A lot stable.Love the default underclock but the inability to undervolt makes me sad.Also,no custom Kernel compatible (except TYR) ... So have to switch..
    For others,if you love CM 12.1 nightlies stock,you will love this a looooot ..Sultan has squashed a lot of bugs .So it is more stable.But,yeah,it lacks some customization features found in ROMs like Bliss,Temasek etc....
    In the end,more positives than negatives...So give it a go.

  6. Manav Bhagia
    Ice Cream Sandwich Jul 15, 2015

    Manav Bhagia , Jul 15, 2015 :
    I think 4k recording doesn't work in caf builds

  7. margabro
    Jelly Bean Jul 15, 2015

    margabro , Jul 15, 2015 :
    really awesome... I will try it out!

  8. 69gm
    Jelly Bean Jul 15, 2015

    69gm , Jul 15, 2015 :
    The reason 4k doesn't work is because Sultan uses Oxygen camera libs. OxygenOS doesn't have 4k either. This was on purpose since CM has had some hit and miss results with their camera libs.

    Threbitsch likes this.
  9. 69gm
    Jelly Bean Jul 15, 2015

    69gm , Jul 15, 2015 :
    Here are a couple of pictures using old camera HAL. Notice that the details are pretty good but the picture doesn't have the "pop" that the ones above have:

    [​IMG] [​IMG]

    pbergonzi likes this.
  10. 69gm
    Jelly Bean Jul 15, 2015

    69gm , Jul 15, 2015 :
    Yes, Bird of Paradise! LOL! And hibiscus. I live in Hawaii, FYI.

    As far as SOT, YMMV of course but many have been impressed. 5+ hours isn't unheard of. I am a pretty heavy user so I get about 4 hours.

    bytejester and #HYPEorGTFO like this.
  11. Manav Bhagia
    Ice Cream Sandwich Jul 15, 2015

  12. 69gm
    Jelly Bean Jul 15, 2015

    69gm , Jul 15, 2015 :
    But that was the whole point...because there were issues with CM libs, Sultan opted to go with the Oxygen libs. If you do research, even Steve Kondik himself acknowledge problems with the camera libs.

    I'm hoping that with the next builds coming out from Oxygen, they will have updated their camera libs further so that it can do 4k. Then those can be incorporated.

  13. vivekjagnani
    Cupcake Jul 15, 2015

  14. 69gm
    Jelly Bean Jul 15, 2015

    69gm , Jul 15, 2015 :
    If you are coming from Official nightly, you should be able to dirty flash, although, in general, I usually recommend clean flashing ANYTIME you switch ROMs.

  15. Manav Bhagia
    Ice Cream Sandwich Jul 15, 2015

    Manav Bhagia , Jul 15, 2015 :
    We'll find out on the 27th of July

    DaxNagtegaal and 69gm like this.
  16. 69gm
    Jelly Bean Jul 15, 2015

    69gm , Jul 15, 2015 :
    LOL, true true! :D

    Or at least I hope! We've been fooled before...LOL!

    DaxNagtegaal and Manav Bhagia like this.
  17. DaxNagtegaal
    Marshmallow Jul 15, 2015

    Deactivated User likes this.
  18. 69gm
    Jelly Bean Jul 15, 2015

    69gm , Jul 15, 2015 :
    Dax! How you doing, buddy! :)

  19. EpicSwirly
    Jul 15, 2015

    EpicSwirly , Jul 15, 2015 :
    Don't tell me how to live my life.


    It does look interesting. I might give it s go soon™

    NoNoZaZa and 69gm like this.
  20. 69gm
    Jelly Bean Jul 15, 2015

    69gm , Jul 15, 2015 :
    You guys crack me up!

    Deactivated User likes this.