[DISCONTINUED][PATCHER][APP] Dual boot any ROM on all Galaxy S4 variants!

Search This thread

vivekchharia

Senior Member
Nov 25, 2017
90
8
I cant install open gapps on the secondary rom. Any help please & thank you.

Details:
Redmi note 4
Primary ROM - resurrection remix 5.8.5
Secondary ROM - lineage os 15
 

dr.bathman

Senior Member
Dec 11, 2015
941
659
Vadodara
I like dual boot patcher, it's very nice tool to use multiple ROMs.. but it would be nice if app do patching & flashing both together instead of manual patching then flashing zip. Actually patching multiple files is somewhat boring & time consuming particularly when you're custom ROM user & used to use multiple ROMs like 3-4 at a time & also patched files uses much storage space. So if patching & flashing can be done automatically just by selecting any zip, it can save much time & space.. useful particularly for devices which don't have dedicated external sd card slot. Thanks a lot. :)
 

flyxiii

New member
Nov 27, 2017
2
0
I always get "Failed to update mbtool. Many operations, such as switching ROMs will not work." ? I have granted root permission but still doesn't work on my OnePlus 3T...
 

Hayo Tee

Senior Member
Apr 6, 2016
76
19
Andijan
Redmi Note 9 Pro
Device: S3 T-mobile.
The main system is stock 4.3 and multi-1: MokeeOS 7.1.2.
I can't access the folder "obb" on the Multi-1, but the main works fine. If I turn SElinux to permessive, then I have access, but the game crashes. How can I fix it?
 

Eleo

Senior Member
Apr 16, 2012
16,229
14,425
Jena
s it possible to become a rom from secondary to primary without re-installing everything?
Yes. Backup your secondary slot using DBP app. Click on flash ROM. Choose "from backup". Select your backup. Select the slot "primary". Restore to primary.
You need to do this booted on a ROM slot which is neither primary nor the secondary that you are moving.

This question has been answered several times already (like here with screenshots).

PLEASE use SEARCH button before posting next time
 
  • Like
Reactions: pinomelizzi

pinomelizzi

Senior Member
May 28, 2013
102
10
Genova Italia
Screenshot_2017-11-28-14-50-44-393_com.github.chenxiaolong.dualbootpatcher.snapshot.pngScreenshot_2017-11-28-14-50-44-393_com.github.chenxiaolong.dualbootpatcher.snapshot.png it is impossible to install this ROM or even RR 5v8.5
 
Last edited:

Exaskryz

Member
Nov 12, 2014
14
1
Does anyone have a good video tutorial on installing this?

I am confused because the original instructions instruct us to Patch on Windows to create a xxx_dual.zip ROM image. Then it tells us to Patch on Android to create your secondary ROM? Do we patch that same ROM, or is it that you can choose to patch a ROM on Windows or on Android?

I have TWRP already, and that's about as far as I am with this tutorial. Clearly I'm missing something terribly obvious, perhaps because I'm reading too far into the instructions.

Thanks in advance.

Edit: I mean, what is this for?

Before doing anything, download the Dual Boot Patcher app and the DualBootUtilities.zip from the download section below.

I see no mention of where you're supposed to use DualBootUtilities.zip anywhere. Following a video tutorial on this, they don't use it. But I'm getting errors! Ahh! Error is:

Connecting to mbtool... connected
--------------------
Processing action: Flash file
- File URI: content://com.android.externalstorage.documents/document/primary%3ADownload%2FXT1625-XT1644_dual_secondary_2.zip
- File name: null
- Destination: dual

Extracting mbtool ROM installer from the zip file
Extracting mbtool signature from the zip file
Running rom-installer with arguments: [--romid, dual, /storage/emulated/0/Download/XT1625-XT1644_dual_secondary_2.zip]

[MultiBoot] Creating chroot environment
[MultiBoot] Failed to extract multiboot files from zip
[MultiBoot] Failed to flash zip file.
[MultiBoot] Destroying chroot environment
[MultiBoot] The log file was saved as MultiBoot.log on the internal storage.

Command returned: 1
------------
Completed:
1 actions attempted
0 actions succeeded
0 actions skipped

Any insight?

Edit: Added attachments. There is a 61 KB Multiboot.log file in the top level of my internal storage but I cannot move that file, copy that file, or upload that file.
 

Attachments

  • boot-ui-action.log
    54.2 KB · Views: 6
  • patch-file.log
    199 KB · Views: 6
  • ramdisk-update.log
    48.7 KB · Views: 2
  • verify-zip.log
    378.8 KB · Views: 2
Last edited:

Mr. Lokkevit

Senior Member
Aug 26, 2016
132
38
Brăila
Does anyone have a good video tutorial on installing this?

I am confused because the original instructions instruct us to Patch on Windows to create a xxx_dual.zip ROM image. Then it tells us to Patch on Android to create your secondary ROM? Do we patch that same ROM, or is it that you can choose to patch a ROM on Windows or on Android?

I have TWRP already, and that's about as far as I am with this tutorial. Clearly I'm missing something terribly obvious, perhaps because I'm reading too far into the instructions.

Thanks in advance.

Edit: I mean, what is this for?



I see no mention of where you're supposed to use DualBootUtilities.zip anywhere. Following a video tutorial on this, they don't use it. But I'm getting errors! Ahh! Error is:



Any insight?

Edit: Added attachments. There is a 61 KB Multiboot.log file in the top level of my internal storage but I cannot move that file, copy that file, or upload that file.

You can patch a flashable zip from the Windows Program OR from the Android App.
And the Utilities zip is an Aroma zip, which you can flash in recovery to switch roms, in case you can't boot the second rom.
 

Exaskryz

Member
Nov 12, 2014
14
1
You can patch a flashable zip from the Windows Program OR from the Android App.
And the Utilities zip is an Aroma zip, which you can flash in recovery to switch roms, in case you can't boot the second rom.

OK, thanks.

Sounds like this app isn't compatible with my phone or my OS for whatever reason. I've got the flashable zip created, but it just doesn't work. And if I can't even get the point where I have two roms installed, then I don't need to worry about not booting the second rom.
 

Mr. Lokkevit

Senior Member
Aug 26, 2016
132
38
Brăila
OK, thanks.

Sounds like this app isn't compatible with my phone or my OS for whatever reason. I've got the flashable zip created, but it just doesn't work. And if I can't even get the point where I have two roms installed, then I don't need to worry about not booting the second rom.

Check if you have enough space. If you are positive you had enough (maybe like 2gb+), look at the Multiboot.log.
 

Exaskryz

Member
Nov 12, 2014
14
1
The Multiboot.log doesn't even open!

I've got 10 GB free space on Internal storage and another 18 GB on External storage. Plenty of room. The error is given in my previous post, it doesn't appear to be amount lack of storage. It's that there's no multiboot files after I patch! I'll actually try patching on windows...

Edit: Patching with Windows made no difference. Exact same error screen, just with a differently named .zip file. Somehow it "failed to extract multiboot files from zip". Looking at the source code here: https://github.com/chenxiaolong/DualBootPatcher/blob/master/mbtool/installer.cpp, it's literally because it can't find the multiboot files...

Looking closer to it, I'm missing this file in the .zip archive: META-INF/com/google/android/update-binary.orig ... It's this function that fails:

Code:
bool Installer::extract_multiboot_files()
{
std::vector<util::ExtractInfo> files{
{
"META-INF/com/google/android/update-binary.orig",
_temp + "/updater"
},
{
"META-INF/com/google/android/update-binary",
_temp + "/mbtool"
},
{
"META-INF/com/google/android/update-binary.sig",
_temp + "/mbtool.sig"
},
{
"multiboot/bb-wrapper.sh",
_temp + "/bb-wrapper.sh"
},
{
"multiboot/bb-wrapper.sh.sig",
_temp + "/bb-wrapper.sh.sig"
},
{
"multiboot/device.json",
_temp + "/device.json"
},
{
"multiboot/info.prop",
_temp + "/info.prop"
},
};

And I am looking at the .zip archive and find the "update-binary" and "update-binary.sig" files. But I don't have the "update-binary.orig" file.

I've got the other 4 files in the multiboot folder.

How can I resolve this? What is this .orig file? Can I just copy and paste the "update-binary" file and rename it to "update-binary.orig" ??

Apparently the .orig was what I thought it may be, a backup file:

Well, if you delete your original rom you can revert but you need some practice with roms;
you must to go to the zip and:
-Delete all the folder multiboot
-Go to /META-INF/com/google/android and delete files update-binary and update-binary.sig and delete the extension .orig to file update-binary.orig (it`s a backup of your original)
-In the same folder must edit updater-script in two lines specifically; when it given a mount point to system like == 0
- And finally unpack boot with a tool like Android Kitchen and delete two files inside folder boot.img-ramdisk called mbtool and mbtool.sig and repack again.
- If you should preserve from your original zip before patch your updater-script and your boot.img all should be more easy

So it sounds like I can totally just cheese this by putting in even a 0-byte update-binary.orig file. But that's also under the assumption that I am getting the Message "Failed to extract multiboot files from zip" because one of these files was not present. I'm going to bed to give time for someone to yell at me that this is a bad idea before proceeding with my idea of a fix.
 
Last edited:

SubwayChamp

Senior Member
Aug 6, 2016
2,558
1
1,158
The Multiboot.log doesn't even open!

I've got 10 GB free space on Internal storage and another 18 GB on External storage. Plenty of room. The error is given in my previous post, it doesn't appear to be amount lack of storage. It's that there's no multiboot files after I patch! I'll actually try patching on windows...

Edit: Patching with Windows made no difference. Exact same error screen, just with a differently named .zip file. Somehow it "failed to extract multiboot files from zip". Looking at the source code here: https://github.com/chenxiaolong/DualBootPatcher/blob/master/mbtool/installer.cpp, it's literally because it can't find the multiboot files...

Looking closer to it, I'm missing this file in the .zip archive: META-INF/com/google/android/update-binary.orig ... It's this function that fails:

Code:
bool Installer::extract_multiboot_files()
{
std::vector<util::ExtractInfo> files{
{
"META-INF/com/google/android/update-binary.orig",
_temp + "/updater"[/QUOTE]


Mm this post was a long time ago about how to recover original file rom zip for an user that deleted after patching it, this method don´t keep relation with your issue.
First of all you have to see listed your device to be sure that is compatible with yours; i don´t use this app now cause I change device continuosly and I don´t know if exactly works in same way.
After you patched succesfully zip you must to see inside your zip these files [ATTACH]4352289._xfImport[/ATTACH] and then inside your meta-inf appears these [ATTACH]4352290._xfImport[/ATTACH] but you have to pay attention at msg prompt after patch it was succesfull or not, at this time you can´t boot your device? or you just can´t boot at second rom?, preferebly patch your zip through same app and you can flash it also through it
 

Exaskryz

Member
Nov 12, 2014
14
1
Well, if you delete your original rom you can revert but you need some practice with roms;
you must to go to the zip and:
-Delete all the folder multiboot
-Go to /META-INF/com/google/android and delete files update-binary and update-binary.sig and delete the extension .orig to file update-binary.orig (it`s a backup of your original)
-In the same folder must edit updater-script in two lines specifically; when it given a mount point to system like == 0
- And finally unpack boot with a tool like Android Kitchen and delete two files inside folder boot.img-ramdisk called mbtool and mbtool.sig and repack again.
- If you should preserve from your original zip before patch your updater-script and your boot.img all should be more easy

Mm this post was a long time ago about how to recover original file rom zip for an user that deleted after patching it, this method don´t keep relation with your issue.
First of all you have to see listed your device to be sure that is compatible with yours; i don´t use this app now cause I change device continuosly and I don´t know if exactly works in same way.
After you patched succesfully zip you must to see inside your zip these files View attachment 4352289 and then inside your meta-inf appears these View attachment 4352290 but you have to pay attention at msg prompt after patch it was succesfull or not, at this time you can´t boot your device? or you just can´t boot at second rom?, preferebly patch your zip through same app and you can flash it also through it

I just described the file situation. I'm missing a file that I imagine actually has no impact on the patching process, but the code expects it to be present. (I think it is flawed logic.)

I did look at the prompt; in fact it's all written out above with nice colored highlighting that (nearly) matches the original (changed yellow->green due to bright background on forums). It of course was not successful. I can't boot to the second rom because the Tool won't flash the second rom. It errors out very early in the process, saying it made 1 attempted action before quitting.

The original ROM (before patching it) works. Because I just flashed it on Saturday (2 days ago). I still have only one ROM. Only one ROM. There is no second ROM. I want there to be a second ROM. But the App refuses to flash the second ROM and gives an error. If I reboot my device, everything is normal.

My device is a Motorola Moto G4 which is said to be supported. https://dbp.noobdev.io/supported_devices.html#device_info_125 -- Motorola Moto G4 & G4 Plus Edition

However your screenshot gives me worry. Because I don't have an updater-script file either! In fact, I'll add in screenshots of my folder. As you can see, I don't have a "system" folder, and the ROM files itself are at the top level of the .zip.
 

Attachments

  • MotoZipSS1.PNG
    MotoZipSS1.PNG
    61.9 KB · Views: 112
  • MotoZipSS2.PNG
    MotoZipSS2.PNG
    26.3 KB · Views: 110
  • MotoZipSS3.PNG
    MotoZipSS3.PNG
    21.9 KB · Views: 112
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 752
    This project has been discontinued. See https://github.com/chenxiaolong/DualBootPatcher/blob/master/README.md for more details.


    I'm proud to present the first dual boot project for the Qualcomm-based Samsung Galaxy S4! This project started off as a feature in my ROM, but not anymore. 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

    Donators

    A huge thanks goes out to all of the donators for supporting this project! I if forgot to add you (and you want to be added), please send me a quick PM.

    See all of our supporters here: https://gist.github.com/chenxiaolong/3f3fb485cbd0cb77c4281941433ec54d

    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

    NOTE: If you want to dualboot a TouchWiz ROM, I highly recommend installing TW as the primary ROM. Otherwise, any mods will need to be patched before flashing.

    How to use the patcher


    Android

    Download the patcher apk and run it. Tap "Patch Zip File" from the navigation drawer and choose the file you want to patch.

    Windows (GUI)

    Double click DualBootPatcher.exe and choose the file you want to patch.

    --------

    After patching the zip file, a new file, like some_rom_dual.zip file will be created. For example, patching ktoonsez's

    KT-SGS4-JB4.3-AOSP-TMO-08.28.2013.zip

    would create a new

    KT-SGS4-JB4.3-AOSP-TMO-08.28.2013_dual.zip


    Instructions for dual booting


    Before doing anything, download the Dual Boot Patcher app and the DualBootUtilities.zip from the download section below.

    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.

    With that said, let's get to the "how to"!

    1. First, boot into your primary ROM and install the Dual Boot Patcher app
    2. Open the app and go to "Roms" in the navigation drawer. It will ask if you want to set the kernel. Make sure that you do.
    3. Go to "Patch zip file" in the navigation drawer and patch the ROM or zip you want to install. You can select one of the installation locations described above.

    There are two ways of flashing the patched zip file. You can either flash it normally from recovery or flash it using the in-app flashing feature. Both methods are explained below.

    Flashing from recovery

    To flash from recovery, just flash the patched zip file like you would for any other zip. Nice and simple.

    In-app flashing

    To use in-app flashing, go to "Roms" in the navigation drawer, tap the floating button on the bottom right, and add the zips you want to install. You can queue multiple zips and they will all be flashed in one go. Once you've added all the zips you want to flash, click the check mark in the action bar and they will be flashed right away.

    A normal backup from recovery will backup every ROM. If you would like to back up ROMs individually, please see @rlorange's awesome tool: http://forum.xda-developers.com/showthread.php?t=2491299


    How do I...?


    Switch the ROM if something doesn't work properly?
    You can flash the DualBootUtilities zip from recovery. It will provide a menu interface that allows switching to the various ROMs.

    If you have TWRP, you can also switch manually by tapping Install -> Images (bottom right) -> Go to /sdcard/MultiBoot/[Your ROM]/ -> flash boot.img.​

    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".

    Alternatively, flash the DualBootUtilities zip from recovery, which will also allow you to wipe a ROM.

    NOTE: Don't use the recovery's built-in wiping abilities as that may delete non-primary ROMs!​

    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:


    [LINK] Dual Boot Patcher (Snapshots) and DualBootUtilities recovery zip


    Donations:

    Donations are not required, but are greatly appreciated :D Donators will have their names listed in a nice big font on this post and will also be listed in the README file of the patcher.


    Source code:




    XDA:DevDB Information
    Dual Boot Patcher, Tool/Utility for the Samsung Galaxy S 4

    Contributors
    chenxiaolong

    Version Information
    Status: Testing

    Created 2013-09-17
    Last Updated 2014-07-29

    XDA:DevDB Information
    [DISCONTINUED] Dual Boot Patcher, Tool/Utility for the Samsung Galaxy S4

    Contributors
    chenxiaolong
    Source Code: https://github.com/chenxiaolong


    Version Information
    Status: Testing

    Created 2013-09-17
    Last Updated 2019-05-17
    301
    Reserved

    EDIT: Funny how people are thanking this reserved post :D
    130
    Reserved

    Changelog:





    • Version 5.0.2
      • Fix bug in regex that may cause "errors=remount" to become "errwrs=remount" for my noobdev ROM leading the init binary to fail

    • Version 5.0.1
      • Fix issue where the mount script would not be executed in the init scripts of ktoonsez's kernels
      • falcon is the Moto G, not the Moto X


    • Version 4.1.3
      • Add support for EHNDROIX
      • Add support for WanamLite
      • Sort ramdisks and presets in GUI

    • Version 4.1.2
      • Add support for Echoe v20

    • Version 4.1.1
      • Add support for Echoe v18


    • Version 4.0.4
      • Update to version 1.7.28-2 of the cygwin library (for Windows)
      • Add support for OctOS
      • Add support for NamelessROM
      • Add support for Tquetski's MIUI
      • Automatically comment out check_icd in init.rc of TouchWiz 4.4 ramdisks (initial work to make stock init binary dual-boot capable)

    • Version 4.0.2
      • Remove generic boot.img support. Use the GUI patcher or patch-ramdisk script instead.
      • Add support for patching unsupported boot.lok files by unifying the file type detection code in the CLI and GUI programs
      • Add support for BlackBox 2.2
      • Add support for Echoe v14, 14.1 (untested)
      • Add support for jamal2367's Google Edition version R1.1 final
      • Add support for jamal2367's old Android 4.2.2 build
      • Add support for LiquidSmooth Kit Kat
      • Add support for AOSB
      • Add support for Bobcat Google Edition
      • Add support for SHOstock (TW4.4 tested)
      • Fix bug where the newly flashed kernel for devices needing loki is not saved properly
      • Fix modem partition mounting in TouchWiz 4.4 ROMs -- Fixes unknown baseband bug


    • Version 3.2.2
      • Added support for:
        • Carbon's Kit Kat ROM
        • Omnifarious's ROM
        • Kangakat
        • BAM-Android
        • Infamous Google Edition
        • Echoe Google Edition
        • Echoe TouchWiz
        • Official MIUI (TouchWiz-based)
        • Moto X's optimized bionic and dalvik libraries installer

    • Version 3.2.1
      • Fixes this error when a zip is unsupported:
        Code:
        AttributeError: 'NoneType' object has no attribute 'configs'
      • Add support for VirginROM (4.4 Kit Kat)
      • Add support for Dandroid (4.4 Kit Kat)
      • Add support for faux's Google Edition 4.4 jgedlte kernel
      • Add support for Gummy's Google Apps package

    • Version 3.2.0
      • Google Edition ROMs have the ugliest ramdisk by far (err...I mean Google Edition 4.4 ROMs will now boot)
      • chmod.exe from Cygwin's coreutils in now included in the Windows build so the patcher can set the necessary permissions on the init binary in Google Edition 4.4 ROMs
      • Disable SELinux by default globally
      • Fix mediaserver crash caused by the removal of /system/etc/snd_soc_msm/snd_soc_msm_2x_Fusion3_auxpcm in jamal2367's Google Edition 4.4 ROM
    • Version 3.1.1
      • Add support for Ktoonsez's Google Edition 4.4 kernel
      • Add support for Hell(y?)kat

    • Version 3.1.0
      • Add support for multi-boot patching in the Android GUI

    • Version 3.0.1
      • Update SuperSU patch to support version 1.80
      • Switch to CyanogenMod 11's mkbootimg and unpackbootimg sources
      • Add support for Google Edition 4.4 ROMs (ie. stop trying to patch the missing MSM8960_lpm.rc in the ramdisk)
      • Hack to allow the file chooser in Android 4.4 Kit Kat to work properly (in the Android version of the patcher)

    • Version 3.0.0
      • Separate many functions into common.py to make patchinfo files simpler
      • Set compile target for the Android GUI to Kit Kat (API 19)
      • Add support for debug builds of the Android GUI so I don't have to sign test builds
      • Add support for removing those pesky device check asserts
      • Add support for using multiple patches (can combine auto-patcher with manual patch)
      • Fix broken patch generator in Windows (hopefully, we won't need it anymore though)
        • Removed by default for HellyBean
      • Add auto-patcher
        • Searches through updater script to find mount, unmount, format, and delete lines and replaces them with the multi-boot equivalent.
        • Finds line that flashes the kernel and inserts line that takes a backup and stores it in the appropriate place for the dual boot switcher
        • All partitions will always be unmounted after installation so the phone is not in a weird state when flashing the next zip.
      • Auto-patched ROMs
        • GoldenEye
        • CyanogenMod
        • HellyBean
        • PAC-Man
        • ProBAM
        • AOKP
        • IOKP
        • AOSP
        • SlimBean
        • Paranoid Android
        • AICP
        • Carbon
        • JellyBeer
        • Omni
        • Gummy
        • Vanir
        • Dirty Unicorns
        • jamal2367's Google Edition
        • Ktoonsez AOSP, TouchWiz, and Google Edition kernels
        • Faux kernel
        • Ausdim kernel
        • Adam kernel
        • Infamous kernel
        • Triforce ROM
        • Paranoid Android Google Apps
        • BaNkS' Google Apps
        • CyanogenMod's Google Apps
        • doomed151 Google Apps
        • SlimBean Google Apps (standard and aroma)
        • task650's AOKP Google Apps
        • MIUI's Google Apps
        • MIUI ROM
        • Foxhound
        • HTC Sense 5 port
        • MaKTaiL's Google Edition
        • Kangabean
      • Triple boot! (and quadruple and quintuple and ...)
        • Any auto-patched ROM is automatically supported
        • Requires version 2.0.0 of the Dual Boot Switcher app
        • Dual Boot Switcher supports up to 10 ROMs in addition to the primary and secondary
        • Patcher supports 3 ROMs in addition to the primary and secondary (unless someone wants more)
        • The Android GUI only supports dual booting for now
        • Partition configuration (where things are installed): https://github.com/chenxiaolong/DualBootPatcher/blob/master/scripts/partitionconfigs.py
        • Introduced a new dualboot.sh script that keeps track of what has and hasn't been mounted
          • Terribly written updater-scripts aren't a problem anymore
          • Note: using the script outside of the patcher will cause the ROM to be installed as secondary
        • Note: I don't want to rewrite SELinux rules and compile a modified version of vold, so for now, the target /system must be on a different physical partition than the target /cache. Other dualboot solutions have worked around this by installing the ROM files to a loop mounted ext4 filesystem image
        • Installing ROMs to /data should work in theory, but will not be supported
      • What else? :p
    • Version 2.5.3
      • Catch exception when file cannot be extracted
      • Add support for loki'd ChronicKernel

    • Version 2.5.2
      • Add support for OmniROM's Kit Kat ramdisks
      • Add support for Paranoid Android 4.4 Google Apps
      • Fix syntax error in scripts/gendiff.py

    • Version 2.5.1
      • unlokibootimg: struct can convert little-endian bytes to integers in Python 3.0 and Python 3.1 too
      • Don't use backslashes for filenames when generating patches from Windows
      • Add rushi.1986's patches for GoldenEye AT&T: http://forum.xda-developers.com/showpost.
        php?p=46950654&postcount=801
      • Update Sample.py for bootimg variable
      • Add support for Ktoonsez's non-AOSP kernels

    • Version 2.5
      • Add support for extracted loki'd boot images: https://github.com/chenxiaolong/DualBootPatcher/blob/master/scripts/unlokibootimg.py
      • Add support for Loki'd ktoonsez's AOSP 4.3 kernels
      • Fix crash when script is run with Python 2 due to the code trying to encode a "UTF-8" string as "UTF-8"
      • Flush stdout when printing status messages because Python 2's print() doesn't do that automatically
      • Fix general patch for Kangabean and enable Loki ramdisk patching for it
    • Version 2.4.3
      • Add support for IOKP

    • Version 2.4.2
      • Use custom-compiled tar to fix extraction on ROMs that don't have tar with xz support
      • Fix status messages in patcher so the app doesn't appear to pause with no activity
      • Clean up app cache as soon as it's not needed anymore
      • Add support for GoldenEye (TouchWiz 4.3) for T-Mobile

    • Version 2.4.1
      • Add support for loki'd Slim Bean

    • Version 2.4
      • Switch to GNU patch because busybox's patch can't handle fuzz. There's no way in the world we could ever have 100% perfect patches, so busybox is not an option.

    • Version 2.3
      • New Android app for patching files directly on the phone

    • Version 2.1
      • Add script for generating patches


    • Version 1.18.1
      • Add LiquidSmooth ramdisk
      • Add support for LiquidSmooth

    • Version 1.18
      • Add munchy_cool's 64-bit OS X unpackbootimg and mkbootimg binaries
      • Add support for OS X

    • Version 1.17.5
      • Add support for Metaiiica's PAC-Man

    • Version 1.17.4
      • Fix regular expressions for HellyBean and AOSP


    • Version 1.17.2
      • Add support for ProBAM

    • Version 1.17.1
      • Add support for HellyBean
      • Windows: Allow zip files to reside on a drive other separate from the patcher
      • replaceramdisk.py: Bug fix in variable name

    • Version 1.17
      • Add support for Vertigo's AOKP
      • Add generic AOKP ramdisk

    • Version 1.16.2
      • Add support for TriForceROM

    • Version 1.16.1
      • Add support for iNTriNsiC (20130806 version)

    • Version 1.16
      • Add support for Negalite

    • Version 1.15
      • Add support for geiti94's Sense 5 port

    • Version 1.14.2
      • Add support for Kangabean

    • Version 1.14.1
      • Add support for Paranoid Android Google Apps package

    • Version 1.14
      • Add support for Broodplank's AOSP
      • Add support for doom151's AOSP Google Apps package

    • Version 1.13
      • Add support for Evil UnWizzed

    • Version 1.12
      • Add support for ComaDose
      • Add support for JellyBeer
      • Add support for jamal2367's Google Edition ROM

    • Version 1.11
      • Fix critical bug in the repacking of boot.img that may cause secondary ROM to not boot (duplicate files w/same name in zip)

    • Version 1.10.1
      • Add support for AROMA Slim Bean Google Apps package

    • Version 1.10
      • Optimize patcher script so only one full zip read and one full zip write is required
      • Add support for BaNkS's Google Apps

    • Version 1.9
      • Add support for Carbon ROM
      • Add patched Carbon ramdisk

    • Version 1.8.1
      • Use 0 context diff for paranoidandroid.dualboot.patch so it can apply properly to AOSPA's updater-script

    • Version 1.8
      • Add support for FoxHound ROM
      • Add generic TouchWiz ramdisk
      • Update README with notice about free disk space
      • Bind mount /data/media during installation. It is bad practice for an updater-script to touch /data/media, but some ROMs do this, so we need to handle it
      • Add support for mounting secondary /cache in dual boot helper script
      • Update replaceramdisk.py to support version 1.7's change in ramdisk compression


    • Version 1.6.3
      • Add support for Adam kernel (UNTESTED)
    • Version 1.6.2
      • Add support for Ausdim kernel (UNTESTED)

    • Version 1.6.1
      • Add support for Slim Bean ROM

    • Version 1.6
      • Add new script for replacing the ramdisk in boot.img

    • Version 1.5
      • Add support for MIUI

    • Version 1.4.2
      • Add support for ParanoidAndroid

    • Version 1.4.1
      • Experimental Infamous kernel support (UNTESTED)

    • Version 1.4
      • Initial support for Google Edition ramdisks
      • Add support for MaKTaiL's Google Edition ROM

    • Version 1.3
      • Minor fixes in preparation for public release
      • Update README with supported files and convert line endings to rn (thanks Windows!)

    • Version 1.2.6
      • Add SuperSU support

    • Version 1.2.5
      • Add AOKP support

    • Version 1.2.4
      • Add ChronicKernel support

    • Version 1.2.3
      • Add support for Vertigo's PAC-Man

    • Version 1.2.2
      • Add support for CyanogenMod's Google Apps

    • Version 1.2.1
      • Add support for official CyanogenMod nightlies

    • Version 1.2
      • Add faux kernel support

    • Version 1.1
      • Add Windows support
      • Newly compiled mkbootimg.exe and unpackbootimg.exe to support Windows' separate text and binary file I/O modes
      • Add a portable, minimal version of Python 3 for Windows
      • Use newer GNU patch from MSYS for Windows

    • Version 1.0
      • Initial release (Linux only)
      • Supported kernels: ktoonsez AOSP 4.3
    29
    regarding this dual booting, is there any possibility that the /data partition can be shared across both roms?

    Sent from my GT-I9505 using Tapatalk 2

    +1 this would be awesome

    Sent from my Galaxy Nexus using Tapatalk 4

    It depends on what you mean by /data. Currently, the internal SD is shared. It's possible to share /data/app and /data/app-asec without too much trouble (so apps aren't downloaded twice). If you're looking to share /data/data (app settings), I don't think I'll implement that, as least not for all apps. I don't think it's a good idea to have to have a blacklist of apps that can't have their data shared, such as launchers.

    I'm considering adding a new section to the dual boot switcher app so that you can choose which apps' data should be shared between the two ROMs :)
    29
    Sorry everyone, I will continue to unavailable for the near future. I'm currently involved in a new project at work that is a very significant career goal for me, so I'm dedicating all my time and energy towards it. I'm not allowed to say any more than that, but it's why DualBootPatcher hasn't gotten much activity lately. Rest assured that the project is not dead!

    In the little free time I had in the past few weeks, I made some pretty important changes to the core of the patcher. The most significant one is probably libmbbootimg, a new boot.img file parser. It is much more secure than the current code (in terms of handling malicious boot.ing files) and is somewhere around 600% faster. It will be noticeable when loading the list of ROMs, switching ROMs, updating the ramdisk, etc.

    I know a lot of people have jumped in and submitted pull requests while I was gone. Thanks to everyone who has done so; it's much appreciated! I will be reviewing and merging those PRs ASAP.

    And as usual, thanks to everyone in this thread for helping each other out!

    Cheers,
    Andrew
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone