[HOWTO][Bacon][F2FS-ALL] F2FS Filesystem

Search This thread

gulp79

Senior Member
Jul 22, 2013
392
237
Rome
All-F2FS Partitions for Oneplus One

I am not responsible for any damage to your phone.
Make always a full nandroid backup.
Read before downloading or posting in the thread.
Proceed with caution if you have no experience.
Again, make always a full (including /data/media) nandroid backup.



[ What is F2FS ]
http://www.cnx-software.com/2013/01/15/f2fs-a-new-flash-file-system-for-mobile-devices-elce-2012/
http://www.xda-developers.com/android/f2fs-put-to-the-test-against-ext4/
http://en.wikipedia.org/wiki/F2FS


[ TESTED WITH ROMs ]

CM12 nightly
CM11 nightly
Temasek
Slim Saber (tested by @Setting.Out)
CM11S stock using complete guide with ak boot.img from CM11S kernel. (tested by @Leicxan)
Calkulin's_OPO_ROM (tested by @DarkAngel-81)
Madhi
Gummy (tested by @Setting.Out)
EOS (tested by @Setting.Out)
Slim (tested by @Setting.Out)


For CM12 use this guide:

F2FS for CM12.X

(if you test other roms, please report here, so we can track working roms)

Use these recoverys to work with F2FS partitions:
CWM Advanced Edition - PhilZ Touch
or
TWRP




this guide for All-F2FS on OPO is based on guide of ronedogg.
Original thread: http://xdaforums.com/showthread.php?t=2694201



[ Prebuild ROM ]


Download a F2FS ready ROM:
CM-11-20141203-NIGHTLY-bacon-F2FS
CM-11S-XNPH33R-bacon-signed-F2FS
Calkulin's stock rooted XNPH33R-F2FS (thanks to @LookedPath)
Madhi 8-30 build-F2FS (thanks to @SchmilK)
SlimSaber-F2FS (thanks to @dexxa05)
Droidkang-F2FS (thanks to @SchmilK)
Carbon-F2FS (thanks to @Setting.Out)


1. Flash Philz Recovery with F2FS support.

WARNING make a FULL nandroid backup, and place it on external storage, also SD partition will be formatted
2. Boot to the Philz Recovery, format /system /cache and "/data and /data/media" to F2FS
3. Flash the downloaded modified rom, (install the gapps.zip if needed) and AK Kernel for your rom.
4. Reboot & enjoy the new speed!


[ Easy Way First time format in F2FS]
[ without using a prebuild F2FS enabled rom ]

1. Download latest CM nightly or CM11S
2. Download:
F2FS-ALL-CM11.zip for CM11
F2FS-ALL-CM11S.zip for CM11S ( tanks to @Setting.Out)
and extract boot.img and updater-script
3. Copy the extracted boot.img in rom zipfile overwriting original one (tested with 7zip)
4. Copy the extracted updater-script in rom zipfile overwriting original one, for cm11 is located under .\META-INF\com\google\android\.
5. Flash Philz Recovery with F2FS support.

WARNING make a FULL nandroid backup, and place it on external storage, also SD partition will be formatted
6. Boot to the Philz Recovery, format /system /cache and "/data and /data/media" to F2FS
7. Flash the modified CM nightly zipfile, the gapps.zip and AK Kernel ( for this step, i've used an OTG cable and an external hdd, because the phone now is completely empty, or use ADB sideloading)
8. Reboot & enjoy the new speed!


[ Easy Way Upgrading a rom with partition already on F2FS ]

[ without using a prebuild F2FS enabled rom ]

1. Download latest CM nightly (https://download.cyanogenmod.org/?device=bacon)
2. Download F2FS-ALL-CM11.zip and extract boot.img and fstab.grouper
3. Copy the extracted boot.img in the CM nightly zipfile overwriting original one
4. Copy the extracted fstab.grouper in the CM nightly zipfile overwriting original one, located under .\META-INF\com\google\android\
5. Flash the modified CM nightly zipfile, and AK Kernel
6. Reboot



[ Complete guide to manually modify the rom ]


This is the exact procedure i've used for CM11 (OPO ready)
to unpack/repack the boot.img i've used http://boot-repacker.blogspot.it/

Oneplus ONE - CM Nightly with All-F2FS

1. Download latest CM nightly
2. Download AK kernel zipfile
3. Open CM nightly zipfile, extract the boot.img
4. Open AK kernel zipfile, extract the zImage and rename it boot.img-zImage
5. Unpack the boot.img in step3
6. Replace the boot.img-zImage in step5 with AK boot.img-zImage (step4)
7. Replace fstab.grouper content with this one

Code:
# Android fstab file.
#                                               
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK

/dev/block/platform/msm_sdcc.1/by-name/system       /system         f2fs    ro,noatime,nosuid,nodev,discard,nodiratime,inline_xattr,errors=recover wait
/dev/block/platform/msm_sdcc.1/by-name/userdata     /data           f2fs    noatime,nosuid,nodev,discard,nodiratime,inline_xattr,errors=recover wait,nonremovable,encryptable=/dev/block/platform/msm_sdcc.1/by-name/reserve4
/dev/block/platform/msm_sdcc.1/by-name/cache        /cache          f2fs    noatime,nosuid,nodev,discard,nodiratime,inline_xattr,errors=recover wait
/dev/block/platform/msm_sdcc.1/by-name/persist      /persist        ext4    nosuid,nodev,barrier=1,data=ordered,nodelalloc,nomblk_io_submit,errors=panic wait,check
/dev/block/platform/msm_sdcc.1/by-name/boot         /boot           emmc    defaults                                                        defaults
/dev/block/platform/msm_sdcc.1/by-name/recovery     /recovery       emmc    defaults                                                        defaults
/dev/block/platform/msm_sdcc.1/by-name/misc         /misc           emmc    defaults                                                        defaults
/dev/block/platform/msm_sdcc.1/by-name/modem        /firmware       vfat    ro,shortname=lower,uid=1000,gid=1026,dmask=227,fmask=337,context=u:object_r:firmware_file:s0        wait

/devices/platform/xhci-hcd*                         auto            auto    defaults voldmanaged=usbdisk:auto

8. Repack boot.img place it back in the CM nightly zipfile
9. On the CM nightly zipfile, edit updater-script and edit these lines:

Code:
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/userdata", "/data");
replace it with
Code:
run_program("/sbin/busybox", "mount", "/data");

this

Code:
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");
replace it with
Code:
run_program("/sbin/busybox", "mount", "/system");

and these

Code:
format("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "0", "/system");
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");
replace with
Code:
run_program("/sbin/mkfs.f2fs", "/dev/block/platform/msm_sdcc.1/by-name/system");
run_program("/sbin/busybox", "mount", "/system");


10. Save the updater-script and put it back to the zipfile. CM nightly zipfile is complete and ready for flashing.
11. Flash Philz Recovery with F2FS support.

WARNING make a FULL nandroid backup, and place it on external storage, also SD partition will be formatted
12. Boot to the Philz Recovery, format /system /cache and "/data and /data/media" to F2FS
13. Flash the modified CM nightly zipfile, the gapps.zip and AK Kernel ( for this step, i've used an OTG cable and an external hdd, because the phone now is completely empty, or use ADB sideloading)
14. Reboot
15. Enjoy the new speed!



thanks to:
@ak for the kernel
@Phil3759 for recovery
@ronedogg for original guide
@katinatez & @johnnyslt for OPO F2FS enabled Philz Recovery
 
Last edited:

Leicxan

Senior Member
Dec 21, 2011
271
176
Shanghai
OnePlus 7 Pro
Tested,work with stock cm11s XNPH33R
I just followed step 1~7 then i restored my nandroid backup
Here's my method
Step 8,repack boot.img at first,then i use fastboot command to flash boot.img.
Step 9, Boot in to Philz Recovery, flash AK kernel ,reboot your phone
Step 10, enjoy your phone with Full F2FS

Using Complete guide from OP sholud work, you can use this rom, Calkulin's_Stock_OPO_XNPH33R_ROM_v1.0

sorry for my english
 
  • Like
Reactions: zzori

zzori

Member
Aug 1, 2014
9
0
42
Seoul
STOCK XNPH33R is good work, too

Thanks to @gulp79, @Leicxan

I do Leicxan's Guide, good work now.

XNPH30O-bacon-signed-fastboot.zip flash -> XNPH33R Update -> nandroid full backup

kernel : cm11s/stock: ak.031.opo.cm11s
recovery : bacon_philz_touch_6.57.5_katinatez.zip

sorry for my english
 
Last edited:

zzori

Member
Aug 1, 2014
9
0
42
Seoul
Result

Can you conform if power off charging works after convert to f2fs? For me it's not working.

1. Power Off (83%)
2. Connect Charge cable => 1+1 Logo .............. continue

after 3min

3. Power On => (85%) +2%

I'll go home retesting.

※ Do not use "Settings - Backup & reset - Factory data reset" !!
Philz recovery unlimit loop and reset all data T.T

Sorry for my english T.T
 

_Beni_

Senior Member
Jul 4, 2013
359
77
Wieselburg
Can i only use /system as f2fs partition?
It hangs at boot and only with /cache partition at PA bootlogo?
Or is just PA incompatible?
 

gulp79

Senior Member
Jul 22, 2013
392
237
Rome
Can i only use /system as f2fs partition?
It hangs at boot and only with /cache partition at PA bootlogo?
Or is just PA incompatible?

You can use only system, but use the complete guide and don't edit these two lines in fstab.grouper

Code:
/dev/block/platform/msm_sdcc.1/by-name/userdata     /data           f2fs    noatime,nosuid,nodev,discard,nodiratime,inline_xattr,errors=recover wait,nonremovable,encryptable=/dev/block/platform/msm_sdcc.1/by-name/reserve4
/dev/block/platform/msm_sdcc.1/by-name/cache        /cache          f2fs    noatime,nosuid,nodev,discard,nodiratime,inline_xattr,errors=recover wait

if you want to use only system in F2FS, /data and /cache had to stay in ext4
 

Leicxan

Senior Member
Dec 21, 2011
271
176
Shanghai
OnePlus 7 Pro
with phone off i too have this problem, but i don't know if is related to FS.

1. Power Off (83%)
2. Connect Charge cable => 1+1 Logo .............. continue

after 3min

3. Power On => (85%) +2%

I'll go home retesting.

※ Do not use "Settings - Backup & reset - Factory data reset" !!
Philz recovery unlimit loop and reset all data T.T

Sorry for my english T.T

19:19 : Power Off (89%)
Connect Charge cable (samsung galaxy S5 LTE-A 5.3v 2.0A) => 1+1 Logo .............. continue

after 9min

19:28 : Power On => +5% (94%)

:good: Thanks for your test , it seems power off charging was working, but charge animation was not load
the charge animation was located to /res/images/charger, so i think may be it's a kernel problem.
 

Saythis

Senior Member
Jan 30, 2012
1,101
552
:good: Thanks for your test , it seems power off charging was working, but charge animation was not load
the charge animation was located to /res/images/charger, so i think may be it's a kernel problem.

Do you have Quickboot enabled? If so it won't show the charging icon when it's off because it's in hibernate.
 

Setting.Out

Inactive Recognized Contributor
Mar 10, 2013
7,593
8,306
Sèvres
I'm attempting to convert Slim Saber.. (Fingers Crossed)

---------- Post added at 06:09 PM ---------- Previous post was at 05:39 PM ----------

Quick question, does Philz mount the usb?.. ( I know the option is there, just if it actually works) I would love to be able to just transfer the files and flash and not use fastboot comands.. :)

Thanks..
 

tiny4579

Inactive Recognized Developer
Jan 15, 2011
9,327
5,060
You can use only system, but use the complete guide and don't edit these two lines in fstab.grouper

Code:
/dev/block/platform/msm_sdcc.1/by-name/userdata     /data           f2fs    noatime,nosuid,nodev,discard,nodiratime,inline_xattr,errors=recover wait,nonremovable,encryptable=/dev/block/platform/msm_sdcc.1/by-name/reserve4
/dev/block/platform/msm_sdcc.1/by-name/cache        /cache          f2fs    noatime,nosuid,nodev,discard,nodiratime,inline_xattr,errors=recover wait

if you want to use only system in F2FS, /data and /cache had to stay in ext4
FYI it's fstab.bacon not fstab.grouper.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 26
    All-F2FS Partitions for Oneplus One

    I am not responsible for any damage to your phone.
    Make always a full nandroid backup.
    Read before downloading or posting in the thread.
    Proceed with caution if you have no experience.
    Again, make always a full (including /data/media) nandroid backup.



    [ What is F2FS ]
    http://www.cnx-software.com/2013/01/15/f2fs-a-new-flash-file-system-for-mobile-devices-elce-2012/
    http://www.xda-developers.com/android/f2fs-put-to-the-test-against-ext4/
    http://en.wikipedia.org/wiki/F2FS


    [ TESTED WITH ROMs ]

    CM12 nightly
    CM11 nightly
    Temasek
    Slim Saber (tested by @Setting.Out)
    CM11S stock using complete guide with ak boot.img from CM11S kernel. (tested by @Leicxan)
    Calkulin's_OPO_ROM (tested by @DarkAngel-81)
    Madhi
    Gummy (tested by @Setting.Out)
    EOS (tested by @Setting.Out)
    Slim (tested by @Setting.Out)


    For CM12 use this guide:

    F2FS for CM12.X

    (if you test other roms, please report here, so we can track working roms)

    Use these recoverys to work with F2FS partitions:
    CWM Advanced Edition - PhilZ Touch
    or
    TWRP




    this guide for All-F2FS on OPO is based on guide of ronedogg.
    Original thread: http://xdaforums.com/showthread.php?t=2694201



    [ Prebuild ROM ]


    Download a F2FS ready ROM:
    CM-11-20141203-NIGHTLY-bacon-F2FS
    CM-11S-XNPH33R-bacon-signed-F2FS
    Calkulin's stock rooted XNPH33R-F2FS (thanks to @LookedPath)
    Madhi 8-30 build-F2FS (thanks to @SchmilK)
    SlimSaber-F2FS (thanks to @dexxa05)
    Droidkang-F2FS (thanks to @SchmilK)
    Carbon-F2FS (thanks to @Setting.Out)


    1. Flash Philz Recovery with F2FS support.

    WARNING make a FULL nandroid backup, and place it on external storage, also SD partition will be formatted
    2. Boot to the Philz Recovery, format /system /cache and "/data and /data/media" to F2FS
    3. Flash the downloaded modified rom, (install the gapps.zip if needed) and AK Kernel for your rom.
    4. Reboot & enjoy the new speed!


    [ Easy Way First time format in F2FS]
    [ without using a prebuild F2FS enabled rom ]

    1. Download latest CM nightly or CM11S
    2. Download:
    F2FS-ALL-CM11.zip for CM11
    F2FS-ALL-CM11S.zip for CM11S ( tanks to @Setting.Out)
    and extract boot.img and updater-script
    3. Copy the extracted boot.img in rom zipfile overwriting original one (tested with 7zip)
    4. Copy the extracted updater-script in rom zipfile overwriting original one, for cm11 is located under .\META-INF\com\google\android\.
    5. Flash Philz Recovery with F2FS support.

    WARNING make a FULL nandroid backup, and place it on external storage, also SD partition will be formatted
    6. Boot to the Philz Recovery, format /system /cache and "/data and /data/media" to F2FS
    7. Flash the modified CM nightly zipfile, the gapps.zip and AK Kernel ( for this step, i've used an OTG cable and an external hdd, because the phone now is completely empty, or use ADB sideloading)
    8. Reboot & enjoy the new speed!


    [ Easy Way Upgrading a rom with partition already on F2FS ]

    [ without using a prebuild F2FS enabled rom ]

    1. Download latest CM nightly (https://download.cyanogenmod.org/?device=bacon)
    2. Download F2FS-ALL-CM11.zip and extract boot.img and fstab.grouper
    3. Copy the extracted boot.img in the CM nightly zipfile overwriting original one
    4. Copy the extracted fstab.grouper in the CM nightly zipfile overwriting original one, located under .\META-INF\com\google\android\
    5. Flash the modified CM nightly zipfile, and AK Kernel
    6. Reboot



    [ Complete guide to manually modify the rom ]


    This is the exact procedure i've used for CM11 (OPO ready)
    to unpack/repack the boot.img i've used http://boot-repacker.blogspot.it/

    Oneplus ONE - CM Nightly with All-F2FS

    1. Download latest CM nightly
    2. Download AK kernel zipfile
    3. Open CM nightly zipfile, extract the boot.img
    4. Open AK kernel zipfile, extract the zImage and rename it boot.img-zImage
    5. Unpack the boot.img in step3
    6. Replace the boot.img-zImage in step5 with AK boot.img-zImage (step4)
    7. Replace fstab.grouper content with this one

    Code:
    # Android fstab file.
    #                                               
    # The filesystem that contains the filesystem checker binary (typically /system) cannot
    # specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
    
    /dev/block/platform/msm_sdcc.1/by-name/system       /system         f2fs    ro,noatime,nosuid,nodev,discard,nodiratime,inline_xattr,errors=recover wait
    /dev/block/platform/msm_sdcc.1/by-name/userdata     /data           f2fs    noatime,nosuid,nodev,discard,nodiratime,inline_xattr,errors=recover wait,nonremovable,encryptable=/dev/block/platform/msm_sdcc.1/by-name/reserve4
    /dev/block/platform/msm_sdcc.1/by-name/cache        /cache          f2fs    noatime,nosuid,nodev,discard,nodiratime,inline_xattr,errors=recover wait
    /dev/block/platform/msm_sdcc.1/by-name/persist      /persist        ext4    nosuid,nodev,barrier=1,data=ordered,nodelalloc,nomblk_io_submit,errors=panic wait,check
    /dev/block/platform/msm_sdcc.1/by-name/boot         /boot           emmc    defaults                                                        defaults
    /dev/block/platform/msm_sdcc.1/by-name/recovery     /recovery       emmc    defaults                                                        defaults
    /dev/block/platform/msm_sdcc.1/by-name/misc         /misc           emmc    defaults                                                        defaults
    /dev/block/platform/msm_sdcc.1/by-name/modem        /firmware       vfat    ro,shortname=lower,uid=1000,gid=1026,dmask=227,fmask=337,context=u:object_r:firmware_file:s0        wait
    
    /devices/platform/xhci-hcd*                         auto            auto    defaults voldmanaged=usbdisk:auto

    8. Repack boot.img place it back in the CM nightly zipfile
    9. On the CM nightly zipfile, edit updater-script and edit these lines:

    Code:
    mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/userdata", "/data");
    replace it with
    Code:
    run_program("/sbin/busybox", "mount", "/data");

    this

    Code:
    mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");
    replace it with
    Code:
    run_program("/sbin/busybox", "mount", "/system");

    and these

    Code:
    format("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "0", "/system");
    mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");
    replace with
    Code:
    run_program("/sbin/mkfs.f2fs", "/dev/block/platform/msm_sdcc.1/by-name/system");
    run_program("/sbin/busybox", "mount", "/system");


    10. Save the updater-script and put it back to the zipfile. CM nightly zipfile is complete and ready for flashing.
    11. Flash Philz Recovery with F2FS support.

    WARNING make a FULL nandroid backup, and place it on external storage, also SD partition will be formatted
    12. Boot to the Philz Recovery, format /system /cache and "/data and /data/media" to F2FS
    13. Flash the modified CM nightly zipfile, the gapps.zip and AK Kernel ( for this step, i've used an OTG cable and an external hdd, because the phone now is completely empty, or use ADB sideloading)
    14. Reboot
    15. Enjoy the new speed!



    thanks to:
    @ak for the kernel
    @Phil3759 for recovery
    @ronedogg for original guide
    @katinatez & @johnnyslt for OPO F2FS enabled Philz Recovery
    5
    I built a TWRP recovery that supports F2FS. I've confirmed recovery can format and mount /cache so this should be good to go. If anyone feels daring feel free to try it.

    Note it's a public dropbox link so don't abuse it. Mirror it if a few testers can confirm this works.

    EDIT: And yes it's the same device as bacon and should pass as both find7op and bacon.

    https://dl.dropboxusercontent.com/u/31805083/twrp-2.7.1.0-find7op-UNOFFICIAL.img
    5
    Carbon F2FS

    Here's Carbon & Franco "all in one" ... no need to flash anything else but gapps and superSU

    DOWNLOAD

    *Wipe
    *Flash
    *Enjoy
    5
    This should be a working F2FS capable TWRP.

    It seems to be based off TWRP 2.8 as well.

    https://dl.dropboxusercontent.com/u/31805083/twrp-2.8.0.0-bacon-UNOFFICIAL.img

    CM11 flashed and booted fine for me.

    I haven't tested backup/restore yet. It should work fine. If you want to be safe, backup beforehand as this is mostly untested but should work.
    4
    Updated twrp 2.8.0.1 I dropped it in the unofficial twrp thread with f2fs support.

    Enjoy :D

    http://xdaforums.com/showpost.php?p=55417676&postcount=63