Many Android enthusiasts enjoy installing custom ROMs such as LineageOS and Paranoid Android on their devices, but this typically comes at loss of the stock ROM. For Samsung Galaxy S8, S8+, and Note 8 owners who want to be able to dual-boot between custom and stock ROMs, or even multiple custom ROMs, this guide will walk you through that kind of setup.
Basically, what we’ll be doing is using the Dual Boot Patcher app, which will perform the following operations on your Samsung Galaxy device:
- Allow custom kernels for dual boot support
- Allow ROMs to be installed as secondary
- Google Apps package injection for AOSP-based ROMs
- SuperSU for rooting the secondary ROM
If you do not have TWRP or any other custom recovery installed on your Samsung Galaxy device, I recommend reading one of the following guides, depending on which device you are performing this operation on:
> How to Root the Samsung Galaxy S8 and S8 Plus Snapdragon
> How to Root the Samsung Galaxy S8 and S8 Plus Exynos
> How to Root the Samsung Galaxy Note 8 Exynos
- Compatible ROMs of your choice
- Dual Boot Patcher APK
- Dual Boot Utilities
- Begin by downloading the custom ROMs of your choice, and transferring them to your external SD card.
- Now install the Dual Boot Patcher app on your Samsung Galaxy device, launch it, and swipe right to open the menu.
- Choose “ROMs”, and it will ask if you want to set a kernel (if this is your first time using the app). The kernel you pick is up to you.
- When it’s done, go to the ROM Settings and choose “Update Ramdisk”, when the process is complete it will ask to reboot. Go ahead and reboot.
- When you’re back in the Android system, launch the Dual Boot Patcher app again, open the menu, and choose “Patch Zip File”. Make sure your device is set to “GreatLte”, and under the Partition Configuration, choose “Secondary”. This will install the ROM of your choice to the /system or data partition.
- Press “Continue” and choose where to save the patched file, and you will see the file is put into Queue. Press the Confirm button in the upper right corner.
- The ROM’s .zip file will be patched, and when it’s done, go back to the ROMs menu.
- (Alternative method for the next two steps: You can also flash the patched .zip file through custom recovery, like TWRP, instead of the Dual Boot Patcher app.)
- Now press the “Flash Zip Files” button, and add the .zip file you just patched. Unless you saved it under a different name, it should be something like ROM_name_partition_config_ID.zip (like RR-N-v5.8.3-20171004-greatlte-Unofficial_dual.zip).
- After choosing the file, choose to “Keep Location”, and then confirm the flash.
- A terminal will be launched and start flashing the .zip, so just be patient until it confirms “Success!” in green.
- Now when you go back, you should see the new secondary ROM alongside your primary ROM.
- Now to easily switch between which ROM you want to boot, there are two methods for this.
- You can reboot your phone into the secondary ROM, and install DualBootPatcher.apk inside that ROM as well.
- Alternatively, you can flash the DualBootUtilities.zip through TWRP, and switch ROM manually.
To use BootUI, you can choose “Settings” from the Dual Boot app, and press Install (Update) BootUI.
Then swipe right to open the menu, press “ROMs”, open Secondary ROM Settings, and choose Update Ramdisk. This will allow you to change ROMs using the BootUI, a bit like GRUB loader in Linux.
When choosing a location for installing ROMs, you can select these options:
- Primary: This is for installing a ROM .zip into the primary ROM – this is recommended, because it will prevent the .zip from affecting other ROMs.
- Dual/Secondary: This is the first location for multiboot installation, and it will install to the /system partition. It’s an ideal place for a secondary ROM.
- Multi-Slot: You have up to 3 multi-slots, and it will install the ROM to the /cache partition. This should be used on specific devices that have a particularly large /cache partition.
- Data-Slots: You can have an unlimited amount of data slots, basically the ROM will be installed to the /data partition. The downside is that it will take up internal storage space, but it’s useful for devices where the /system partition is almost full, and the /cache partition is limited.
- EXTSD-Slots: This basically installs the ROM to your external SD card, which is ideal if you have a large SD card.
How Exactly do I boot between ROMs?
This isn’t like a computer where there’s a menu at boot to choose which OS / partition to boot from. So basically you’re going to launch the Dual Boot Patcher app, and:
- Go to the ROMs menu.
- Choose the ROM you want to boot, and it will confirm with a “Switching ROM” message, followed by “ROM successfully switched”.
- Now you just need to do a normal reboot of your device, and it will boot up the ROM you selected.
How do I share apps and data across ROMs?
Dual Boot Patcher has a feature that will load apps and data from a centralized location, which is typically found in /data/multiboot/_appsharing. So whichever ROM you’re booting from will load the apps and data from that folder.
To utilize this feature, you have to follow these steps in each ROM you want to utilize app and data sharing:
- Install the apps you want to share across ROMs
- Open the Dual Boot Patcher app, and go into the “App Sharing” menu (from the navigation drawer).
- Enable each app you want to be shared across ROMs.
- Enable “Manage Shared Applications” and APK/Data sharing for each app.
- Reboot your device.
If you uninstall an app from a ROM, it will only remove it from that ROM – the other ROMs will still have access to it, until this process is reversed / the app is removed from the localized sharing folder.