[PATCHER][APP][OFFICIAL] Dualboot/Multiboot For OnePlus 5 (cheeseburger)

Status
Not open for further replies.
Search This thread

yshalsager

Recognized Developer
http%3A%2F%2Fs9.postimg.org%2Fqeunc9gkf%2Fic_launcher_web.png
I am proud to present first Dualboot project For Oneplus 5. This will allow any number of ROMs to be installed at the same time. It works by patching the secondary ROM's installation scripts and boot image to load the ROM files from an alternate location (/system/multiboot, /cache/multiboot, and /data/multiboot). Because of the way this is implemented, no changes to the primary ROM are necessary :D

What is DualBootPatcher?
DualBootPatcher is an open-source app that allows multiple ROMs to be installed on a single Android device. It does its best to work with existing code and does not require explicit support from ROMs. There are currently 200+ supported devices and their variations.

Information:
I have managed to support for Oneplus 5 to the DualBootPatcher App, I am not the creator, just the supporter.
It's awesome and useful for testing out roms or if you want, switching ROMS.

Disclaimer:
Code:
Your warranty is now void.
I am not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed. Please do some research if you have any concerns about features included in this ROM before flashing it! YOU are choosing to make these modifications, and if you point the finger at me for messing up your device, I will laugh at you. Hard. A lot.

Requirements:
1. A Custom Recovery (TWRP)
2. A ROM :D
3. Dual Boot Patcher app and the DualBootUtilities.zip from the download section below.

What does the app do ?:
It patches...
  • Custom kernels for dual boot support
  • ROMs so that they can be installed as secondary
  • Google Apps packages for AOSP-based ROMs
  • SuperSU so that it can be used in the secondary ROM

What's supported ?
Except Toaster and Alarm clocks pretty much everything is supported.

How to use the App?
- Download, install and open the app.
- Swipe to the right to open the menu. Click "ROMS". Now if this is the first time you use it, it will ask you if you want to set kernel. Do so!
- After it has finished go to ROM Settings (primary ROM 3 dot menu) and select Update Ramdisk. It will update it and will ask you to reboot. Press Reboot Now, or Reboot later.
- Now Download any ROM you like and open the app again and open the menu and open Patch Zip File from the menu. Ensure that your Device is set to (OnePlus5) and under Partition configuration select secondary (will install 2nd ROM in /system) or data slot.
- Click continue and select where to save the patched file.
- You should see the file is being put in "Queue". Just click the confirm button to the upper right.
Note: If you want to go back, just swipe the ROM in queue to right and start over.
- The app will patch the zip. When done, go back to "ROMs".
- Click "Flash zip files" (the big pink button on the lower right). Click the pink plus button to add your previously patched zip file.
- Locate the file you have patched in step 7. Unless you have changed the name there, it should be something like ROM_name_partition_config_ID.zip (like RR-N-v5.8.3-20170707-cheeseburger-Unofficial_dual.zip).
- Click on that file and choose "Keep location". Now confirm the flash with the button on the upper right side.
Note: You can also install the patched zip files in recovery.
- It will now open the terminal and begin flashing the file. This requires some patience. After it has flashed the file you'll see success message in green.
- Now click back and you should see your newly installed ROM along with the Primary ROM.
Note: You can find more options by clicking on the three buttons on each ROM.
- Now reboot and wait till finishing 2nd ROM first boot. install DualBootPatcher apk so you can easily switch ROMs, there is another way to change ROMs: flash DualBootUtilities.zip and switch ROM manually.
Note: Using Bootui:
- Open app then select settings and press install (update) bootui. then Swipe to the right to open the menu. Click "ROMS" again and open secondary ROM Settings) and select Update Ramdisk, Now you can change ROMs simply using boot ui (something like grub bootloader but it works like twrp)

Partitions Configurations:
The patcher offers several locations for installing ROMs:
  • Primary: This is normally used for installing a zip to the primary ROM. It is not required, but is strongly recommended because it has code to prevent the zip from inadvertently affecting other ROMs.
  • Dual: Dual/Secondary is the first multiboot installation location. It installs to the system partition. This is a good spot for installing a second ROM because it doesn't take any space away from the internal storage.
  • Multi-slots: There are 3 multislots: multi-slot-1, multi-slot-2, multi-slot-3. These install to the cache partition. This is specifically for devices, like the Galaxy S4, that have a massive cache partition.
  • Data-slots: There can be an unlimited number of data slots. These install to the data partition and eat up space on the internal storage. This is useful for devices where the system partition is nearly full and the cache partition is tiny. These slots are named "data-slot-[id]", where "id" is something you provide in the app.
  • Extsd-slots: There can be an unlimited number of extsd slots. These install to the external SD card, which is useful as it keeps the ROMs off of the internal storage. Note that the ROM's data files are still stored on the data partition.

How to boot to another ROM ?
This is simple ... There is no reboot to primary, secondary or whatever. So all you have to do is:
1) Go to ROMs section of the App.
2) Click on the ROM you want to boot to. You should see "Switching ROM" message. After few seconds, you should see a report message saying that "ROM successfully switched".
3) Now just do a normal reboot of your device. See the magic! It should boot to the ROM you have switched on step 2.
Note: You can find more options by selecting the three buttons on each ROMs (like creating reboot widgets for directly rebooting to specific rom).
You also need to install the App to all of the ROMs you install. Otherwise, you want be able to boot to other ROMs!

Apps and Data sharing:
DualBootPatcher very recently got support for sharing apps and their data across ROMs. Maybe sharing is somewhat of a misleading term. The feature actually makes Android load the shared apps and data from a centralized location, /data/multiboot/_appsharing. So you're not sharing apps from one ROM to another per se. The ROMs are just loading the apps from one shared location. Let me make this clearer with an analogy.

Think of the people in a company office as ROMs. You want to share with your coworkers some documents (apps). Instead of telling them to come over to your desk to see those documents (sharing apps from one ROM to another), everyone goes to the conference room to look at the documents together (loading apps from a shared location). That's how app and data sharing is implemented.
To use app sharing, follow these steps in every ROM that you want to use app sharing: (doesn't work with JB ROMs)
  • Install the app you want to share
  • Open DualBootPatcher and go to "App Sharing" in the navigation drawer
  • Enable individual app sharing
  • Tap "Manage shared applications" and enable APK/data sharing for the app
  • Reboot
When you uninstall an app that's shared, it simply become unshared for the current ROM. That way, other ROMs are not affected. To continue the analogy above, if you quit your job, you won't shred the documents that everybody else was looking at.

If you unshare an app's data, it will go back to using the data it had before it was shared. In other words, you leave the conference room and go back to work on your own documents at your desk.

Other How to ?
Wipe /cache, /data, /system, or dalvik-cache?
The easiest way is to do it from the app while booted in another ROM. Just go to "Roms" in the navigation drawer, tap the 3 dots options menu for the ROM you want to wipe, and tap "Wipe ROM".
Update the primary ROM?
Patch the zip for primary and flash it. The "primary" installation target is designed so that other ROMs won't be affected when you want to flash something for the primary ROM.
Update a non-primary ROM?
Patch and flash the zip exactly like how you did it the first time.
Flash a mod or custom kernel for the primary ROM?
Patch it for primary before flashing. If the zip does not wipe /cache, it is also safe to flash it directly.
Flash a mod or custom kernel for a non-primary ROM?
Just patch and flash it :)

Downloads:
Cheers ! we are officially supported :D

Note: You can download any version since "9.2.0.r221.g4661ff8e"

Screenshots:
No Screenshots available i need some :p

Sources:
DualBootPatcher: https://github.com/chenxiaolong/DualBootPatcher
DualBootUtilities: https://github.com/chenxiaolong/DualBootZips
Build instructions: https://github.com/chenxiaolong/DualBootPatcher/tree/master/docs
One Plus 5 Support: https://github.com/chenxiaolong/DualBootPatcher/pull/642

Known issues:
- You tell me :D !

Credits:
@chenxiaolong for the awesome DualBootPatcher.
@androidlover5842 for helping me always

XDA:DevDB Information
[PATCHER][APP][OFFICIAL] Dualboot/Multiboot For OnePlus 5 (cheeseburger), Tool/Utility for the OnePlus 5

Contributors
yshalsager, androidlover5842, Ahmed Hady, chenxiaolong
Source Code: https://github.com/chenxiaolong/DualBootPatcher


Version Information
Status: Stable
Current Stable Version: 9.2.0.r221.g4661ff8e
Stable Release Date: 2017-07-08

Created 2017-07-07
Last Updated 2017-07-08
 

yshalsager

Recognized Developer
Notes

1- If flashing Custom ROM Fail (like LOS 14.1):
you have to edit "updater-script" and remove assert lines like:
Code:
assert(getprop("ro.product.device") == "cheeseburger" || getprop("ro.build.product") == "cheeseburger" || abort("E3004: This package is for device: cheeseburger; this device is " + getprop("ro.product.device") + "."););
ifelse(is_mounted("/system"), unmount("/system"));
2- This won't work on stock OOS because of encryption.
3- Here's perfect 100% Working guide by @prile97 Here
 
Last edited:

fmotta

Senior Member
Jan 15, 2004
299
55
Stuck in Boot screen after updating ramdisk and rebooting.
Oos 4.5.5 and latest magisk 13!

Inviato dal mio ONEPLUS A5000 utilizzando Tapatalk
 

ab7casper

Senior Member
I'll be getting my OnePlus 5 most likely monday by the FedEx date. I'm so glad to see this available for this device. I had some issues with my Nexus 6P and running this. I love to flash different roms to see all the different options and this will be fantastic.
 
So the app was randomly removed from the magiskSU root list and the app isn't requesting root access back at all. I cleared data, cache and uninstalled but it still won't request root access.

Flashing the patched ZIP through TWRP installs it but it won't boot the system, stuck on OnePlus logo power by Android.

Only fix is to flash the utlities ZIP and choose to boot from primary ROM again, I tried stock OOS, custom OOS with AROMA and also RR as secondary ROM but none worked.
 

yshalsager

Recognized Developer
Stuck in Boot screen after updating ramdisk and rebooting.
Oos 4.5.5 and latest magisk 13!

Inviato dal mio ONEPLUS A5000 utilizzando Tapatalk


So the app was randomly removed from the magiskSU root list and the app isn't requesting root access back at all. I cleared data, cache and uninstalled but it still won't request root access.

Flashing the patched ZIP through TWRP installs it but it won't boot the system, stuck on OnePlus logo power by Android.

Only fix is to flash the utlities ZIP and choose to boot from primary ROM again, I tried stock OOS, custom OOS with AROMA and also RR as secondary ROM but none worked.
I need some logs. Please flash this and attach the log
https://dbp.noobdev.io/misc/getlogs/GetLogs-20161128-1.zip
 

fmotta

Senior Member
Jan 15, 2004
299
55
Are you guys encrypted or decrypted? I had the stuck on boot screen after updating ramdisk while I was encrypted.
But I don't want to try again now that I am decrypted :crying: I
 

fmotta

Senior Member
Jan 15, 2004
299
55
Same as before. 5 fast vibrations and reboot to recovery.
 

Attachments

  • 20170708.080808.tar.gz
    557.7 KB · Views: 10

GMX1PT

Member
Feb 14, 2015
14
5
Good job mate !

I updated the ramdisk thing and after i managed to get out of the bootloop now i'm unable to use wifi and fingerprint sensor

Don't try this
 

jayfallen

Senior Member
Feb 23, 2010
305
85
wow! this is amazing work!
it's like what we used to do with multi-Rom @ Nexus devices... Bravo!
 
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 34
    http%3A%2F%2Fs9.postimg.org%2Fqeunc9gkf%2Fic_launcher_web.png
    I am proud to present first Dualboot project For Oneplus 5. This will allow any number of ROMs to be installed at the same time. It works by patching the secondary ROM's installation scripts and boot image to load the ROM files from an alternate location (/system/multiboot, /cache/multiboot, and /data/multiboot). Because of the way this is implemented, no changes to the primary ROM are necessary :D

    What is DualBootPatcher?
    DualBootPatcher is an open-source app that allows multiple ROMs to be installed on a single Android device. It does its best to work with existing code and does not require explicit support from ROMs. There are currently 200+ supported devices and their variations.

    Information:
    I have managed to support for Oneplus 5 to the DualBootPatcher App, I am not the creator, just the supporter.
    It's awesome and useful for testing out roms or if you want, switching ROMS.

    Disclaimer:
    Code:
    Your warranty is now void.
    I am not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed. Please do some research if you have any concerns about features included in this ROM before flashing it! YOU are choosing to make these modifications, and if you point the finger at me for messing up your device, I will laugh at you. Hard. A lot.

    Requirements:
    1. A Custom Recovery (TWRP)
    2. A ROM :D
    3. Dual Boot Patcher app and the DualBootUtilities.zip from the download section below.

    What does the app do ?:
    It patches...
    • Custom kernels for dual boot support
    • ROMs so that they can be installed as secondary
    • Google Apps packages for AOSP-based ROMs
    • SuperSU so that it can be used in the secondary ROM

    What's supported ?
    Except Toaster and Alarm clocks pretty much everything is supported.

    How to use the App?
    - Download, install and open the app.
    - Swipe to the right to open the menu. Click "ROMS". Now if this is the first time you use it, it will ask you if you want to set kernel. Do so!
    - After it has finished go to ROM Settings (primary ROM 3 dot menu) and select Update Ramdisk. It will update it and will ask you to reboot. Press Reboot Now, or Reboot later.
    - Now Download any ROM you like and open the app again and open the menu and open Patch Zip File from the menu. Ensure that your Device is set to (OnePlus5) and under Partition configuration select secondary (will install 2nd ROM in /system) or data slot.
    - Click continue and select where to save the patched file.
    - You should see the file is being put in "Queue". Just click the confirm button to the upper right.
    Note: If you want to go back, just swipe the ROM in queue to right and start over.
    - The app will patch the zip. When done, go back to "ROMs".
    - Click "Flash zip files" (the big pink button on the lower right). Click the pink plus button to add your previously patched zip file.
    - Locate the file you have patched in step 7. Unless you have changed the name there, it should be something like ROM_name_partition_config_ID.zip (like RR-N-v5.8.3-20170707-cheeseburger-Unofficial_dual.zip).
    - Click on that file and choose "Keep location". Now confirm the flash with the button on the upper right side.
    Note: You can also install the patched zip files in recovery.
    - It will now open the terminal and begin flashing the file. This requires some patience. After it has flashed the file you'll see success message in green.
    - Now click back and you should see your newly installed ROM along with the Primary ROM.
    Note: You can find more options by clicking on the three buttons on each ROM.
    - Now reboot and wait till finishing 2nd ROM first boot. install DualBootPatcher apk so you can easily switch ROMs, there is another way to change ROMs: flash DualBootUtilities.zip and switch ROM manually.
    Note: Using Bootui:
    - Open app then select settings and press install (update) bootui. then Swipe to the right to open the menu. Click "ROMS" again and open secondary ROM Settings) and select Update Ramdisk, Now you can change ROMs simply using boot ui (something like grub bootloader but it works like twrp)

    Partitions Configurations:
    The patcher offers several locations for installing ROMs:
    • Primary: This is normally used for installing a zip to the primary ROM. It is not required, but is strongly recommended because it has code to prevent the zip from inadvertently affecting other ROMs.
    • Dual: Dual/Secondary is the first multiboot installation location. It installs to the system partition. This is a good spot for installing a second ROM because it doesn't take any space away from the internal storage.
    • Multi-slots: There are 3 multislots: multi-slot-1, multi-slot-2, multi-slot-3. These install to the cache partition. This is specifically for devices, like the Galaxy S4, that have a massive cache partition.
    • Data-slots: There can be an unlimited number of data slots. These install to the data partition and eat up space on the internal storage. This is useful for devices where the system partition is nearly full and the cache partition is tiny. These slots are named "data-slot-[id]", where "id" is something you provide in the app.
    • Extsd-slots: There can be an unlimited number of extsd slots. These install to the external SD card, which is useful as it keeps the ROMs off of the internal storage. Note that the ROM's data files are still stored on the data partition.

    How to boot to another ROM ?
    This is simple ... There is no reboot to primary, secondary or whatever. So all you have to do is:
    1) Go to ROMs section of the App.
    2) Click on the ROM you want to boot to. You should see "Switching ROM" message. After few seconds, you should see a report message saying that "ROM successfully switched".
    3) Now just do a normal reboot of your device. See the magic! It should boot to the ROM you have switched on step 2.
    Note: You can find more options by selecting the three buttons on each ROMs (like creating reboot widgets for directly rebooting to specific rom).
    You also need to install the App to all of the ROMs you install. Otherwise, you want be able to boot to other ROMs!

    Apps and Data sharing:
    DualBootPatcher very recently got support for sharing apps and their data across ROMs. Maybe sharing is somewhat of a misleading term. The feature actually makes Android load the shared apps and data from a centralized location, /data/multiboot/_appsharing. So you're not sharing apps from one ROM to another per se. The ROMs are just loading the apps from one shared location. Let me make this clearer with an analogy.

    Think of the people in a company office as ROMs. You want to share with your coworkers some documents (apps). Instead of telling them to come over to your desk to see those documents (sharing apps from one ROM to another), everyone goes to the conference room to look at the documents together (loading apps from a shared location). That's how app and data sharing is implemented.
    To use app sharing, follow these steps in every ROM that you want to use app sharing: (doesn't work with JB ROMs)
    • Install the app you want to share
    • Open DualBootPatcher and go to "App Sharing" in the navigation drawer
    • Enable individual app sharing
    • Tap "Manage shared applications" and enable APK/data sharing for the app
    • Reboot
    When you uninstall an app that's shared, it simply become unshared for the current ROM. That way, other ROMs are not affected. To continue the analogy above, if you quit your job, you won't shred the documents that everybody else was looking at.

    If you unshare an app's data, it will go back to using the data it had before it was shared. In other words, you leave the conference room and go back to work on your own documents at your desk.

    Other How to ?
    Wipe /cache, /data, /system, or dalvik-cache?
    The easiest way is to do it from the app while booted in another ROM. Just go to "Roms" in the navigation drawer, tap the 3 dots options menu for the ROM you want to wipe, and tap "Wipe ROM".
    Update the primary ROM?
    Patch the zip for primary and flash it. The "primary" installation target is designed so that other ROMs won't be affected when you want to flash something for the primary ROM.
    Update a non-primary ROM?
    Patch and flash the zip exactly like how you did it the first time.
    Flash a mod or custom kernel for the primary ROM?
    Patch it for primary before flashing. If the zip does not wipe /cache, it is also safe to flash it directly.
    Flash a mod or custom kernel for a non-primary ROM?
    Just patch and flash it :)

    Downloads:
    Cheers ! we are officially supported :D

    Note: You can download any version since "9.2.0.r221.g4661ff8e"

    Screenshots:
    No Screenshots available i need some :p

    Sources:
    DualBootPatcher: https://github.com/chenxiaolong/DualBootPatcher
    DualBootUtilities: https://github.com/chenxiaolong/DualBootZips
    Build instructions: https://github.com/chenxiaolong/DualBootPatcher/tree/master/docs
    One Plus 5 Support: https://github.com/chenxiaolong/DualBootPatcher/pull/642

    Known issues:
    - You tell me :D !

    Credits:
    @chenxiaolong for the awesome DualBootPatcher.
    @androidlover5842 for helping me always

    XDA:DevDB Information
    [PATCHER][APP][OFFICIAL] Dualboot/Multiboot For OnePlus 5 (cheeseburger), Tool/Utility for the OnePlus 5

    Contributors
    yshalsager, androidlover5842, Ahmed Hady, chenxiaolong
    Source Code: https://github.com/chenxiaolong/DualBootPatcher


    Version Information
    Status: Stable
    Current Stable Version: 9.2.0.r221.g4661ff8e
    Stable Release Date: 2017-07-08

    Created 2017-07-07
    Last Updated 2017-07-08
    11
    *Second draft, better but not there yet son*

    Well ain't it exiting folks? My first post on XDA after having lurked in the shadows forever, a pitiful creature not used to the light shone bright.

    Anyways the reason why these roms steadfastly refuse to boot when used with Dual Boot Patcher is due to a major change Oreo introduced regarding the way partitions are mounted by init.

    Indeed some vital partitions like system , vendor or odm can be mounted early by init.

    Instead of parsing a classic file based fstab, init can oarse a device tree backed fstab entry to mount these partitions early

    If y'all want more details just have a read at that ****:
    ****s://source.android.com/devices/architecture/kernel/modular-kernels#mounting-partitions-early-first-stage-mount

    Anyways to get them pesky Oreo ROMs to dual boot the device tree needs to be cleansed of these entries.

    Long story short on android device trees are either partition backed or basically appended to the boot.img.

    Turns out that magiskboot can extract this all important device tree binary or btb file.

    The relevant command would be :
    Code:
    /data/magisk/magiskboot --extract boot.img
    You then end up with three files: kernel, ramdisk.cpio and dtb.

    So now you need to patch out them entries from the dtb files one way or another, by force if necessary.

    The way I went about it is that I installed the device-tree-compiler package on GNURoot Debian ( look it up on Google Play ).

    Then to decompile your dtb file you'd run this baby:
    Code:
    dtc -O dts -I dtb -o dt.txt dtb

    Open the thus produced dt.txt with a text editor and find an entry looking like this:
    Code:
    {
      firmware {
       android {
        compatible = "android,firmware";
         fstab {
           compatible = "android,fstab";
             system {
               compatible = "android,system";
               dev = "/dev/block/platform/soc.0/f9824900.sdhci/by-name/system";
               type = "ext4";
               mnt_flags = "ro,barrier=1,inode_readahead_blks=8";
               fsmgr_flags = "wait,verify";
            };
          };
        };
      };
    };
    Remove it with extreme prejudice if possible.
    If you'll notice in passing the last flag: "verify", that's the one
    magisk and SuperSU are getting rid of to nuke dm-verity back to hell. And both actually support patching it out from an device tree backed fstab , hence why Oreo boots as a primary rom even when rooted.

    To recompile your modified device-tree use this one liner:
    Code:
    dtc -O dtb -I dts -o dtb dt.txt

    On to phase 2:
    we need to add an entry back to our good old fstab file.

    Let's extract it from our boot image:
    Code:
    /data/magisk/magiskboot --cpio-extract ramdisk.cpio fstab.qcom fstab.qcom

    Then you know the drill, open it with a text editor and add this line:
    ( note that XDA Labs is messing up the way this post was formatted, duplicating the following line and omitting the following one about adding the fstab back to the boot.img. It's probably on the booze again. )
    Code:
    /dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1,discard wait

    Just have a look at the fstab.qcom file on your root partition.

    So let's put it back in our ramdisk:
    Code:
    /data/magisk/magiskboot --cpio-add ramdisk.cpio 0640 fstab.qcom fstab.qcom

    Then let's repack our boot.img:
    Code:
    /data/magisk/magiskboot --repack boot.img

    Finally grab the just produced newboot.img, insert it back in your rom flashable zip ( where you got it from in the first place ).

    Patch it with DPB, flash it, flash gapps, flash the latest available SuperSU ( presently 2.82 SR5 ).

    Then reboot.
    And pray.

    ( Well it's not for the faint of heart I guess but we're really men over here so we donmanly things, well probably except for those of us who are women obviously. )

    Can't hear you pray!
    9
    I get the same thing hit ROMs and app crashes. So did some hunting and came up with some things. Here are some screen shots.
    You have to patch your primary rom in order for the ROM section to work in app. To do so, flash your ROM like you would usually do it, then open the patcher app and patch your rom. After that, reboot to recovery and DIRTY flash the patched rom over the regular one. Then, the rom menu will work. Hope it helps

    Sent from my ONEPLUS A5000 using XDA Labs

    ---------- Post added at 07:18 PM ---------- Previous post was at 06:43 PM ----------

    Przemyslaw Grzegorzky:
    Ok, so i see there is a lot of confusion regarding making this work, so i decided to write step by step how i did it. It was very frustrating to figure it out, and i can only confirm that it will work if you do it EXACTLY as i did it.
    First and foremost, you CAN'T do this on stock OOS as it forces encryption. You NEED to choose a custom ROM like xxx or RR. So i chose xxx as my primary, and RR as my secondary ROM. Also you need the patcher app and utilities zip.
    1.In TWRP, clean flash your primary ROM (note that i chose xxx which comes with supersu, if you chose another ROM, make sure that you have supersu flashable zip on your device).
    2.Boot your ROM
    3.Open the patcher app, don't press on ROMs list just yet. Instead, go to "patch zip file" and there select your primary ROM zip file. Under partition tab, leave it to be "primary rom update" or smth like that.(Note that if you are installing a ROM like RR which comes with separated gapps and supersu, that you need to patch those zips as well).
    4.After the patching is done, reboot to recovery and DIRTY FLASH the patched ROM zip.
    5.Reboot
    6.Now ROMs list should be working in the patcher app.
    Now for the second ROM. I noticed that if you want to install it as a dual rom, it does not work. Instead, it did work if you patch it for data slot. Here is what i did.
    1.Download the desired second ROM.
    2.Open patcher app. Patch it for data slot (it will ask you to type in data id number, smth like that, just type 1).
    3.Now transfer the patched ROM file to your PC (there is a method without PC, PM me and i will explain)
    4. In your PC, open patched ROM zip file and under META-INF->com->google->android find the file called updater-script. Edit it in your favourite note editing program (i use and recommend notepad++) by deleting the first 3 lines(2 lines start with "assert" and 3rd one is starting with "ifelse"). Save the file. It will prompt you to update it in the archive, click yes.
    5. Transfer the patched ROM zip back again to your phone.
    6. Reboot to recovery and flash your patched ROM zip. Do not reboot just yet.
    7. Now flash utilities zip. Aroma should start and you should see primary and data1 ROMs. Select data 1 ROM and "switch to" button. After that is done you can just reboot and it should start booting your second ROM for the first time. Be patient as the first boot lasts a bit longer.
    That's it! If you've understood and done this exactly how i've written it here, you should have 2 ROMs successfully installed. If this was helpful to you smash the thanks button, if not, PM me and i will try to sort it out. Cheers!

    Sent from my ONEPLUS A5000 using XDA Labs
    7
    Notes

    1- If flashing Custom ROM Fail (like LOS 14.1):
    you have to edit "updater-script" and remove assert lines like:
    Code:
    assert(getprop("ro.product.device") == "cheeseburger" || getprop("ro.build.product") == "cheeseburger" || abort("E3004: This package is for device: cheeseburger; this device is " + getprop("ro.product.device") + "."););
    ifelse(is_mounted("/system"), unmount("/system"));
    2- This won't work on stock OOS because of encryption.
    3- Here's perfect 100% Working guide by @prile97 Here
    5
    Changelogs:

    - 07/07/2017
    Initial Release :D
    - 08/07/2017
    We are Officially Supported, Pull Request Here
    Featured on XDA Portal :cool: