Vivo OriginOS to FunTouch (And reverse)

Search This thread

Killuminati91

Senior Member
Dec 12, 2012
278
98
THIS WILL WIPE YOUR DATA!
YOU MIGHT BRICK YOUR PHONE!
MAKE. A. BACKUP!!!

THIS IS A GENERAL GUIDE BASED ON THE x70 PRO PLUS AND NEEDS A LOT OF MODIFICATIONS FOR YOUR DEVICE.



Requirements:
- Unlocked Bootloader: Guide I, Guide II
- Root to extract boot.img and recovery.img (and make a backup)
- Android Image Kitchen (AIK)
- QFIL / Split image of your target firmware
- OTA Firmware with a higher version than your Split Image

I. Root your phone

You should backup all partitions either through magisk (if you have the current running firmware as ota.zip) or LineageOS GSI with me.phh.superuser.apk

The backup commands for the Vivo x70 Pro+ and a general guide can be found in the linked post.
If you have another device use adb to find your blocks and their proper partition names and modify the "script" from my post.

Code:
adb shell
ls -al /dev/block/by-name/

Do NOT backup userdata and sda.

II. Modify recovery

In order to enable adb in recovery we have to unpack the recovery.img and change some prop.default values. (You got this recovery.img either by backing up your partitions or having the correct ota.zip)
THIS post has a great guideline, you can skip everything TWRP related.

In Short:
1. Use AIK to unpack recovery.img
2. Delete the /split_img/*ramdisk*.zip ONLY
3. Open /ramdisk/default.prop or /ramdisk/prop.default or similar with a text editor
4. Modify according to step 22 in the linked post (care vivo uses adb.secure=1 two times, edit both properties)
5. Save, repack and flash the new recovery.img

III. Folder Structure

1. Create a new folder "transform" on your system and extract your SPLIT firmware files into a subfolder called "split". -> /transform/split/
First off identify your super_x.img files and their corresponding dynamic partitions. In general "system" should be the largest, "vendor" the second largest and odm / oem should be smaller.
You can open them with 7zip and identify their contents. Take note.

For the X70 Pro+: super_2.img = system | super_3.img = vendor | super_4.img = odm

2. Open these files in your ota.zip: /dynamic_partitions_op_list and /oem/dynamic_partitions_op_list.
Take note of the partition sizes for system, vendor, odm and vgc (ex. # Grow partition system from 0 to 5373415424).

3. Rename your OTA file to ota.zip and put it into /transform/ota/

IV. Modified Images

1. Download the attached misc-data.img and place it in /transform/modded/ (Thanks to @Pervokur).
If you flash this it tells recovery to look for "ota.zip" in /data/ on the next boot and install it if its available.
You can edit the path via hex editor but its fine for this guide. Dont flash it yet.

2. Patch the recovery.img from /transform/split/ according to step II and place it in /transform/modded/recovery-adb.img

V. Modify the flash script

1. Download my reference script and place it as info.txt into /transform/. Modify this script according to the files from your SPLIT firmware and your partition backups. Vivo phones with different hardware versions might be way more complicated. Analyze everything and take your time - you dont want to brick your device.

PAY ATTENTION: In the best case and at the very least you will have to modify vbmeta_oem, vbmeta_vgc, system, vendor, odm, oem and vgc to match your files.

DO NOT flash your fsg partition. This one basically contains your modem. If you do flash it or if you dont have signal after an ota update scroll down.

2. Go to "::RECREATE DYNAMIC PARTITIONS" and modify the partition sizes according to the values of III.2.

Code:
::OPEN A SHELL IN THIS FOLDER
::REBOOT YOUR PHONE INTO FASTBOOT (REBOOT AND HOLD POWER + VOL UP)

fastboot reboot bootloader
fastboot flash abl split/abl.elf
fastboot flash aop split/aop.mbn
fastboot flash boot split/boot.img
fastboot flash bluetooth split/BTFM.bin
fastboot flash cpucp split/cpucp.elf
fastboot flash devcfg split/devcfg.mbn
fastboot flash apdp split/dp_AP_signed_minidump.mbn
fastboot flash dsp split/dspso.bin
fastboot flash dtbo split/dtbo.img
fastboot flash factory split/factory.img
fastboot flash featenabler split/featenabler.mbn
fastboot flash storage split/firmware.bin
fastboot flash hyp split/hypvm.mbn
fastboot flash keymaster split/km41.mbn
fastboot flash logfs split/logfs_ufs_8mb.bin
fastboot flash mdcompress split/mdcompress.mbn
fastboot flash metadata split/metadata.img
::fastboot flash modemst1 split/modemst.mbn
::fastboot flash modemst2 split/modemst.mbn
fastboot flash multiimgoem split/multi_image.mbn
::fastboot flash fsg split/PD2145F_EX_fs_image.tar.gz.mbn.img
fastboot flash persist split/persist.img
fastboot flash qupfw split/qupv3fw.elf
fastboot flash recovery modded/recovery-adb.img
fastboot flash rtice split/rtice.mbn
fastboot flash secdata split/sec.elf
fastboot flash shrm split/shrm.elf
fastboot flash spunvm split/spunvm.bin
fastboot flash storsec split/storsec.mbn
fastboot flash tz split/tz.mbn
fastboot flash uefisecapp split/uefi_sec.mbn
fastboot flash vbmeta split/vbmeta.img
fastboot flash vbmeta_oem split/vbmeta_oem_PD2145F_EX_IN_NULL_NULL.img
fastboot flash vbmeta_system split/vbmeta_system.img
fastboot flash vbmeta_vgc split/vbmeta_vgc_NULL_PD2145F_EXMA.img
fastboot flash vendor_boot split/vendor_boot.img
fastboot flash vm-bootsys split/vm-bootsys.img
fastboot flash vgc split/vgc.img
fastboot flash xbl_config split/xbl_config.elf
fastboot flash xbl split/xbl.elf
fastboot flash xbl_configbak split/xbl_config.elf
fastboot flash xblbak split/xbl.elf
fastboot flash modem split/NON-HLOS.bin

::RECREATE DYNAMIC PARTITIONS
fastboot reboot fastboot
fastboot delete-logical-partition system
fastboot delete-logical-partition vendor
fastboot delete-logical-partition odm
fastboot delete-logical-partition vgc
fastboot create-logical-partition system 5373415424
fastboot create-logical-partition vendor 3128008704
fastboot create-logical-partition odm 1392640
fastboot create-logical-partition vgc 348160

::FLASH DYNAMIC PARTITIONS
::VGC WILL OUTPUT AN ERROR - DONT MIND
fastboot reboot fastboot
fastboot erase system
fastboot erase vendor
fastboot erase odm
fastboot erase oem
fastboot erase vgc
fastboot flash system split/super_2.img
fastboot flash vendor split/super_3.img
fastboot flash odm split/super_4.img
fastboot flash oem split/oem_PD2145F_EX_IN_NULL_NULL.img
fastboot flash vgc split/vgc_NULL_PD2145F_EXMA.img

fastboot reboot recovery

::IF IT DOESNT REBOOT JUST USE THE BUTTON ON YOUR PHONE
::NOW GO TO WIPE AND WIPE DATA & CACHE 2X
::CHECK SYSTEM -> RECOVERY SHOULD FAIL, EVERYTHING ELSE PASS

adb push ota/ota.zip /data
adb reboot bootloader

fastboot flash misc modded/misc-data.img
fastboot reboot

::LET THE PHONE START ONCE (ABOUT 1-5MIN)
::YOU ARE NOW ON FUNTOUCH

--------------------------------------------------------------------------

::YOU CAN BACKUP OTA PACKAGES FROM HERE WHEN THEY ARE DOWNLOADED (ROOT ONLY)
/data/vivo-updater/com.bbk.updater/OTAPackage/

::UPDATE TO THE LATEST VERSION VIA OTA ONLY AFTER YOU BACKUP THE OTA
::YOU MUST FLASH YOUR ORIGINAL BOOT.IMG BEFORE UPDATING

VI. Run the commands according to your modified flash script.

VII. Problems

1. Brick?
Flash all partitions from your backup

2. No signal?
Code:
fastboot erase modemst1
fastboot erase modemst2
fastboot flash fsg your-original-backup-fsg.img

3. DM-Verity Warning?
Code:
adb shell service call package 134 s16 com.vivo.daemonService i32 0 i32 0
Might be different for you but try it.

4. Fingerprint not working?
Try this post.

Huge thanks to @Pervokur for finding the bootloader exploit, guiding me through this and providing help all the way!
 

Attachments

  • misc-data.img
    1 MB · Views: 36
Last edited:
  • Like
Reactions: raimondomartire

Killuminati91

Senior Member
Dec 12, 2012
278
98
In general there should be an easier method without having to flash a lot of things. This is hypothetical information:

Vivo Recovery looks for device identifiers in the following locations:
Code:
/vgc/env.prop ro.*
/vendor/vgc/vendor_env.prop ro.*
/vgc/vgc.prop ro.*
/vendor/vgc/vgc.prop ro.*
/oem/oem.prop ro.*
/recovery/prop.default
/default.prop
/prop.default

If we mod the recovery of our target firmware by removing all import functions from prop.default and apply the adb fixes from post 1 we should in theory be able to fake our device identifiers for the ota.zip.
In order to boot the target firmware recovery we also need to flash boot, vendor_boot, vbmeta and dtbo from the target firmware.
Then we adb push ota.zip to data, flash misc-data and reboot to flash the ota update.

This is just a theory at the moment, if you feel adventurous you can try it and report back.
 
Last edited:

edcsxz

New member
Jul 6, 2017
3
0
Sir, I try your way to flash x80pro, cannot boot in system...

CHECK SYSTEM in recovery show system check fail....

I'm sure the super_5 is system because it is the largest.

Use 7z check it, have system folder inside.
 

DJorgio

Senior Member
Mar 22, 2008
154
20
Sydney, Australia
Vivo X70 Pro+
i have the x70pro+ unlocked bootloader, backup the partition and modify recovery, the next step is about the ota.zip and flashing. Can you give me more details about those steps? Killuminati91. Many tks sir

This is as far as I got to on my x70pp, not sure how to make a split rom but assume it needs to be from the funtouch rom (but not the newest release)?
 

tohanov

Member
Jun 13, 2022
18
0
THIS WILL WIPE YOUR DATA!
YOU MIGHT BRICK YOUR PHONE!
MAKE. A. BACKUP!!!

THIS IS A GENERAL GUIDE BASED ON THE x70 PRO PLUS AND NEEDS A LOT OF MODIFICATIONS FOR YOUR DEVICE.



Requirements:
- Unlocked Bootloader: Guide I, Guide II
- Root to extract boot.img and recovery.img (and make a backup)
- Android Image Kitchen (AIK)
- QFIL / Split image of your target firmware
- OTA Firmware with a higher version than your Split Image

I. Root your phone

You should backup all partitions either through magisk (if you have the current running firmware as ota.zip) or LineageOS GSI with me.phh.superuser.apk

The backup commands for the Vivo x70 Pro+ and a general guide can be found in the linked post.
If you have another device use adb to find your blocks and their proper partition names and modify the "script" from my post.

Code:
adb shell
ls -al /dev/block/by-name/

Do NOT backup userdata and sda.

II. Modify recovery

In order to enable adb in recovery we have to unpack the recovery.img and change some prop.default values. (You got this recovery.img either by backing up your partitions or having the correct ota.zip)
THIS post has a great guideline, you can skip everything TWRP related.

In Short:
1. Use AIK to unpack recovery.img
2. Delete the /split_img/*ramdisk*.zip ONLY
3. Open /ramdisk/default.prop or /ramdisk/prop.default or similar with a text editor
4. Modify according to step 22 in the linked post (care vivo uses adb.secure=1 two times, edit both properties)
5. Save, repack and flash the new recovery.img

III. Folder Structure

1. Create a new folder "transform" on your system and extract your SPLIT firmware files into a subfolder called "split". -> /transform/split/
First off identify your super_x.img files and their corresponding dynamic partitions. In general "system" should be the largest, "vendor" the second largest and odm / oem should be smaller.
You can open them with 7zip and identify their contents. Take note.

For the X70 Pro+: super_2.img = system | super_3.img = vendor | super_4.img = odm

2. Open these files in your ota.zip: /dynamic_partitions_op_list and /oem/dynamic_partitions_op_list.
Take note of the partition sizes for system, vendor, odm and vgc (ex. # Grow partition system from 0 to 5373415424).

3. Rename your OTA file to ota.zip and put it into /transform/ota/

IV. Modified Images

1. Download the attached misc-data.img and place it in /transform/modded/ (Thanks to @Pervokur).
If you flash this it tells recovery to look for "ota.zip" in /data/ on the next boot and install it if its available.
You can edit the path via hex editor but its fine for this guide. Dont flash it yet.

2. Patch the recovery.img from /transform/split/ according to step II and place it in /transform/modded/recovery-adb.img

V. Modify the flash script

1. Download my reference script and place it as info.txt into /transform/. Modify this script according to the files from your SPLIT firmware and your partition backups. Vivo phones with different hardware versions might be way more complicated. Analyze everything and take your time - you dont want to brick your device.

PAY ATTENTION: In the best case and at the very least you will have to modify vbmeta_oem, vbmeta_vgc, system, vendor, odm, oem and vgc to match your files.

DO NOT flash your fsg partition. This one basically contains your modem. If you do flash it or if you dont have signal after an ota update scroll down.

2. Go to "::RECREATE DYNAMIC PARTITIONS" and modify the partition sizes according to the values of III.2.

Code:
::OPEN A SHELL IN THIS FOLDER
::REBOOT YOUR PHONE INTO FASTBOOT (REBOOT AND HOLD POWER + VOL UP)

fastboot reboot bootloader
fastboot flash abl split/abl.elf
fastboot flash aop split/aop.mbn
fastboot flash boot split/boot.img
fastboot flash bluetooth split/BTFM.bin
fastboot flash cpucp split/cpucp.elf
fastboot flash devcfg split/devcfg.mbn
fastboot flash apdp split/dp_AP_signed_minidump.mbn
fastboot flash dsp split/dspso.bin
fastboot flash dtbo split/dtbo.img
fastboot flash factory split/factory.img
fastboot flash featenabler split/featenabler.mbn
fastboot flash storage split/firmware.bin
fastboot flash hyp split/hypvm.mbn
fastboot flash keymaster split/km41.mbn
fastboot flash logfs split/logfs_ufs_8mb.bin
fastboot flash mdcompress split/mdcompress.mbn
fastboot flash metadata split/metadata.img
::fastboot flash modemst1 split/modemst.mbn
::fastboot flash modemst2 split/modemst.mbn
fastboot flash multiimgoem split/multi_image.mbn
::fastboot flash fsg split/PD2145F_EX_fs_image.tar.gz.mbn.img
fastboot flash persist split/persist.img
fastboot flash qupfw split/qupv3fw.elf
fastboot flash recovery modded/recovery-adb.img
fastboot flash rtice split/rtice.mbn
fastboot flash secdata split/sec.elf
fastboot flash shrm split/shrm.elf
fastboot flash spunvm split/spunvm.bin
fastboot flash storsec split/storsec.mbn
fastboot flash tz split/tz.mbn
fastboot flash uefisecapp split/uefi_sec.mbn
fastboot flash vbmeta split/vbmeta.img
fastboot flash vbmeta_oem split/vbmeta_oem_PD2145F_EX_IN_NULL_NULL.img
fastboot flash vbmeta_system split/vbmeta_system.img
fastboot flash vbmeta_vgc split/vbmeta_vgc_NULL_PD2145F_EXMA.img
fastboot flash vendor_boot split/vendor_boot.img
fastboot flash vm-bootsys split/vm-bootsys.img
fastboot flash vgc split/vgc.img
fastboot flash xbl_config split/xbl_config.elf
fastboot flash xbl split/xbl.elf
fastboot flash xbl_configbak split/xbl_config.elf
fastboot flash xblbak split/xbl.elf
fastboot flash modem split/NON-HLOS.bin

::RECREATE DYNAMIC PARTITIONS
fastboot reboot fastboot
fastboot delete-logical-partition system
fastboot delete-logical-partition vendor
fastboot delete-logical-partition odm
fastboot delete-logical-partition vgc
fastboot create-logical-partition system 5373415424
fastboot create-logical-partition vendor 3128008704
fastboot create-logical-partition odm 1392640
fastboot create-logical-partition vgc 348160

::FLASH DYNAMIC PARTITIONS
::VGC WILL OUTPUT AN ERROR - DONT MIND
fastboot reboot fastboot
fastboot erase system
fastboot erase vendor
fastboot erase odm
fastboot erase oem
fastboot erase vgc
fastboot flash system split/super_2.img
fastboot flash vendor split/super_3.img
fastboot flash odm split/super_4.img
fastboot flash oem split/oem_PD2145F_EX_IN_NULL_NULL.img
fastboot flash vgc split/vgc_NULL_PD2145F_EXMA.img

fastboot reboot recovery

::IF IT DOESNT REBOOT JUST USE THE BUTTON ON YOUR PHONE
::NOW GO TO WIPE AND WIPE DATA & CACHE 2X
::CHECK SYSTEM -> RECOVERY SHOULD FAIL, EVERYTHING ELSE PASS

adb push ota/ota.zip /data
adb reboot bootloader

fastboot flash misc modded/misc-data.img
fastboot reboot

::LET THE PHONE START ONCE (ABOUT 1-5MIN)
::YOU ARE NOW ON FUNTOUCH

--------------------------------------------------------------------------

::YOU CAN BACKUP OTA PACKAGES FROM HERE WHEN THEY ARE DOWNLOADED (ROOT ONLY)
/data/vivo-updater/com.bbk.updater/OTAPackage/

::UPDATE TO THE LATEST VERSION VIA OTA ONLY AFTER YOU BACKUP THE OTA
::YOU MUST FLASH YOUR ORIGINAL BOOT.IMG BEFORE UPDATING

VI. Run the commands according to your modified flash script.

VII. Problems

1. Brick?
Flash all partitions from your backup

2. No signal?
Code:
fastboot erase modemst1
fastboot erase modemst2
fastboot flash fsg your-original-backup-fsg.img

3. DM-Verity Warning?
Code:
adb shell service call package 134 s16 com.vivo.daemonService i32 0 i32 0
Might be different for you but try it.

4. Fingerprint not working?
Try this post.

Huge thanks to @Pervokur for finding the bootloader exploit, guiding me through this and providing help all the way!

Hi. I'm very much a noob in dealing with flashing and those stuff. Is there an easier way to do this? Some way that will be idiot-proof?
I currently have a x70pro+ with originOs Ocean and an unlocked bootloader (I think?), do I still need to root to do this process?
Thank you for sharing
 

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    THIS WILL WIPE YOUR DATA!
    YOU MIGHT BRICK YOUR PHONE!
    MAKE. A. BACKUP!!!

    THIS IS A GENERAL GUIDE BASED ON THE x70 PRO PLUS AND NEEDS A LOT OF MODIFICATIONS FOR YOUR DEVICE.



    Requirements:
    - Unlocked Bootloader: Guide I, Guide II
    - Root to extract boot.img and recovery.img (and make a backup)
    - Android Image Kitchen (AIK)
    - QFIL / Split image of your target firmware
    - OTA Firmware with a higher version than your Split Image

    I. Root your phone

    You should backup all partitions either through magisk (if you have the current running firmware as ota.zip) or LineageOS GSI with me.phh.superuser.apk

    The backup commands for the Vivo x70 Pro+ and a general guide can be found in the linked post.
    If you have another device use adb to find your blocks and their proper partition names and modify the "script" from my post.

    Code:
    adb shell
    ls -al /dev/block/by-name/

    Do NOT backup userdata and sda.

    II. Modify recovery

    In order to enable adb in recovery we have to unpack the recovery.img and change some prop.default values. (You got this recovery.img either by backing up your partitions or having the correct ota.zip)
    THIS post has a great guideline, you can skip everything TWRP related.

    In Short:
    1. Use AIK to unpack recovery.img
    2. Delete the /split_img/*ramdisk*.zip ONLY
    3. Open /ramdisk/default.prop or /ramdisk/prop.default or similar with a text editor
    4. Modify according to step 22 in the linked post (care vivo uses adb.secure=1 two times, edit both properties)
    5. Save, repack and flash the new recovery.img

    III. Folder Structure

    1. Create a new folder "transform" on your system and extract your SPLIT firmware files into a subfolder called "split". -> /transform/split/
    First off identify your super_x.img files and their corresponding dynamic partitions. In general "system" should be the largest, "vendor" the second largest and odm / oem should be smaller.
    You can open them with 7zip and identify their contents. Take note.

    For the X70 Pro+: super_2.img = system | super_3.img = vendor | super_4.img = odm

    2. Open these files in your ota.zip: /dynamic_partitions_op_list and /oem/dynamic_partitions_op_list.
    Take note of the partition sizes for system, vendor, odm and vgc (ex. # Grow partition system from 0 to 5373415424).

    3. Rename your OTA file to ota.zip and put it into /transform/ota/

    IV. Modified Images

    1. Download the attached misc-data.img and place it in /transform/modded/ (Thanks to @Pervokur).
    If you flash this it tells recovery to look for "ota.zip" in /data/ on the next boot and install it if its available.
    You can edit the path via hex editor but its fine for this guide. Dont flash it yet.

    2. Patch the recovery.img from /transform/split/ according to step II and place it in /transform/modded/recovery-adb.img

    V. Modify the flash script

    1. Download my reference script and place it as info.txt into /transform/. Modify this script according to the files from your SPLIT firmware and your partition backups. Vivo phones with different hardware versions might be way more complicated. Analyze everything and take your time - you dont want to brick your device.

    PAY ATTENTION: In the best case and at the very least you will have to modify vbmeta_oem, vbmeta_vgc, system, vendor, odm, oem and vgc to match your files.

    DO NOT flash your fsg partition. This one basically contains your modem. If you do flash it or if you dont have signal after an ota update scroll down.

    2. Go to "::RECREATE DYNAMIC PARTITIONS" and modify the partition sizes according to the values of III.2.

    Code:
    ::OPEN A SHELL IN THIS FOLDER
    ::REBOOT YOUR PHONE INTO FASTBOOT (REBOOT AND HOLD POWER + VOL UP)
    
    fastboot reboot bootloader
    fastboot flash abl split/abl.elf
    fastboot flash aop split/aop.mbn
    fastboot flash boot split/boot.img
    fastboot flash bluetooth split/BTFM.bin
    fastboot flash cpucp split/cpucp.elf
    fastboot flash devcfg split/devcfg.mbn
    fastboot flash apdp split/dp_AP_signed_minidump.mbn
    fastboot flash dsp split/dspso.bin
    fastboot flash dtbo split/dtbo.img
    fastboot flash factory split/factory.img
    fastboot flash featenabler split/featenabler.mbn
    fastboot flash storage split/firmware.bin
    fastboot flash hyp split/hypvm.mbn
    fastboot flash keymaster split/km41.mbn
    fastboot flash logfs split/logfs_ufs_8mb.bin
    fastboot flash mdcompress split/mdcompress.mbn
    fastboot flash metadata split/metadata.img
    ::fastboot flash modemst1 split/modemst.mbn
    ::fastboot flash modemst2 split/modemst.mbn
    fastboot flash multiimgoem split/multi_image.mbn
    ::fastboot flash fsg split/PD2145F_EX_fs_image.tar.gz.mbn.img
    fastboot flash persist split/persist.img
    fastboot flash qupfw split/qupv3fw.elf
    fastboot flash recovery modded/recovery-adb.img
    fastboot flash rtice split/rtice.mbn
    fastboot flash secdata split/sec.elf
    fastboot flash shrm split/shrm.elf
    fastboot flash spunvm split/spunvm.bin
    fastboot flash storsec split/storsec.mbn
    fastboot flash tz split/tz.mbn
    fastboot flash uefisecapp split/uefi_sec.mbn
    fastboot flash vbmeta split/vbmeta.img
    fastboot flash vbmeta_oem split/vbmeta_oem_PD2145F_EX_IN_NULL_NULL.img
    fastboot flash vbmeta_system split/vbmeta_system.img
    fastboot flash vbmeta_vgc split/vbmeta_vgc_NULL_PD2145F_EXMA.img
    fastboot flash vendor_boot split/vendor_boot.img
    fastboot flash vm-bootsys split/vm-bootsys.img
    fastboot flash vgc split/vgc.img
    fastboot flash xbl_config split/xbl_config.elf
    fastboot flash xbl split/xbl.elf
    fastboot flash xbl_configbak split/xbl_config.elf
    fastboot flash xblbak split/xbl.elf
    fastboot flash modem split/NON-HLOS.bin
    
    ::RECREATE DYNAMIC PARTITIONS
    fastboot reboot fastboot
    fastboot delete-logical-partition system
    fastboot delete-logical-partition vendor
    fastboot delete-logical-partition odm
    fastboot delete-logical-partition vgc
    fastboot create-logical-partition system 5373415424
    fastboot create-logical-partition vendor 3128008704
    fastboot create-logical-partition odm 1392640
    fastboot create-logical-partition vgc 348160
    
    ::FLASH DYNAMIC PARTITIONS
    ::VGC WILL OUTPUT AN ERROR - DONT MIND
    fastboot reboot fastboot
    fastboot erase system
    fastboot erase vendor
    fastboot erase odm
    fastboot erase oem
    fastboot erase vgc
    fastboot flash system split/super_2.img
    fastboot flash vendor split/super_3.img
    fastboot flash odm split/super_4.img
    fastboot flash oem split/oem_PD2145F_EX_IN_NULL_NULL.img
    fastboot flash vgc split/vgc_NULL_PD2145F_EXMA.img
    
    fastboot reboot recovery
    
    ::IF IT DOESNT REBOOT JUST USE THE BUTTON ON YOUR PHONE
    ::NOW GO TO WIPE AND WIPE DATA & CACHE 2X
    ::CHECK SYSTEM -> RECOVERY SHOULD FAIL, EVERYTHING ELSE PASS
    
    adb push ota/ota.zip /data
    adb reboot bootloader
    
    fastboot flash misc modded/misc-data.img
    fastboot reboot
    
    ::LET THE PHONE START ONCE (ABOUT 1-5MIN)
    ::YOU ARE NOW ON FUNTOUCH
    
    --------------------------------------------------------------------------
    
    ::YOU CAN BACKUP OTA PACKAGES FROM HERE WHEN THEY ARE DOWNLOADED (ROOT ONLY)
    /data/vivo-updater/com.bbk.updater/OTAPackage/
    
    ::UPDATE TO THE LATEST VERSION VIA OTA ONLY AFTER YOU BACKUP THE OTA
    ::YOU MUST FLASH YOUR ORIGINAL BOOT.IMG BEFORE UPDATING

    VI. Run the commands according to your modified flash script.

    VII. Problems

    1. Brick?
    Flash all partitions from your backup

    2. No signal?
    Code:
    fastboot erase modemst1
    fastboot erase modemst2
    fastboot flash fsg your-original-backup-fsg.img

    3. DM-Verity Warning?
    Code:
    adb shell service call package 134 s16 com.vivo.daemonService i32 0 i32 0
    Might be different for you but try it.

    4. Fingerprint not working?
    Try this post.

    Huge thanks to @Pervokur for finding the bootloader exploit, guiding me through this and providing help all the way!