[Droid Incredible General] Conap:
For those with phones other then Incredible...The new app that will replace this system and work with multiple phones is in the market. Check out my sig for our website with more info.

Does not work with CWM2.5...Tested with CWM 3.0.8 ONLY WILL NOT WORK WITH OTHER RECOVERIES

A super big thanks to xda dev drellisdee since he's the one who showed me how to mount the img's at boot time. Check out his modified recovery here http://xdaforums.com/showthread.php?t=758874

Thanks also too:

Team ADX-I used my personal account to post since it has the dev privaliges but consider this a Team ADX endeavor.

Thanks to DHowett for furthering the idea of what we can do with the dualbooting

Thanks to UnCorrupted for giving me the original interest in Dual Booting roms long, long ago!!

Thanks to VZW for taking so much of my paycheck everymonth!!

Thanks to all who tested and gave feedback on my original DualRom project and to all who will do the same with this one.

Thanks to all the Dev's that give us a reason to want to use more then 1 rom.

DRX2 is an upgrade from DualRom. You can fit up to 4 roms on emmc(and one on the phone if you want) It uses the phone as an installer. I decided to go towards DHowetts idea of mounting img files on the emmc. Emmc will stay as fat32 the way it comes on the phone. This system is fairly simple and so far has worked with all rom's tested.

Tested with:

MIUI

CM7

SkyRaider 4.0

GingerSense Remix-B1-INC

Uber-z_RC3-1

Nil's Busines Sense

Leaked GB rom

WarmZ

uber kingdom sense 3.0 (1.0.1)

mikmik's beta 3 (sense 2.1 w/ 3.0 additions)

Incubus's Stock 2.0

mytouch 4g doubleshot rom

stock kingdom 3.0 rom

Post what rom's you boot successfully so they can be added to the list!!!

As you can see that's a good variety and it should work with every rom.

Does not work with CWM2.5...Tested with CWM 3+ Might work with other recoveries.

Installation

Installation is simple. The roms will be stored on emmc in folders labeled rom1, rom2, rom3 and rom4. each folder will need a system.img, data.img and cache.img. You can flash createimageforrom1.zip to setup the folder and img's for rom1 and the the same for the other roms up to rom4. The zip's i included create a 270mb system.img, a 1000mb data.img and a 120mb cache.img. If you would rather manually create these and make your own sizes do:

adb shell

cd emmc

mkdir rom1 (or rom2, rom3, rom4)

cd rom1

dd if=/dev/zero of=system.img bs=1M count=270

dd if=/dev/zero of=data.img bs=1M count=1000

dd if=/dev/zero of=cache.img bs=1M count=120

NOTE: Some rom's the dd command acts differently and your img may come out really small. If that's the case just add busybox to the beginning of the dd command.

the last number on the last three commands is the size of the image it will make. These take a while to make. If you use the zips i included expect to wait at least ten minutes for the img's to be built. Once they are built on the emmc you can flash different rom's to them without deleting/recreating them so you should only need to do this step once.

Once you have the img's setup choose your rom and your kernel or any other ad on's that you want installed. Flash the rom as normal(wipe phone, install zip from sd) NOTE: this will obviously overwrite your existing installation so if you want to keep that you will need to make a nand to restore when you are done. Next flash any ad on's or kernel zips you want installed as normal. Then just flash the zip for rom1installer that i've included. You can use rom1installer or rom2installer, etc to pick which slot you want the rom installed to. They don't have to be installed in any order. You can use just rom4 if you want just make sure you have setup the img's for the rominstaller zip you use. The installer zip will take 5 to 8 minutes to install so be patient. After that reboot your phone and it will boot to the rom you just installed. You can then use the DRX2 app to boot between all installed roms. If you restore your nand to your phone or install another rom to the actuall phone then run the phoneinstaller.zip to set that rom up to use the DRX2 app as well. So to recap and make it simple:

Does not work with CWM2.5...Tested with CWM 3+ Might work with other recoveries.

1. flash createimageforrom1.zip(or rom2, rom3, rom4) or all of them if you want lots of roms(you only need to do this if the img's are not already on your emmc)

2. flash your rom of choice and any add on's you want. (rember to wipe phone first and backup if nescasary) If you want to move the rom your currently have installed on your phone to one of the rom slots on emmc just skip this step.

3. flash rom1installer.zip (or rom2, rom3, rom4) whichever slot you want it installed too.

4. reboot

5. If you are also going to use a rom on your phone normally then flash or restore a nand of the rom you are keeping on phone. Then flash phoneInstaller.zip. This will install the DRX2 app and copy your phone rom's boot.img to emmc so the app can access it when you want to boot back to the phone rom.

Upgrading roms

rom1upgrader.zip(and rom2,rom3,rom4) can be used to upgrade your rom on emmc. These haven't been well tested. I did test with miui and a GB Sense 2.1/3.0 rom. Using these would be considered doing a no wipe update. If you want to wipe use the rom1installer.zip's. Step are as follows:

1. Wipe phone flash update and any add-on's

2. flash rom1upgrader.zip(or rom2,rom3,rom4) Make sure you flash the one where the rom your upgrading is installed

3. Reboot.

These could also be used if you want to flash add-ons. Flash the rom you currently have installed, flash the add-on, then flash the rom1upgrader. Example:

I have cm7 nightly 90 on slot1

I wipe phone, flash cm7 nightly 90 to phone, flash any add-on's i had flashed previously, flash any new add-on's, flash rom1upgrader.zip

Note: There is definitely a possiblity of typo's in one of the many scripts i had to write for this stuff so if you do have a problem that you post about please post which slot you have the rom installed too. Thanks.

DRX2 app

DRX2 works similar to DRSettings app. Push the button of the rom you want to boot too!!! simple enough right? Push menu for options to set the names of the rom's you have installed. If you set a name for Rom1 while booted in Rom1 the name will show when you boot to rom2, 3, or 4 so you only have to set the names once. There is also an option under menu to mount or umount emmc to pc. I added this because the one downfall of this system is the emmc does not mount to pc when using the mount disk drive options normally. Remember don't delete or move the img's of the rom your booted too.

Additional Scripts

bootRom1.zip, bootRom2.zip, etc...these zips are for the off chance you get stuck in recovery(i.e boot.img did not flash correctly) This shouldn't happen but I like to be safe especially if your not near a pc to fix it. You can flash these zip to boot into any of the 4 roms you have installed from recovery. Of course they will only work if you have a rom installed in the slot you are trying to boot too.

Downloads

Disclaimer-FLASH AT YOUR OWN RISK. You are responsible for what you do to your phone.

All the files you need are in 1 small package!!

V2 Changelog

DRX2 app installed to data/app instead of system/app so that GB sense rom's install it

V3 Changelog

Fixed app's not installing that i broke in v2

V4 Changelog

Fix for AOSP rom's not mounting as ext3(They should work ok as ext2 so if you already have it installed I wouldn't rush to change it. If you start to experience any data corruption then you can update those roms. These won't really affect the sense based rom's as they were already mounting as ext3.)

MultirominstallersV4.zip --old

V5 Changelog

Added a 5 second sleep on boot to give time for phone to mount the partition.

MultiromInstallersV5.zip --old

V6 Changelog

Added upgrader's in with the main package

Switched to ext2 for system.img and added ext2 datadata.img for lag improvements

Note: V6 Requires you to reflash the createimgforrom.zips because of the changes in the setup of the img's.

MultiromV6.zips --latest

Zip's to switch rom's in recovery--Now inclueds boot phone rom zip(I.E. boot-rom1.zip)

AnyKernelUpdater.zip's for DRX2 courtesy of tiny4579

tiny4579 made up some nice zips to replace the kernel on the emmc rom's. You don't even need to be booted into the rom you want to update the kernel on. Take the zImage from kernel/zImage and the files from system/libs/ in the kernel.zip that you downloaded and drop them in the same folders in these zips. These directions probably suck so if I confused you just ask!!!!

Rom1KernelUpdater

Rom2KernelUpdater

Rom3KernelUpdater

Rom4KernelUpdater

Nothing better then user contributions to a project like this so if you come up with something you'd like to share let me know!!!

Upgraders

Upgrader's now bundled in with the main package

Note: Unzip the multirom.zips to get to the flashable zips.

Does not work with CWM2.5...Tested with CWM 3+ Might work with other recoveries.

UnInstalling DRX2

If you want to install a new rom to a slot already in use then just follow the instructions I gave above. The scripts will wipe the img files at install.

If you want to completely uninstall the system just delete the folders off your emmc storage!!

Make sure your booted into a rom installed normally on the phone first!!

Additional thoughts

If the rom does not boot try installing and booting it on the regular phone first.

Any time your copying data from one place to another corruption can occur. If it doesn't work try it a second time. If you have to try again make sure to wipe the phone and reinstall the rom before re-running the installer scripts.

Install all add-on's, new kernels, flashable themes before running the installer script.

You can run the rom on the phone as normal, set it up, try it out and then move it to the emmc slots at any time by running an installer script. It will copy your data over also. In the case that you might want to check the rom out or see how a flashable them looks before installing it to one of the emmc slots.

If you have questions feel free to ask.