[ROM][6.0.1] CyanogenMod 13.0 Builds [6.0.1_r74][2016/12/5][Linux+CAF+Google+CM]

Search This thread

jgcaap

Senior Member
Sep 22, 2009
9,910
19,228
Porto
url]


Hello everyone, after long studying both kernel and ROMs, i've decided to start building a ROM of my own.


Download

If you want to use Xposed. After flashing rom, boot it and only after that flash Xposed.

GAPPS

Support and a complete pack with other stuff (cm-12.1)

It is recommended to use F2FS.

Recovery - Wipe - advanced wipe - Select internal card - FS options - Check F2FS and swipe.

Remember that you'll loose everything on your internal memory.

Partition configuration i recomend for best speed:
cache --> F2FS
Internal Data -->F2FS
System --> EXT4


Features:
Updated SQL to 3.14.1
Optimized SQL code for faster Read/Write
CM Super User (for now is the most stable one)
CameraNext from COS13
New Kernel
Improved Code of frameworks
Optimized Build with custom toolchain on ROM and Kernel
Optimizations for our chip
Improved sound with speex resampler
Improved bionic with many optimized libraries (faster rom)
Improved Art with upstream patches
More than 100 mem fixes not included on cm builds
Optimized native frameworks for our device
LZMA updated to the latest
Proguard 5.3
Google Webview
F2FS ready for data and cache
Immersive mode
Expanded Notifications
Network Monitor
K1 Camera (Color OS camera and plugins)
ColorOs Blobs (much better quality)
More coming soon



I'm a very praticle user, and my aim will be to get a very fluid stable system, at same time with speed and battery, keeping most stock possible with the optimizations which will improve for real our experience.

Thanks :)

You problably wondering why i say is CAF+Google+CM. It's in fact very easy... and i have seen many threads which mislead the interpertation. Google provides AOSP+ kernel patches for the nexus devices which are for our chipset.
Qualcom provides CAF changes which is over linux kernel changes and google changes. (in other words kernel is linux based and frameworks/art/bionic are based on the google stuff which is also based on linux)
We still have CM changes.

So basically how it works? i'll simplify

We use Google as base which includes CAF changes and CM changes... and with this ROM... jgcaap changes :)

So why Add CAF on some roms at tittle?
Basically is linux kernel with CAF changes without google or CM changes on kernel (and kernel only)

But let me add you some knowledge here. What you call CAF is in fact Oxygen OS kernel. In other words, what Devs which have on title CAF which is related to 3.4.0 kernel is in fact linux+CAF+Oxygen OS.

Oxygen OS changes is only compatible with blobs which are from oxygen OS, and we do not use it. So because of that, the rom problably won't boot in case you flash a "CAF" kernel

Why some Devs use the called CAF and some CM source?

Depends on preference. I prefer CM because i believe is the best not only on performance but also never had issues with it. But there might be different experiences regarding the phone you have since we all have different batches. There are devs which believe that compability issues might be related to some CM commits. As also, there are devs which think the other way around.



Join out Google+ community

Big thanks to @RobbieL811 for the patience and help he provided to create these builds.
Thanks also for the experience i won with @ak @savoca @Lord Boeffla @ZaneZam by discussing and learning about the kernel. A big thanks to @dorimanx. Thank you @franciscofranco for commits to improve kernel!
Thank you @Markox89 on being first help on rom building. @katinatez for guiding me to create better builds! @arter97 for his toolchains and commits.
Thanks @supervis0r for the headbanner.
As you might know, all credits go to CyanogenMod Team.


Source Code
OnePlus Thread
If you like my work, please consider a donation.
 

Attachments

  • KlnDQuI.png
    KlnDQuI.png
    17.5 KB · Views: 77,539
Last edited:

jgcaap

Senior Member
Sep 22, 2009
9,910
19,228
Porto
Flashing instructions:
1) Firmware (I'll keep updated always when necessary.)
2) ROM
3) Slim Gapps (don't flash any other)
4) Let me know how it go.

Notes:
1) keep new modem which is on the op, also compatible with oxygen modem (I'll upload)
2) flash rom after rebooting recovery
3) kernel development will be 3.60 and upward.



Toubleshooting:

I'm not responsible for any damage caused to the device.

There is a bug which drains battery over ambient display, if you have drains, is a CM/google bug (problably a feature i'll deprecrate in case i'm not able to improve it).

You'll get great performance and stuff working if you use exatly what i've shared.

Mods/kernels/scripts not provided by me, i won't give any support.

Problem: After flashing firmware appear no SIM
Solution: There is a known problem with TWRP ofiicial. Download the custom version from katinatez which is 2.8.6.0 or 2.8.7.5 and flash again

Description: TWRP messed up

Problem: Appears wrong binary when flashing new ROM, even by flashing firmware
Solution: flash new firmware, reboot recovery, flash rom.

Changelog :

22/02/2016

cm-13.0 9b2ae3b] Fix for launching App from Recent Apps on first click
Author: Narendra <nagarw@codeaurora.org>
Date: Mon Feb 1 16:23:00 2016 +0530
1 file changed, 8 insertions(+), 1 deletion(-)
[cm-13.0 9fa1b87] Fix NullPointerException in DhcpPacket.getTransactionId()
Author: Damien Vagner <damienx.vagner@intel.com>
Date: Tue Jan 26 16:41:51 2016 +0100
1 file changed, 2 insertions(+)
[cm-13.0 8e92512] BatteryStats: fix wrong calculation of battery voltage
Author: yangxiaoxing <yangxiaoxing@xiaomi.com>
Date: Mon Feb 15 20:18:49 2016 +0800
1 file changed, 4 insertions(+), 4 deletions(-)
[cm-13.0 2aa17a5] Use clang for libhwui
Author: Chris Craik <ccraik@google.com>
Date: Tue Nov 3 10:33:34 2015 -0800
1 file changed, 3 insertions(+)
[cm-13.0 19bde4a] Avoid unregistering client while stopping LE Scan
Author: Om Prakash Sahoo <om.p.sahoo@intel.com>
Date: Thu Mar 19 11:23:31 2015 +0100
1 file changed, 1 insertion(+), 3 deletions(-)
[cm-13.0 fd1596b] When the applicantion is removed, reset network permission of this uid.
Author: zhangshuxiao <zhangshuxiao@xiaomi.com>
Date: Wed Feb 3 21:28:25 2016 +0800
1 file changed, 34 insertions(+), 1 deletion(-)
[cm-13.0 68870f2] Camera2: Fix getInternalFormatSizes for depth
Author: Chien-Yu Chen <cychen@google.com>
Date: Tue Feb 16 14:28:50 2016 -0800
1 file changed, 4 insertions(+), 2 deletions(-)
[cm-13.0 8bd72fa] ImageReader: override the flexible YUV compatible formats
Author: Zhijun He <zhijunhe@google.com>
Date: Wed Feb 17 17:24:04 2016 -0800
1 file changed, 8 insertions(+)
[cm-13.0 cb55b48] The value returned by mNotificationList.size() is out of synchronize
Author: guoyin.chen <guoyin.chen@freescale.com>
Date: Wed Feb 17 15:21:53 2016 +0800
1 file changed, 3 insertions(+), 2 deletions(-)
[cm-13.0 5c534d6] Framework changes for disabling per app metered network usage
Author: Kamaljeet Maini <kmaini@cyngn.com>
Date: Fri Jan 8 14:17:41 2016 -0800
2 files changed, 15 insertions(+), 2 deletions(-)
[cm-13.0 a770f26] Return only if both playback and capture not present
Author: Sumit Bhattacharya <sumitb@nvidia.com>
Date: Mon Sep 28 15:13:28 2015 +0530
1 file changed, 10 insertions(+), 2 deletions(-)
[cm-13.0 ea55b93] Fix bugs : when user designate print range, NumberFormatException is occured.
Author: hyoyeon.hwang <hyoyeon.hwang@lge.com>
Date: Thu Feb 11 19:18:01 2016 +0900
1 file changed, 8 insertions(+), 2 deletions(-)
[cm-13.0 600a94e] Sometimes property service is slow to respond.
Author: Gao,KunX <kunx.gao@intel.com>
Date: Mon Oct 21 16:16:00 2013 +0800
1 file changed, 1 insertion(+)
[cm-13.0 0fbe527] Don't apply clang flag to gcc builds.
Author: Dan Albert <danalbert@google.com>
Date: Thu Nov 5 00:59:09 2015 -0800
1 file changed, 1 insertion(+), 1 deletion(-)
[cm-13.0 45e55ba] UsbdeviceManager: Avoid sending extra USB_STATE broadcast intent
Author: Maunik Shah <mshah@codeaurora.org>
Date: Sat Dec 12 15:28:51 2015 +0530
1 file changed, 1 deletion(-)
[cm-13.0 d516638] Fix to NullPointerException when activity is relaunched
Author: Daniel 2 Olofsson <daniel2.olofsson@sonymobile.com>
Date: Tue Apr 30 11:50:16 2013 +0200
1 file changed, 8 insertions(+)
[cm-13.0 f0506b2] ChooseTypeAndAccountActivity: Fix the NullPointerException
Author: kaiyiz <kaiyiz@codeaurora.org>
Date: Fri Jul 26 15:27:39 2013 +0800
1 file changed, 1 insertion(+), 1 deletion(-)
[cm-13.0 49a0b89] Performance Optimization: Align texture dirty rect
Author: ywen <ywen@codeaurora.org>
Date: Mon Feb 15 16:09:40 2016 +0800
1 file changed, 10 insertions(+), 4 deletions(-)
[cm-13.0 b0493ba] Avoid duplicate call to onLoadFinished()
Author: Romain Vimont (®om) <rom@rom1v.com>
Date: Thu Dec 5 11:08:10 2013 +0100
1 file changed, 1 insertion(+), 1 deletion(-)

07/01/2016

ART:
Fix bogus logging statement. …
Fix 030-bad-finalizer & 059-finalizer-throw. …
Partially fix 046-reflect. …
Fix 137-cfi. …
Fix 055-enum-performance. …
Fix bug with test 964.

Frameworks:

System crash fixed when turn off MagnificationGesture …
Allow faster app switching …
SwipeHelper: Let's cut Max Excape Animation in Half too …
Reduce risk of memory corruption due to finalization. …
NullPointerException when starting VoiceInteractionManagerService …

Added:
Network monitor

bacon configs:
updated WCNSS
Synced with hammer configs
updated camera configs

kernel:
synced with CM

built kernel 2.53 with a new touch driver, let me know if is better.

misc:
updated SuperSU 2.66

05/01/2016

Changelog:
Added CAF task manager
Add Snapdragon Camera

frameworks/base
Scroll: modified velocitytracker …
Reduce synchronized region when checking idle states. …
handle timeout of requestNetwork …
Skip duplicated appop checking of ContentProvider. …
SettingsProvider: Update icon. …
ConcurrentModificationException in SyncManager …
Restart persistent process if start timeout. …
Reduce sscanf times for optimization …
Make 'Restrict Background Data' notification swipeable …
PackageManager: allow build-time disabling of components …
base: Allow certian browsers to log-in …
Trace SQLite operations …
Forward Port: Smoother Upload and Download Animation …
Fix On Tap Home button …

ART:
rebased ART with caf stuff and CM (undertest)
Disabled clang for now.

Kernel:
Disabled cortex-a15 as there is evidence for causing battery drains.

26/12/2015
on rom level was added:
compiler-rt latest available
openssh latest available
jpeg latest available
libhevc latest available
lzma latest available
sqlite 3.9.2
Random reboots fix
Code synced with CM
New toolchain GCC 4.9 optimized for our device for ROM and Kernel
Added boring SSL
Hopefully killed the graphics random anoying whatever we call it.


On art:
Remove unused WorkStealing thread pool
ART: Abort if malloc() fails in SwapAllocator::allocate().
ART: Include zero-padding in String::SizeOf().
ART: Fix destruction order in Runtime.
ART: Fix bug in DeadPhiHandling
ART: (Partially) fix lock aliasing
base: Fix an infinite loop in HashSet::Insert
ART: Fix potential integer overflow in JNI.
Delegate long-to-float type conversions to the runtime on ARM.
Fix race condition for method root marking in VisitNativeRoots
Fix hash set memory leaks
ART: Improve Indenter performance.
ART: Update run-test 100
ART: Fix PACKED size of tls_ptr_size.


Updated kernel:

Very summarised to what was done on kernel:
full rebased where was removed all commits not related to Krait but cortex-A15
Reverted back to CAF cpu boost
changed intereactive configuration to be more battery friendly
Using only aligned access for best performance and stability, as unalignment has it's own bad costs. Read more here: http://www.alexonlinux.com/aligned-vs-unaligned-memory-access
Added stable ondemand governor from CAF
Updated to latest wifidriver
Optimize kernel cfbfillrect function
Use of ALIGNED_STRUCT_PAGE

02/10/2015
Frameworks base:
Fix filedescriptor leakage in MediaMetadataRetriever
fix bug about view cache in RemoteViews
Fix NativeDaemonConnectorException issue accessing null object
Fix problem with BootAnimation exit
Correct the first index for drain.
Properly handle null URIs.
Reduce log verbosity: Don't spam logcat
Increase Touch Sensitivity
Turn off debugging
[ActivityManager] Fix IndexOutOfBoundsException

bionic:
Import memchr implementation from cortex-strings for Cortex A15
libc: Import optimized string routines from Apple

Update webview to 46.0.2490.76

Synced with CM

18/10/2015
Readded Qualcom Bionic Optimization
Synced with CM 18/10/2015

17/10/2015

Rebased the whole rom and removed many commits unecessary and creating incompabilities.
Update to SQLite 3.8.11.1
Synced with CM 17/10/2015

16/10/2015

bionic:
Rebased:
Use ARM/Aarch64 assembly for fabs/fabsf … new
libc: arm: add optimized memchr implementation …
bionic: libc: arm: Update libgcc_compat. … new
libc: arm: a15: add optimized memcpy implementation …
Catch up on upstream's round/roundf/roundl. … new
Remove __ARM_HAVE_HALFWORD_MULTIPLY. …
Remove __ARM_HAVE_LDREXD. …
Sync libm with upstream. …
Properly align init/fini_arrays for crtend.o …
bionic: libc: arm: Remvoe a couple extra '.text's. …

bionic: libc: arm: Optimized strrchr, courtesy NetBSD. …
bionic: libc: arm: Optimized strchr, courtesy NetBSD. …
Speed-up ARM memcmp by leveraging NEON. …
bionic: benchmarks: Add more benchmarks. …
cortex-a9: Fix reference to __memcpy_base_aligned. …


av:
Prevent integer underflows in ID3::Iterator …
Fix potential double close in IMediaMetadataRetriever::setDataSource …
camera2: fix various BpCameraDeviceUser methods to return correct res… …

base:
IndexOutOfBoundsException on addPreference in PreferenceGroup …
Reset the setOnKeyListener callback when view is destroyed …
Text size for empty view shall be styled according to theme …
Remove hard-coded DrawSelectorOnTop on ListFragment's default ListView. …
Frameworks/base: Fix AdapterViewAnimator.createOrReuseLayoutParams …
Safely handle interrupts during Thread.join() …
Retry if interrupted before mMessageThread has joined …
Implement finalizer for RS contexts. …
Make accessing mInputMethodTarget thread-safe …


native:
Avoid overwriting EGL14.EGL_NO_SURFACE …
libgui: Only allow one return from useFenceSync …
SurfaceFlinger: Fix null pointer exception …
Eliminate multiple benign overflow conditions. …
Eliminate benign overflow condition triggered upon loop termination i… …
Enable multiple benign overflow conditions. …
Benign unsigned integer overflow in Parcel …
 
Last edited:

jgcaap

Senior Member
Sep 22, 2009
9,910
19,228
Porto
Frequently Asked Questions:

Q: What changes have you made between versions?
A: All changes made are the same as CyanogenMod ROM which can be found here: http://www.cmxlog.com/13/bacon/ and all manual changes will be also stated on 2nd post.
You can also check on Settings --> About where are all the changes.

Q: What is LZ4?
A: Read here about the project: https://github.com/Cyan4973/lz4

Q: Was the latest build used LZ4?
A: This is still under testing and I'm working on it. It'll be in the test folder.

Q: What is the test folder?
A: Unstable, and test builds where I seek to study a new configuration to enhance user experience.

Q: Why don't you always share changelogs?
A: Limited time. Sorry about it. :)

Q: Why do you many times ask for donations?
A: Well... This work is free, and as you know if you like it and on your own free will you think I deserve and currently wish to help me out as I am currently going to become unemployed and as also I study for my Masters in Finance, I believe is only fair. While you use, I'm testing and investing my time on it. Should be rewarded because of that right? Is only fair.

Q: Do you receive a lot of donations?
A: Since last year until today I've received around 300 euro. But I've invested 1000 hours on these android builds. That gives a ratio of 30 cents an hour.

Q: Why do you still invest on android since it doesn't provide you with any feasible income? I would have already quilted!
A: Basically this forum makes me relax. :)

Q: Will you leave cm builds when exodus is released?
A: I didn't plan on giving my cm builds, but if exodus proves to be superior why should I have double work right? Only time and users will tell.

Q: I'm confused. I have no clue which builds is the latest!
A: You can always download again! :D


Q: I want more from the rom!
A: Me too!

Q: Why you sometimes ignore users?
A: I never ignore, just don't have time to answer all. Please help one another and also use the search button. I think you prefer me learning to bring something nice then post all the time right? hehe :)

Q: I have so many questions to ask you!
A: I can provide many answers! Just ask!

Q: Can I PM you?
A: Only when is urgent!

Q: How to report bugs?
A: Our bugs are CM bugs. Report on JIRA: https://jira.cyanogenmod.org

Q: Are you CyanogenMod maintainer?
A: No, just a user which wants to have better builds possible. But would be nice to see CM adding me to the contributions list. :)

Q: Which Firmware do you use?
A: Download here: http://download.jgcaap.xyz/files/oneplusone/firmware/ as I'll provide the firmware there.

Q: Why Slim gaaps? Open Gaaps are so much cool!
A: Open Gaaps has provided many unstable issues which makes the phone unusable until a clean format. Slim gaaps have shown to be better on that.

Q: Why some buttons of UKM don't work?
A: Need time to improve that.. :p

Q: I want an updated app to auto-update roms. Too lazy to check the thread!
A: I understand, for now, is not feasible to do it as I need time to analyse and understand best solution as I update tool-chains regularly and also is not my priority. Remember time is limited for me. :)

Q: Why the picture is upside down?
A: Ask the app developer to fix it as it mounts incorrectly.

Q: But upside down is from the stock app you have on rom?
A: You probably changed kernel. Either use stock or a version which supports the find7 blobs.

Q: Why does the Rom charge slow? Please add quick charge feature!
A: Quick Charge is not available for your device, what is available is the option to lower or increase the mAh input of the charger, which will lead to a slower or faster-charging process. This has been lowered to save the battery lifetime because if you heat to much the battery the acids start to become basic and loose it's capacity to store electricity. But you still have the option to change this by flashing UKM (which is available on the server) and by installing synapse. Here is another thing I like to avoid:
http://www.phonearena.com/news/OnePlus-One-bursts-into-flames-while-charging-in-India_id84509

Q: Why not overclock?
A: Two reasons. One it damages the device. The second makes it heat, and if you read the answer to this question, you'll understand easily that it'll stress battery and make it loose its battery lifetime faster. as also it'll degrade the inboard components faster. Remember your phone is not a toy and there can be other damages done.

Q: Are you responsible for any damages we take?
A: Everything is tested, and I use it daily. If you have any damages you can only contact the company OnePlus to see if the warranty covers it. I am not responsible for any damages you have with your device.

Q: Can you add a bunch of features to kernel? I want 20 schedulers!
A: Kernel has to be small. So I'll only add the necessary.

Q: Can you compile with O3? Or Just Archi? I heard is super cool.
A: Already was on that path and quickly learned that the force of the light is the way. May the force be with you.
 
Last edited:

OmegaBlaze

Senior Member
Dec 24, 2009
1,907
634
www.twitter.com
thanks, if possible give 1-2 days on each rom, and make a vote on your preference :)
I take my first statement back.

After switching between both using Multirom: they're the same as of now lol

The number one thing I look for in roms is scrolling. Whichever ROM gives me the best scrolling, wins (because that's what I will be doing most often).
 

jgcaap

Senior Member
Sep 22, 2009
9,910
19,228
Porto
I take my first statement back.

After switching between both using Multirom: they're the same as of now lol

The number one thing I look for in roms is scrolling. Whichever ROM gives me the best scrolling, wins (because that's what I will be doing most often).
HeHehe try check 2 days straight without rebooting. Because while using, cache accumulates on memory as programs. And can have different reactions. I used B for two days already. Now trying A. I'm studying a bit of how roms get along with different type of apps. I will say in the end each type of build used. I just don't want that to influence people [emoji14]
 
Last edited:

Setting.Out

Inactive Recognized Contributor
Mar 10, 2013
7,592
8,306
Sèvres
Seems solid (v.b) I also match your benchmark..

Sent from my A0001 using XDA Premium 4 mobile app
 

Attachments

  • 1425419018215.jpg
    1425419018215.jpg
    38.2 KB · Views: 20,248
  • Like
Reactions: jgcaap

Setting.Out

Inactive Recognized Contributor
Mar 10, 2013
7,592
8,306
Sèvres
The second build seems to give different benchmark results if you test two/ three times... With the A build seems more consistent. Can you try that in your phone please?

I got fairly consistent scores with multiple runs on; SD read/write using SD tools, MFLOPS using linpack, metal on vellamo and general testing on antutu.. Though these tests were not ideal as my battery was low, caches weren't cleaned and all settings were kept 100% stock..

Sent from my A0001 using XDA Premium 4 mobile app
 
  • Like
Reactions: jgcaap

jgcaap

Senior Member
Sep 22, 2009
9,910
19,228
Porto
I got fairly consistent scores with multiple runs on; SD read/write using SD tools, MFLOPS using linpack, metal on vellamo and general testing on antutu.. Though these tests were not ideal as my battery was low, caches weren't cleaned and all settings were kept 100% stock..

Sent from my A0001 using XDA Premium 4 mobile app
Thank you for trying the rom with me. :) this will be good as I'll improve it with time.
 

Setting.Out

Inactive Recognized Contributor
Mar 10, 2013
7,592
8,306
Sèvres
Day two... Rom b was virtually no different to stock cm in performance and battery life.. As per my usage 6hrs+ sot with 24hrs uptime 6% remaining, no alterations to apps or rom..

I just flashed rom a and ran the same benchmarks with similar battery levels and conditions as before, but rom a is showing a slight gain in performance on antutu only, but slightly lower in all other tests..


Sent from my A0001 using XDA Premium 4 mobile app
 

Attachments

  • 1425507725880.jpg
    1425507725880.jpg
    38.3 KB · Views: 15,360

Setting.Out

Inactive Recognized Contributor
Mar 10, 2013
7,592
8,306
Sèvres
I'm ready for my conclusion...

After only 12hrs on rom a, I can see/feel a difference.. Rom a stutters and lags more on normal usage.. Apps seem to load slightly slower, but battery life seems slightly better.. All apps and settings kept 100% stock. I choose rom b. ;)

Sent from my A0001 using XDA Premium 4 mobile app
 
  • Like
Reactions: Nickamina and Nizur

jgcaap

Senior Member
Sep 22, 2009
9,910
19,228
Porto
I'll build one more version of both tool chains to check diferences with some optimizations.. If I'm lucky this weekend. Thank you setting out for helping me out with this. :)
 

Top Liked Posts

  • There are no posts matching your filters.
  • 384
    url]


    Hello everyone, after long studying both kernel and ROMs, i've decided to start building a ROM of my own.


    Download

    If you want to use Xposed. After flashing rom, boot it and only after that flash Xposed.

    GAPPS

    Support and a complete pack with other stuff (cm-12.1)

    It is recommended to use F2FS.

    Recovery - Wipe - advanced wipe - Select internal card - FS options - Check F2FS and swipe.

    Remember that you'll loose everything on your internal memory.

    Partition configuration i recomend for best speed:
    cache --> F2FS
    Internal Data -->F2FS
    System --> EXT4


    Features:
    Updated SQL to 3.14.1
    Optimized SQL code for faster Read/Write
    CM Super User (for now is the most stable one)
    CameraNext from COS13
    New Kernel
    Improved Code of frameworks
    Optimized Build with custom toolchain on ROM and Kernel
    Optimizations for our chip
    Improved sound with speex resampler
    Improved bionic with many optimized libraries (faster rom)
    Improved Art with upstream patches
    More than 100 mem fixes not included on cm builds
    Optimized native frameworks for our device
    LZMA updated to the latest
    Proguard 5.3
    Google Webview
    F2FS ready for data and cache
    Immersive mode
    Expanded Notifications
    Network Monitor
    K1 Camera (Color OS camera and plugins)
    ColorOs Blobs (much better quality)
    More coming soon



    I'm a very praticle user, and my aim will be to get a very fluid stable system, at same time with speed and battery, keeping most stock possible with the optimizations which will improve for real our experience.

    Thanks :)

    You problably wondering why i say is CAF+Google+CM. It's in fact very easy... and i have seen many threads which mislead the interpertation. Google provides AOSP+ kernel patches for the nexus devices which are for our chipset.
    Qualcom provides CAF changes which is over linux kernel changes and google changes. (in other words kernel is linux based and frameworks/art/bionic are based on the google stuff which is also based on linux)
    We still have CM changes.

    So basically how it works? i'll simplify

    We use Google as base which includes CAF changes and CM changes... and with this ROM... jgcaap changes :)

    So why Add CAF on some roms at tittle?
    Basically is linux kernel with CAF changes without google or CM changes on kernel (and kernel only)

    But let me add you some knowledge here. What you call CAF is in fact Oxygen OS kernel. In other words, what Devs which have on title CAF which is related to 3.4.0 kernel is in fact linux+CAF+Oxygen OS.

    Oxygen OS changes is only compatible with blobs which are from oxygen OS, and we do not use it. So because of that, the rom problably won't boot in case you flash a "CAF" kernel

    Why some Devs use the called CAF and some CM source?

    Depends on preference. I prefer CM because i believe is the best not only on performance but also never had issues with it. But there might be different experiences regarding the phone you have since we all have different batches. There are devs which believe that compability issues might be related to some CM commits. As also, there are devs which think the other way around.



    Join out Google+ community

    Big thanks to @RobbieL811 for the patience and help he provided to create these builds.
    Thanks also for the experience i won with @ak @savoca @Lord Boeffla @ZaneZam by discussing and learning about the kernel. A big thanks to @dorimanx. Thank you @franciscofranco for commits to improve kernel!
    Thank you @Markox89 on being first help on rom building. @katinatez for guiding me to create better builds! @arter97 for his toolchains and commits.
    Thanks @supervis0r for the headbanner.
    As you might know, all credits go to CyanogenMod Team.


    Source Code
    OnePlus Thread
    If you like my work, please consider a donation.
    92
    Flashing instructions:
    1) Firmware (I'll keep updated always when necessary.)
    2) ROM
    3) Slim Gapps (don't flash any other)
    4) Let me know how it go.

    Notes:
    1) keep new modem which is on the op, also compatible with oxygen modem (I'll upload)
    2) flash rom after rebooting recovery
    3) kernel development will be 3.60 and upward.



    Toubleshooting:

    I'm not responsible for any damage caused to the device.

    There is a bug which drains battery over ambient display, if you have drains, is a CM/google bug (problably a feature i'll deprecrate in case i'm not able to improve it).

    You'll get great performance and stuff working if you use exatly what i've shared.

    Mods/kernels/scripts not provided by me, i won't give any support.

    Problem: After flashing firmware appear no SIM
    Solution: There is a known problem with TWRP ofiicial. Download the custom version from katinatez which is 2.8.6.0 or 2.8.7.5 and flash again

    Description: TWRP messed up

    Problem: Appears wrong binary when flashing new ROM, even by flashing firmware
    Solution: flash new firmware, reboot recovery, flash rom.

    Changelog :

    22/02/2016

    cm-13.0 9b2ae3b] Fix for launching App from Recent Apps on first click
    Author: Narendra <nagarw@codeaurora.org>
    Date: Mon Feb 1 16:23:00 2016 +0530
    1 file changed, 8 insertions(+), 1 deletion(-)
    [cm-13.0 9fa1b87] Fix NullPointerException in DhcpPacket.getTransactionId()
    Author: Damien Vagner <damienx.vagner@intel.com>
    Date: Tue Jan 26 16:41:51 2016 +0100
    1 file changed, 2 insertions(+)
    [cm-13.0 8e92512] BatteryStats: fix wrong calculation of battery voltage
    Author: yangxiaoxing <yangxiaoxing@xiaomi.com>
    Date: Mon Feb 15 20:18:49 2016 +0800
    1 file changed, 4 insertions(+), 4 deletions(-)
    [cm-13.0 2aa17a5] Use clang for libhwui
    Author: Chris Craik <ccraik@google.com>
    Date: Tue Nov 3 10:33:34 2015 -0800
    1 file changed, 3 insertions(+)
    [cm-13.0 19bde4a] Avoid unregistering client while stopping LE Scan
    Author: Om Prakash Sahoo <om.p.sahoo@intel.com>
    Date: Thu Mar 19 11:23:31 2015 +0100
    1 file changed, 1 insertion(+), 3 deletions(-)
    [cm-13.0 fd1596b] When the applicantion is removed, reset network permission of this uid.
    Author: zhangshuxiao <zhangshuxiao@xiaomi.com>
    Date: Wed Feb 3 21:28:25 2016 +0800
    1 file changed, 34 insertions(+), 1 deletion(-)
    [cm-13.0 68870f2] Camera2: Fix getInternalFormatSizes for depth
    Author: Chien-Yu Chen <cychen@google.com>
    Date: Tue Feb 16 14:28:50 2016 -0800
    1 file changed, 4 insertions(+), 2 deletions(-)
    [cm-13.0 8bd72fa] ImageReader: override the flexible YUV compatible formats
    Author: Zhijun He <zhijunhe@google.com>
    Date: Wed Feb 17 17:24:04 2016 -0800
    1 file changed, 8 insertions(+)
    [cm-13.0 cb55b48] The value returned by mNotificationList.size() is out of synchronize
    Author: guoyin.chen <guoyin.chen@freescale.com>
    Date: Wed Feb 17 15:21:53 2016 +0800
    1 file changed, 3 insertions(+), 2 deletions(-)
    [cm-13.0 5c534d6] Framework changes for disabling per app metered network usage
    Author: Kamaljeet Maini <kmaini@cyngn.com>
    Date: Fri Jan 8 14:17:41 2016 -0800
    2 files changed, 15 insertions(+), 2 deletions(-)
    [cm-13.0 a770f26] Return only if both playback and capture not present
    Author: Sumit Bhattacharya <sumitb@nvidia.com>
    Date: Mon Sep 28 15:13:28 2015 +0530
    1 file changed, 10 insertions(+), 2 deletions(-)
    [cm-13.0 ea55b93] Fix bugs : when user designate print range, NumberFormatException is occured.
    Author: hyoyeon.hwang <hyoyeon.hwang@lge.com>
    Date: Thu Feb 11 19:18:01 2016 +0900
    1 file changed, 8 insertions(+), 2 deletions(-)
    [cm-13.0 600a94e] Sometimes property service is slow to respond.
    Author: Gao,KunX <kunx.gao@intel.com>
    Date: Mon Oct 21 16:16:00 2013 +0800
    1 file changed, 1 insertion(+)
    [cm-13.0 0fbe527] Don't apply clang flag to gcc builds.
    Author: Dan Albert <danalbert@google.com>
    Date: Thu Nov 5 00:59:09 2015 -0800
    1 file changed, 1 insertion(+), 1 deletion(-)
    [cm-13.0 45e55ba] UsbdeviceManager: Avoid sending extra USB_STATE broadcast intent
    Author: Maunik Shah <mshah@codeaurora.org>
    Date: Sat Dec 12 15:28:51 2015 +0530
    1 file changed, 1 deletion(-)
    [cm-13.0 d516638] Fix to NullPointerException when activity is relaunched
    Author: Daniel 2 Olofsson <daniel2.olofsson@sonymobile.com>
    Date: Tue Apr 30 11:50:16 2013 +0200
    1 file changed, 8 insertions(+)
    [cm-13.0 f0506b2] ChooseTypeAndAccountActivity: Fix the NullPointerException
    Author: kaiyiz <kaiyiz@codeaurora.org>
    Date: Fri Jul 26 15:27:39 2013 +0800
    1 file changed, 1 insertion(+), 1 deletion(-)
    [cm-13.0 49a0b89] Performance Optimization: Align texture dirty rect
    Author: ywen <ywen@codeaurora.org>
    Date: Mon Feb 15 16:09:40 2016 +0800
    1 file changed, 10 insertions(+), 4 deletions(-)
    [cm-13.0 b0493ba] Avoid duplicate call to onLoadFinished()
    Author: Romain Vimont (®om) <rom@rom1v.com>
    Date: Thu Dec 5 11:08:10 2013 +0100
    1 file changed, 1 insertion(+), 1 deletion(-)

    07/01/2016

    ART:
    Fix bogus logging statement. …
    Fix 030-bad-finalizer & 059-finalizer-throw. …
    Partially fix 046-reflect. …
    Fix 137-cfi. …
    Fix 055-enum-performance. …
    Fix bug with test 964.

    Frameworks:

    System crash fixed when turn off MagnificationGesture …
    Allow faster app switching …
    SwipeHelper: Let's cut Max Excape Animation in Half too …
    Reduce risk of memory corruption due to finalization. …
    NullPointerException when starting VoiceInteractionManagerService …

    Added:
    Network monitor

    bacon configs:
    updated WCNSS
    Synced with hammer configs
    updated camera configs

    kernel:
    synced with CM

    built kernel 2.53 with a new touch driver, let me know if is better.

    misc:
    updated SuperSU 2.66

    05/01/2016

    Changelog:
    Added CAF task manager
    Add Snapdragon Camera

    frameworks/base
    Scroll: modified velocitytracker …
    Reduce synchronized region when checking idle states. …
    handle timeout of requestNetwork …
    Skip duplicated appop checking of ContentProvider. …
    SettingsProvider: Update icon. …
    ConcurrentModificationException in SyncManager …
    Restart persistent process if start timeout. …
    Reduce sscanf times for optimization …
    Make 'Restrict Background Data' notification swipeable …
    PackageManager: allow build-time disabling of components …
    base: Allow certian browsers to log-in …
    Trace SQLite operations …
    Forward Port: Smoother Upload and Download Animation …
    Fix On Tap Home button …

    ART:
    rebased ART with caf stuff and CM (undertest)
    Disabled clang for now.

    Kernel:
    Disabled cortex-a15 as there is evidence for causing battery drains.

    26/12/2015
    on rom level was added:
    compiler-rt latest available
    openssh latest available
    jpeg latest available
    libhevc latest available
    lzma latest available
    sqlite 3.9.2
    Random reboots fix
    Code synced with CM
    New toolchain GCC 4.9 optimized for our device for ROM and Kernel
    Added boring SSL
    Hopefully killed the graphics random anoying whatever we call it.


    On art:
    Remove unused WorkStealing thread pool
    ART: Abort if malloc() fails in SwapAllocator::allocate().
    ART: Include zero-padding in String::SizeOf().
    ART: Fix destruction order in Runtime.
    ART: Fix bug in DeadPhiHandling
    ART: (Partially) fix lock aliasing
    base: Fix an infinite loop in HashSet::Insert
    ART: Fix potential integer overflow in JNI.
    Delegate long-to-float type conversions to the runtime on ARM.
    Fix race condition for method root marking in VisitNativeRoots
    Fix hash set memory leaks
    ART: Improve Indenter performance.
    ART: Update run-test 100
    ART: Fix PACKED size of tls_ptr_size.


    Updated kernel:

    Very summarised to what was done on kernel:
    full rebased where was removed all commits not related to Krait but cortex-A15
    Reverted back to CAF cpu boost
    changed intereactive configuration to be more battery friendly
    Using only aligned access for best performance and stability, as unalignment has it's own bad costs. Read more here: http://www.alexonlinux.com/aligned-vs-unaligned-memory-access
    Added stable ondemand governor from CAF
    Updated to latest wifidriver
    Optimize kernel cfbfillrect function
    Use of ALIGNED_STRUCT_PAGE

    02/10/2015
    Frameworks base:
    Fix filedescriptor leakage in MediaMetadataRetriever
    fix bug about view cache in RemoteViews
    Fix NativeDaemonConnectorException issue accessing null object
    Fix problem with BootAnimation exit
    Correct the first index for drain.
    Properly handle null URIs.
    Reduce log verbosity: Don't spam logcat
    Increase Touch Sensitivity
    Turn off debugging
    [ActivityManager] Fix IndexOutOfBoundsException

    bionic:
    Import memchr implementation from cortex-strings for Cortex A15
    libc: Import optimized string routines from Apple

    Update webview to 46.0.2490.76

    Synced with CM

    18/10/2015
    Readded Qualcom Bionic Optimization
    Synced with CM 18/10/2015

    17/10/2015

    Rebased the whole rom and removed many commits unecessary and creating incompabilities.
    Update to SQLite 3.8.11.1
    Synced with CM 17/10/2015

    16/10/2015

    bionic:
    Rebased:
    Use ARM/Aarch64 assembly for fabs/fabsf … new
    libc: arm: add optimized memchr implementation …
    bionic: libc: arm: Update libgcc_compat. … new
    libc: arm: a15: add optimized memcpy implementation …
    Catch up on upstream's round/roundf/roundl. … new
    Remove __ARM_HAVE_HALFWORD_MULTIPLY. …
    Remove __ARM_HAVE_LDREXD. …
    Sync libm with upstream. …
    Properly align init/fini_arrays for crtend.o …
    bionic: libc: arm: Remvoe a couple extra '.text's. …

    bionic: libc: arm: Optimized strrchr, courtesy NetBSD. …
    bionic: libc: arm: Optimized strchr, courtesy NetBSD. …
    Speed-up ARM memcmp by leveraging NEON. …
    bionic: benchmarks: Add more benchmarks. …
    cortex-a9: Fix reference to __memcpy_base_aligned. …


    av:
    Prevent integer underflows in ID3::Iterator …
    Fix potential double close in IMediaMetadataRetriever::setDataSource …
    camera2: fix various BpCameraDeviceUser methods to return correct res… …

    base:
    IndexOutOfBoundsException on addPreference in PreferenceGroup …
    Reset the setOnKeyListener callback when view is destroyed …
    Text size for empty view shall be styled according to theme …
    Remove hard-coded DrawSelectorOnTop on ListFragment's default ListView. …
    Frameworks/base: Fix AdapterViewAnimator.createOrReuseLayoutParams …
    Safely handle interrupts during Thread.join() …
    Retry if interrupted before mMessageThread has joined …
    Implement finalizer for RS contexts. …
    Make accessing mInputMethodTarget thread-safe …


    native:
    Avoid overwriting EGL14.EGL_NO_SURFACE …
    libgui: Only allow one return from useFenceSync …
    SurfaceFlinger: Fix null pointer exception …
    Eliminate multiple benign overflow conditions. …
    Eliminate benign overflow condition triggered upon loop termination i… …
    Enable multiple benign overflow conditions. …
    Benign unsigned integer overflow in Parcel …
    63
    I made cm-14.0 buildable for bacon, just need to fix some things. I'll problably be able to finish after exam.
    43
    new rom with sqlite 3.14.1 is up
    43
    New build coming with Proguard 5.3 and new optimizations added. Should improve Rom's performance.

    It seems cm-14.0 is already buildable for oneplus3 . I'm going to see how i can turn it buildable for oneplus one as from what it seems it is just needed to change some parts. Lets see if I have time. Got an exam on tuesday.