Enjoy Dual Boot Between Stock TouchWiz and Any AOSP Based ROM on Samsung Galaxy S4

The idea of dual boot is not new and many of you must have been enjoying it on your PC but it becomes a little exciting when you have it on your smartphone. The news of Paul O”Brian’s Modaco Switch, which was first released for the HTC One and now available for the Galaxy S4 too, spread like a sensation among Android users.

Flashing custom ROMs is is passion for many of us and we like to play with new things. However, there is also a tiresome aspect of this exciting job and that is wiping the phone’s data each time and install or restore all apps and games again. Wouldn’t it be better if you are able to use a preferred AOSP based ROM along with the stock TouchWiz or Sense ROM at the same time? What is more, the ROM Switcher does not demand any of the wipes that we are used to do before installing new ROMs. Both the ROMs sharing same set of data is another pleasant side of the Dual Boot thing that we are going to talk about today. The hunt for the better performance and battery life does not let us remain content with the stock firmware that comes with our devices.

Though Paul had promised to make his Modaco Switch codes available to other developers so that more and more Android device have this feature, there are a few hard-working fellows who are not patient enough to wait for that. XDA member Garak has finally been successful to develop a ROM switcher mod that allows you to dual boot ROMs without having to wipe any data or create any backups.

The mod has been released for the users of the Galaxy S4 who can have 2 ROMs simultaneously on their phone. One thing that is worth mentioning here is out of two ROMs, the primary ROM must be stock TouchWiz, while any AOSP based ROM can fill up the secondary spot. The mod is still in alpha state but, according to Garak, it is pretty stable and can be used as a daily driver. The stability depends on the performance of the ROMs you have installed.

Another thing, having two ROMs on your device means having 2 kernels on your phone. The mod also switches between kernels while switching between ROMs. You can use any kernel (preferably Perseus) with the stock TouchWiz, but for the your phone should be running the modified CM kernel by Garak. So, if you like experimentation and wish to experience the dual shot, Garak’s ROM Switcher is the hottest thing out now for your Galaxy S4.

Disclaimer:

The dual boot ROM switcher mod is meant only for advanced users who know well how to get out if the device is caught in trouble during performing such activities. If you happen to be a beginner, we suggest you not to get involved with this. Remember, you have been warned! Do not blame anybody but yourself for any mishap.

Make sure you have these PC programs installed: a ZIP archiver, NotePad++ or Dreamweaver.

Preparations:

Since Garak’s ROM switcher mod does not come in a single package like the Modaco Switch, you need to make some changes in the updater-script found inside the AOSP based ROM and the Google apps zip. By directing a different path/location for the new ROM, it can be installed on a different slot of the system memory. While switching between ROM, the RomSwitcher app recalls files from this path and thus you will be able to use the second ROM.

For this reason, you must edit the updater-scripts of the ROM and Gapps both first. If you now how to extract and repack a CWM/TWRP flashable zip, you can do it easily but if you have no idea about it, we have a simpler solution for you.

Make sure that you have a ZIP archiver like WinZip or PowerArchiver installed on your computer. Now double click the ROM zip file and go to META-INF/com/google/android/. Here you will find a file called “updater-script”. Right-click on this file and open it with NotePad++, Dreamweaver or any other editor. Then do the following things:

Find the following line:

mount(“ext4”, “EMMC”, “/dev/block/mmcblk0p20”, “/system”);

and replace it with

mount(“ext4”, “EMMC”, “/dev/block/mmcblk0p19”, “/system”);

Then delete these lines:

format(“ext4”, “EMMC”, “/dev/block/mmcblk0p20”, “0”, “/system”);

and this-

package_extract_file(“boot.img”, “/dev/block/mmcblk0p9”);

Save the changes you made and close the editor. Then close the Zip program window too. If prompted, save the changes here too.

Now double click the Google Apps Zip and navigate to the “updater-script” file.

Find the following line:

run_program(“/sbin/busybox”, “mount”, “/system”);

and replace it with

mount(“ext4”, “EMMC”, “/dev/block/mmcblk0p19”, “/system”);

Save your changes and close the Zip archiver program.

When you are done with editing, copy both the files to the external SD card storage of your Galaxy S4.

Installing the Dual Boot ROM:

Let’s now proceed to install the ROM and Gapps. If you have ever installed a custom ROM, you know the drill very well:

Turn off the device and reboot it into the Recovery mode (Volume Up+Home+Power).

Install the ROM (do not wipe anything)

Then install the Google apps.

Finally, reboot the device.

Your device will boot with the stock TouchWiz ROM.

Also install BusyBox app from the Google Play.

Now install the Rom Switcher app.

Open RomSwitcher and let it download and install the required files like Perseus and modified CM Kernels, etc.

When everything is done, reboot the device. Relaunch RomSwitcher and now you will be able to choose from one of the 2 ROMs anytime. Enjoy!

Is DroidViews compatible with more than CWM and TWRP? For instance, with ME7 the only available recovery is “SafeStrap”. Is it compatible with DroidViews? If so, is that to say that DV will work with any custom recovery? Thanks!

I have stock TouchWhiz on my device, rooted of course. I then downloaded CyanogenMod 10.2 as my second ROM and edited it as described, but I found that the first mentioned line that needed to be changed, there were two of them in the ROM, I replaced the first one and removed the second. Gapps was fine, I then flashed the ROM, and the phone didn’t display anything after that, the screen was black. The duplicate line is mount(“ext4″, “EMMC”, “/dev/block/mmcblk0p20″, “/system”);

Yes it didn’t boot at all, I will try what you’re suggesting and get back to you. Another thing I wanna ask, I’ve got a custom kernel on my stock ROM, could that be the cause? The kernel is Perseus.Adonis

Do you happen to remember if this method also shares the applications, so duplicates are not needed. If yes, what happens if the two OS are on different versions, as the apps would optimize differently for each.