[ONE Android Development] lemon07r:
TL;DR

Sultanxda's Cyanogenmod CAF ROM + DerRomTester's Tyr-CAF Kernel / ak's CAF Kernel / RenderBroken's CAF Kernel modified to work on 2p F2FS (F2FS /data and /cache, keep /system on ext4 please!),

this will not work on any other partition schemes!

Scroll to the bottom of this post for download and instructions.

STATE OF PROJECT - Sorry guys, I have been inactive for a while due to work and money problems, finally got a bit of free time before work. I've updated the project to be inline with sultanxda's latest builds AND I have also added render kernel and ak kernel variants. Enjoy!

Introduction

Hello everyone, I've been around for a while, but have not had anything worthwhile posting as I spend most of my time tinkering with my own and other's phones and tablets as hobby. Some of the more interesting things I've encountered as of recent are CAF, which led me through many roms and kernel, and then eventually [MENTION=4800121]Sultanxda[/MENTION]'s CAF Cyanogenmod Rom which is probably the best I have used in a long long time! However I am a big fan of the F2FS file system as well so I went ahead and put this together on my day's free time for myself, but I felt like sharing with those of you who might be interested.

Since [MENTION=4800121]Sultanxda[/MENTION]'s amazing rom [ROM+KERNEL][5.1.1] Unofficial CyanogenMod 12.1 with CAF 3.4.0 kernel does not officially support F2FS I went ahead modified the fstab, updater-script and replaced the kernel with [MENTION=4804871]DerRomtester[/MENTION]'s [KERNEL] [CAF] [UBERTC] Tyr-CAF Kernel as it has F2FS support and is originally based off of Sultanxda's CAF kernel.

UPDATE - I've added more flavors! This rom comes in ak and render kernel variants now!

So What is CAF?

CAF stands for Code Aurora Forums.

As explained in the AOSParadox Project page (A really cool project, vanilla CAF AOSP rom, definitely worth checking out).

So What is F2FS?

Wiki: F2FS (Flash-Friendly File System) is a flash file system initially developed by Samsung Electronics for the Linux kernel.

The F2FS file system boasts superior performance in comparison to the EXT4 file system (which is used as the default filesystem used for /data, /system and /cache) in /data and /cache (/system performs best with EXT4 file system). Click here for some benchmarks/analysis'!

What's so Great About [MENTION=4800121]Sultanxda[/MENTION]'s rom?

I love this rom because of the strong emphasis put into stability and keeping it clean. Take a look at it's features (taken from here):

Why use Tyr-CAF Kernel?

[MENTION=4800121]Sultanxda[/MENTION]'s rom does not support F2FS out of the box. The first thing required to get f2fs support, is a kernel that supports it, that's where [MENTION=4804871]DerRomtester[/MENTION]'s Tyr-CAF kernel comes into play. It's based off of [MENTION=4800121]Sultanxda[/MENTION]'s original CAF kernel but offers more customization and F2FS support.

Differences to [MENTION=4800121]Sultanxda[/MENTION]'s kernel:

Want [MENTION=3685904]ak[/MENTION]'s kernel instead?

ak is pretty well known for his great kernel work on the OnePlus One, his caf kernel now supports F2FS too! Check out his thread here!

[MENTION=5438598]RenderBroken[/MENTION]'s linux 3.4.108 kernel! Bleeding edge and multirom support!

Like using bleeding edge kernels or need a kernel with KEXEC (multirom) support? Check out [MENTION=5438598]RenderBroken[/MENTION]'s CAF kernel! Here is a quick overview of some of it's features:

Step by Step Guide and Downloads:

Step 1 (and Recovery download link)

Make sure to partition /data and /cache to F2FS first!

You need a recovery that supports formatting to F2FS to do this.

That means a modified version of TWRP or CWM.

You can find recoveries that support F2FS here. [MENTION=3814731]katinatez[/MENTION] recommends that you use his unofficial_twrp_2.8.6.1-bacon-dark.zip as it was the last version to support backing and flashing new modems, & firmware.

DO NOT USE TWRP 2.8.7.0 - TWRP v2.8.7.0 cannot properly update the modem

If using twrp (the one from above) you boot into recovery, go to wipe, advanced wipe, select Data, FS OPTIONS, CHANGE FS, F2FS, then swipe to wipe.

Do the same for cache; wipe, advanced wipe, select Cache, FS OPTIONS, CHANGE FS, F2FS, then swipe to wipe.

Step 2

Boot into recovery and wipe system, data and cache.

Download the rom (found at the bottom of this post).

Download lollipop gapps of your choice.

OPTIONAL:

Download UKM from the kernel developers respective master thread (check sources or tl;dr). You can install synapse or another kernel tweaker from the play store afterwords and tweak the kernel settings to your liking with this.

Step 3

Now to install the rom there are two methods. PS - This can take up to a couple minutes, do not be alarmed if you are on "patching unconditionally" for a bit.

Method A (mtp, easy way)

Enable mtp mode and put your rom and gapps on your phone.

Go to install, find the zips u saved to your phone and install them, rom first.

OR

Method B (adb, harder way)

If you have adb on your pc you can use this method.

Boot into recovery and go to Advanced > ADB sideload.

From you computer open up command prompt and enter the command

adb devices

to check if computer recognizes your phone.

If not install the adb interface driver manually for your phone.

Use this command to install zips from your pc (rom first):

adb sideload name_of_file.zip

Repeat with gapps (and ukm if you want it).

OR

Method C (OTG, unusual way)

You can use a usb-otg cable and a usb stick with the zips on it to install via twrp.

DOWNLOAD

Make sure you have read the instructions first!

- Tyr CAF Builds: Android File Host || Dev-Host

- ak CAF Builds: Android File Host || Dev-Host

- Render CAF Builds: Android File Host || Dev-Host

- All builds: Android File Host || Dev-Host || MEGA

Updating your rom

Download the latest build of this rom OPTIONAL download gapps again too (sometimes play service gets messed up for some reason, so I think it's a good opportunity to update your gapps too)

Save the zips to your phone (or you can use sideload)

Dirty flash the rom and then gapps. Wipe cache/art(dalvik) cache.

Boot system, and you good.

Version Information

Status:

ROM - Stable

Kernel - Varies

Kernel Source(s): DerRomTester's Tyr-CAF Kernel

ak's CAF Kernel

RenderBroken's CAF Kernel

Rom Source: Sultanxda's Cyanogenmod CAF ROM

Created 2015-09-12

Last Updated 2015-09-29

Credits: [MENTION=4800121]Sultanxda[/MENTION] (rom) [MENTION=3685904]ak[/MENTION] (kernel) [MENTION=5438598]RenderBroken[/MENTION] (kernel) [MENTION=4804871]DerRomtester[/MENTION] (kernel) [MENTION=3814731]katinatez[/MENTION] (recovery) [MENTION=5361016]gulp79[/MENTION] (f2fs guide) [MENTION=3874152]zaphodbeeb[/MENTION] (f2fs guide) [MENTION=4544860]osm0sis[/MENTION] (android image kitchen) And Everyone Else who has Contributed to the Android Community and Development! Let me know if I missed anyone worth mentioning here!

I've tested and verified this to be working on my own phone! If you have any issues I would check the relative rom or kernel threads.

Screenshots! Now I've never judged anything by benchmarks because real world use is more important, but I thought it would be fun to post. I was getting 44k on antutu when I was on exodus rom with ak kernel. This my antutu score on default kernel settings with Tyr kernel v15 (my first build/release), I bet it can be tweaked for more!