[Roms]DualRom-The dual booting solution for Incredible. Use any Rom!!(Update)4-26-11

Search This thread

Team ADX

Member
Oct 31, 2010
48
42
In a Yellow Submarine
I had to fix the number 2 zip becuase it wasn't giving flash_image execute permissions. Updated version in OP. If you've already flashed dualrom just boot into phone rom then boot to recovery and run zip 2 again.
 

khanam

Senior Member
Jul 26, 2010
1,741
248
Miami
now i want to exchange the bolt back to the inc (had given it to my daughter)... was waiting for this for a long long time - thought uncorrupted would come to the inc first.

this should be spectacular...
 

khanam

Senior Member
Jul 26, 2010
1,741
248
Miami
@conap - you got a bolt too in your team too i hope. i am going to try this on my daughter's phone but would love it if its available for the bolt too. i hated leaving the inc for the bolt since the dev community on the inc was already so good but the big screen with the fact that i got middle aged eyes made all the difference. ridiculous 4g speeds helped too but i hate hate the battery life for anybody who is curious.
 
  • Like
Reactions: daftlush

Conap

Retired Recognized Developer
Apr 1, 2010
1,350
232
@conap - you got a bolt too in your team too i hope. i am going to try this on my daughter's phone but would love it if its available for the bolt too. i hated leaving the inc for the bolt since the dev community on the inc was already so good but the big screen with the fact that i got middle aged eyes made all the difference. ridiculous 4g speeds helped too but i hate hate the battery life for anybody who is curious.

we do have a bolt on our team and we have discussed it a little bit so keep an eye out over there...there is a huge dev community on the tbolt so I'm sure there will be plenty of good stuff once they get some of those bugs ironed out.

On a side note for those interested in the process of this what had to be done since we couldn't split up the 6.5gb partition we had to store all the files in one partition and then create symlinks to get the phone to think there was a data and cache partitions to run from. It took a little while to get it to mount and symlink things at the right time for the boot process but in the end it was much more stable then having it on an external sd card. I'm sure there will be issues that will come from having the files all together but a wider testing audience will help sort all that out. The same process should work for the bolt as it has a similar setup with the internal memory.

Edit: I just looked up edify scripts and yes that's what this has so the newer clockwork should work fine...I've been using these scripts for a long time didn't realize that was what they were called lol...
 
Last edited:

tiny4579

Inactive Recognized Developer
Jan 15, 2011
9,327
5,060
Just wanted to say it is a great idea and considering I don't currently use emmc at all as it's not well supported which means I finally will have a use for the 6.5 GB. I load CM7 right now and would love to dual boot with a custom sense rom. I could avoid flashing between ROMS once I have a favorite sense rom.
 

chad0989

Senior Member
Oct 31, 2010
1,883
9,424
The only downside for this is that it uses the entire 6.5Gb of internal storage that the incredible has. The reason it does is because the emmc which includes the 6.5GB of internal storage also includes the 750mb's for the data partition and the 200mb's for the cache partition of the phone. For this reason HTC has locked this from being repartitioned. I did not find a way to unlock it although there probably is.

Yeah, this is annoying. I had previously tinkered with trying to move some of the mtd partitions onto the emmc so that we could ditch yaffs for ext3/4 which could potentially speed things up. Hopefully its possible and we can find a way to unlock it. Not sure if its permanently partitioned or if they're just specified somewhere like the mtd partitions.
 

dccoh

Senior Member
Jul 8, 2010
488
59
Grand Rapids
Questions

Trying to wrap my head around this. I have 2 questions:

How will this affect the use of Titanium Backup, and what about kernels that are AOSP Specific and that dont behave well with Sense.

I use Chad's kernel, and love the voltage tweaking enough that I wouldnt use another kernel for sense unless it was comparable in performance/snappiness/battary.

Thanks.
 

corypaul

Senior Member
Aug 13, 2008
720
11
Let meh get this straight...Can I change the internal rom to anything I want it or do it have to be that sense froyo rom or cm7 rom he provided

Sent from my ADR6300 using XDA App
 

smtom

Senior Member
Aug 26, 2010
853
55
Cool stuff! Thanks for sharing.

Sent from my ADR6300 using XDA Premium App
 

Mr. Rager

Senior Member
Dec 25, 2010
139
4
Charleston
Trying to wrap my head around this. I have 2 questions:

How will this affect the use of Titanium Backup, and what about kernels that are AOSP Specific and that dont behave well with Sense.

I use Chad's kernel, and love the voltage tweaking enough that I wouldnt use another kernel for sense unless it was comparable in performance/snappiness/battary.

Thanks.

+1 and what about gallery and other apps that look for emmc in either internal or phone rom

Sent from my ADR6300 using XDA Premium App
 

sitoekim

Member
Jan 29, 2011
22
0
dual boot

I have been waiting for this for a while now. As soon as i got off of work i saw that this was available and flash it flawlessly. This is amazing. I switched back and forth doing things in both the roms. This is very very cool. Thank you. Will let you know if I have any problems. The first thing I am going to do is switch up the froyo rom that is on here. This is cool!
 

Conap

Retired Recognized Developer
Apr 1, 2010
1,350
232
Trying to wrap my head around this. I have 2 questions:

How will this affect the use of Titanium Backup, and what about kernels that are AOSP Specific and that dont behave well with Sense.

I use Chad's kernel, and love the voltage tweaking enough that I wouldnt use another kernel for sense unless it was comparable in performance/snappiness/battary.

Thanks.

Titanium should work find. As long as the phone is booted the rom you have booted "thinks" it's installed in the normal fashion on the phone. The rom's use seperate kernels. Flashing a kernel in recovery is only going to affect the rom installed normally on the phone.

+1 and what about gallery and other apps that look for emmc in either internal or phone rom

Sent from my ADR6300 using XDA Premium App
.
Anything that looks for emmc just won't find it. It will think you are using a phone that does not have the emmc and will just default to the sdcard



Let meh get this straight...Can I change the internal rom to anything I want it or do it have to be that sense froyo rom or cm7 rom he provided

Sent from my ADR6300 using XDA App


No the internalrom needs to be one of the 2 i have provided. The normal rom on your phone can be changed to whatever you want.
 

DHowett

Member
Sep 6, 2009
40
23
I just modified MIUI 1.4.15 to provide dualboot (or just "install to emmc and boot from it") capabilities, and I was wondering about one of your design decisions.

The initramfs can contain symlinks (cpio supports it) - so why maintain the symlinks with scripts? I added the proper symlinks to the archive, switched out the system partition and removed data & datadata mounting, and it worked. No need to change all references to /data in init.*.rc to /system/data (and the same for cache.) or mess much with mounting/remounting/unmounting.

I also idly wondered why you kept /data mounting in the Sense Froyo internalrom; you mount it and then immediately unmount it after a filesystem check. It would save a couple seconds during booting to just chop those things completely out, I imagine.

Other than those few questions/complaints, great work! This is awesome.

I worry a bit about constantly reflashing mtd@boot though. :(

EDIT:
I keep experiencing mild corruption in /system on mmcblk0p3 (I/O errors for, like, lost+found, or build.prop) - Maybe HBOOT attempts to update some FAT fields that are -ENOTEXIST in ext2/3? Just like it enforces a partition layout, that is.

OH, I wonder! Maybe we can leverage device mapper like the asec system does, and store a bunch of different system images as files in /emmc (FAT32). More than dual-boot, and DRSettings could store boot images next to them (/emmc/CM7.system.img, /emmc/CM7.boot.img, /emmc/SenseFroyo(...))

I might prototype a system like this, if that's alright.
 
Last edited:

Conap

Retired Recognized Developer
Apr 1, 2010
1,350
232
I just modified MIUI 1.4.15 to provide dualboot (or just "install to emmc and boot from it") capabilities, and I was wondering about one of your design decisions.

The initramfs can contain symlinks (cpio supports it) - so why maintain the symlinks with scripts? I added the proper symlinks to the archive, switched out the system partition and removed data & datadata mounting, and it worked. No need to change all references to /data in init.*.rc to /system/data (and the same for cache.) or mess much with mounting/remounting/unmounting.

I also idly wondered why you kept /data mounting in the Sense Froyo internalrom; you mount it and then immediately unmount it after a filesystem check. It would save a couple seconds during booting to just chop those things completely out, I imagine.

Other than those few questions/complaints, great work! This is awesome.

I worry a bit about constantly reflashing mtd@boot though. :(

EDIT:
I keep experiencing mild corruption in /system on mmcblk0p3 (I/O errors for, like, lost+found, or build.prop) - Maybe HBOOT attempts to update some FAT fields that are -ENOTEXIST in ext2/3? Just like it enforces a partition layout, that is.

OH, I wonder! Maybe we can leverage device mapper like the asec system does, and store a bunch of different system images as files in /emmc (FAT32). More than dual-boot, and DRSettings could store boot images next to them (/emmc/CM7.system.img, /emmc/CM7.boot.img, /emmc/SenseFroyo(...))

I might prototype a system like this, if that's alright.

I originally attempted to symlink it in the init.rc but it just never seemed to work right for me but maybe i was doing it wrong. The only reason i left the mounting of data and then unmounting is because it seemed to take some time for the phone to mount the emmc partition and it wasn't finding it at boot so i left some of that stuff in there to stall it basically untill the emmc would mount.

As far as flashing mtd@boot when I used my eris and was deving on it I must have flashed rom's 5 to 6 times a day for many months and the eris was still fine. I'm personally not booting back and forth with this constantly so it won't be any more flashes for me then i'm use to.

I had tried mounting the image files as loop when we did a dualboot for the eris but I couldn't get it myself but I am sure it would be possible....
 

Top Liked Posts

  • There are no posts matching your filters.
  • 16
    The below info will remain for historical informations but this system has been replaced by a better system found at http://xdaforums.com/showthread.php?t=1100777


    DualRom ***Dual boot 2 roms on your Droid Incredible***

    Team ADX presents your dual booting solution for the Droid Incredible. Please Read entire post before using any of the zips given. Undo zip in second post to put your phone back to the state it was in before flashing these zips.

    I have added some empty shells to allow people to use any rom. See bottom of first posts.
    DualRom comes in DualRomSenseFroyo and DualRomCM7. We wanted to give you the option to basically use the opposite of what you would use as your normal rom. CM7 is CM7. It was compiled from CM7 source and only made changes needed for it to boot off interanl storage. SenseFroyo is stock rom with Ziggy's kernel to allow overclocking. I did not remove any bloat since you will have over 5GB's free so there is plenty of room. I don't use sense roms so I'm not familiar with what sense tweaks are out there but I may research and make changes to the sense rom in future updates. I chose these roms because I wanted roms that would be very stable right out of the box. This is a new method for dual booting and there hasn't been any wide testing yet so you should still consider this Beta till there is more feedback. Everything has been stable in the limited testing. All feedback encouraged and appreciated.

    DualRom Terminology for this post

    PhoneRom - refers to the rom that is installed normally on your phone
    InternalRom - refers to the DualRom version that you install

    drreboot.png
    storage.png



    * Who is Team ADX?

    For those that don't know us Team ADX was formed by a few Dev's from the HTC Droid Eris. We collaborate on projects together even though we've all branched to different phones. Team ADX is Conap, Workshed, and Gnarlyc. Conap has the Droid Incredible and will handle most of the support in this thread. The Team ADX account is usually only used for the op and all follow posts will be done with our personall accounts.

    * Why would you want 2 roms on your phone?

    Sometimes you can't decide between Sense and CM/Aosp roms. Both have thier benifits and both have thier downfalls. Why not have both on your phone. For app developers this is a great solution so that you can easily test your apps on Sense and Aosp roms. Also it's just another cool reason to root right?

    * Any downside to this?

    The only downside for this is that it uses the entire 6.5Gb of internal storage that the incredible has. The reason it does is because the emmc which includes the 6.5GB of internal storage also includes the 750mb's for the data partition and the 200mb's for the cache partition of the phone. For this reason HTC has locked this from being repartitioned. I did not find a way to unlock it although there probably is. I personally don't use the internal storage on my phone at all since most apps defaut to sdcard. If you don't use or need to use your internal storage this is a great alternative to what you can use it for. I tested many methods which included putting the rom on SD card or rearanging the partitions where the normal rom is stored and I found this method to be most stable and the least intrusive to your normal rom.

    * How does it work?

    With this DualRom setup you will be able to keep your current rom and even change your current rom on your phone in the normal fashion you are used too. There is a zip file to flash before flashing your DualRom that will set up your current rom to work with DualRom. It only makes minor changes to your current rom and I will explain that during install instructions. The DualRom will then get installed to the internal storage of the phone. An app called DR Reboot written by Conap specifically for this setup will be installed in both roms that will let you boot back and forth between the 2 roms. There will also be zips automatically added to your sd card that will allow you to choose which rom you want to boot to from recovery.

    * Is this risky?

    With any phone modification done with root there is always risk involved. From my testing I determined the phone would not let me repartition the internal storage therefore not letting me screw up the phone. As long as you use the zips we provide there should be no issues. As always though flash at your own risk!!!!

    * Is this compatible with my rom?

    DualRom should work with any rom you use. For the DR Reboot app to work you will need a rom with busybox installed but that is pretty standard. If DR Reboot does not work for you you can use recovery to boot back and forth. The zip you flash in recovery only takes a few seconds so this is still a much faster option then doing nandroid/restore's.

    * How do I install this? What do the zips do?


    The zip files are named with a number to start. Flash in the order of the numbers. All my testing was done with CWM v2.5.1.2.

    1DRPrep-setupEMMCforRomFlash.zip We flash this zip first. All it does is change the filesystem of the internal storage partition(6.5gb) from fat32 to ext3. THIS WILL ERASE ALL FILES FROM YOUR INTERNAL STORAGE. Please backup any files you want to keep. This zip can also be used to reformat if you decide you want to switch from one version of DualRom to another(i.e. Sense to CM7). This zip will take a few minutes to flash so be patient.(I know my progress bars don't move right in recovery but it is working).

    2SetupPhoneRomForDualBoot.zip We flash this second. This zip will do a couple of things. It installs the app into your current rom that will allow you to boot back and forth. It also backups the boot.img from your current rom to your sdcard so that it can use it when you want to boot back to the Phone Rom. It add's another zip to sdcard that allows you to boot back to Phone Rom from recovery. It also adds an edited vold.fstab to your current rom so that your phone will not complain that it can no longer fine the interal storage since your using it for something else. If you have dualrom already installed and decide to flash another normal rom to your phone you can just re-run this zip after flashing the normal rom.

    3DualRomSenseFroyo.zip or 3DualRomCM7.zip These are the actuall roms. They will install the rom to the internal partition and also put a zip on your sdcard that allows you to boot the internal storage rom from recovery if you need too. Please flash only one of these.


    * I've installed it now what?

    Once you have flashed the first 3 zips your phone is ready to reboot. Reboot the phone and it will boot to the internalrom. This is a first boot so it will take a few minutes but not really longer then the first boot on a normal rom. Once it boots go through the normal setup of the rom. Then you can look in the app drawer and you well see DR Reboot app. I would reccomend placing a shortcut to this on a home screen somewhere for ease of access. Open DR reboot and from there you can reboot to the phone rom, internal rom, or recovery.(See Photo at top of post) You can still use the normal reboot options of the rom if you want to boot back into the same rom you are in. Alternativley you can boot to recovery and flash the bootphonerom.zip or the boot-internal.zip's to boot to either rom. These are a backup mainly in case the DR Reboot app malfunctions (occasionally it fails to flash the boot.img)and you need to get back into one rom or the other. I would not delete them from the sdcard. That's it....use the roms as normal and boot back and forth as you wish.

    * My phone won't reboot to the phonerom even after flashing the phonerom.zip in recovery?

    This is why we do a nandroid backup. Restore it now and then reflash the 2SetupPhoneRomForDualBoot.zip.


    * What about tweaks/zips/themes?


    If the phone is booted into either rom then anything you apply will get applied to the rom you are booted in...(i.e. metamorph). Keep in mind I have not tested much as of yet with the internal rom but in theory it will work fine. The phone rom will continue to work as normal. Any flashable tweaks/themes will only affect the phone rom. The install scripts would need to be modified to apply them to the internal rom. It shouldn't be too hard to modify them and I will try to post some instructions on that later.

    * What about ADB?

    ADB will acess what ever rom you have booted at the time.

    * Will this allow us to boot other operating systems(i.e. WM, IOS)?

    No they are not bootable on android devices and don't know if they ever will be. This will allow us to boot larger Rom Ports as some of the Rom's are getting larger then our internal storage.

    ** KEY POINTS TO REMEMBER
    1. Everytime you flash a normal rom please flash 2SetupPhoneRomForDualBoot.zip after to update your stored boot.img.
    2. Try to stick with more stable tweaks on the internalrom untill we can work out a easy way to wipe data/cache or a way to make a reliable nand.
    3. Nandroid is your friend. Don't forget to do your normal Nandroid's in recovery for the phonerom before flashing any zips.
    4. Zips are numbered in order so you can flash them in order.
    5. Enjoy your 2 roms!!!

    ** TODO List
    1. Make data/cache wipes available
    2. Watch to see if the roms sharing the .android_secure folder on sd is going to be a big problem. So far in my testing is has not been an issue.
    3. Make some type of Nandroid available...We have a something but it's not very reliable so working on a more stable method.

    *Thanks to:

    Cyanogenmod for thier great work http://www.cyanogenmod.com/
    Htc I guess for sense and for making quality phones.
    Ziggy471 for his kernel http://www.ziggy471.com/
    TeamADX members for all they do!!!
    XDA member unCoRrUpTeD for getting me interested in Dual Booting
    Everyone and anyone who contributes to open source projects

    Downloads
    FLASH AT YOUR OWN RISK

    1DRPrep-setupEMMCforRomFlash.zip - THIS ZIP WILL ERASE EVERYTHING ON YOUR INTERNAL STORAGE WHEN FLASHED. YOU HAVE BEEN WARNED MD5-ea34104a4b8ee11ee3d6442c13c0f93c

    2SetupPhoneRomForDualBootV2.zip MD5-f2a55ed14f720332cfe9f88d32918a9f
    V2 fixes flash_image binary not having execute permissions causing phone to not boot from phone rom to internal rom. Make sure you are on phonerom and reboot to recovery and just flash this zip if you've already installed DualRom.

    3DualRomSenseFroyoV2.zip
    V2 includes update boot.img that i added in the test zip i posted. That's the only change.

    DRSenseUpdatetoV2.zip
    If you flashed v1 of sensefroyo you can just flash this to update so you don't need to wipe.

    3DualRomCM7v3.zip
    v3
    Updated to CM7.02 Stable
    v2
    Adds new boot.img that automatically fixes the filesystem on reboot.

    DRCM7v2Update.zip
    Updates DRCM7 to v2 with no wipe if you already have DualRomCM7 installed.

    How can I use other roms with this?

    I made some rom "shells". You can open the zip of the rom you want to use and drag the system and data folders and drop them in the "shell" zip. There is a shell for miui 2.3, cm/aosp 2.3, and Sense 2.2. This way you all have the option to use any rom without me releasing other peoples work.

    MIUI-GB-shell.zip

    Sense-2.2-shell.zip

    CM-AOSP-GB-shell.zip
    5
    * What if I want my phone back to normal?

    This Zip will completely undo the changes to your phone rom and will reformat your internal storage back to fat32 so it can be used for storage again.
    UndoDualRom.Zip

    * Nandroid Backup and Restore

    DualRomNandroid.zip Boot to your internal rom and then boot to recovery. Then flash this zip in recovery and it will create a folder called DR on your sdcard in /DualRom/backups/. If you want to make multiple backups then you can rename the DR folder to whatever you want. If you want to restore the backup just rename the folder back to DR. If your only making one backup you can leave it named DR. If you make another backup without renaming the folder then it will overwrite the old backup.

    DualRomNandroidRestore.zip Guess what this does :)...flash this to restore the backup you made with the DualRomNandroid.zip. This script will restore from the DualRom/backups/DR/ folder on your sdcard. Rename whichever backup you want to restore back to DR.

    All zips are provide as is. Use at your own risk.
    If you have suggestions/ideas/improvements feel free to let us know. I will note here that I have looked at symlinking the database's for mms and phone logs so they would show on both roms but it seems to cause issues. I beleive the issues have something to do with CM7/2.3 databases is not the same as Sense/2.2 database. I know people have had problems when trying to restore that type of data when switching roms so it's probably the same case here. If anyone has idea's or knowledge more in depth on that issue feel free to share!!!!
    1
    So how does this work with SMS/phone logs? If I get a text while on one ROM, and switch to the other, will it still be read with the other? Same thing for phone calls.

    This looks like a groundbreaking project, and I look forward to trying this out

    Currently they act independently of each other so you will only see it on the rom booted up. At some point I will attempt to merge them as much as possilbe. I will need to test what backups and databases are compatible between CM and Sense.
    1
    very cool. OMFGB and OMGB at the same time xD
    1
    @conap - you got a bolt too in your team too i hope. i am going to try this on my daughter's phone but would love it if its available for the bolt too. i hated leaving the inc for the bolt since the dev community on the inc was already so good but the big screen with the fact that i got middle aged eyes made all the difference. ridiculous 4g speeds helped too but i hate hate the battery life for anybody who is curious.