This is a port of Tasssadar's MultiROM. MultiROM allows you to boot multiple ROMs on the same device (as well as, in theory, Linux distros, if there were any available for our device, or android-based operating systems such as Ubuntu Touch). ROMs are flashed in the modified recovery, and upon booting the phone, you have a boot menu that will allow you to choose which ROM you want to boot. You can also boot ROMs off of a USB drive connected via an OTG cable (**There are some limitations to this, keep reading for details**).
First of all, I would like to thank Tasssadar because this is 100% his work. If you enjoy MultiROM, feel free to donate to him.
MultiROM in action: http://www.youtube.com/watch?v=SCYh14Zwl3sWarning!
It _is_ dangerous. This whole thing is basically one giant hack - none of these systems are made with multibooting in mind. It is no longer messing with data partition or boot sector, but it is possible that something goes wrong and you will have to flash factory images again. Make backups. Always.Sense ROM Support
MultiROM is now able to boot Sense ROMs (as secondary only), but the process is a little more complicated. See second post for step-by-step instructions (Big thanks to vroad for figuring this out).Tested with ViperDNA 3.10 and UnSenseOne.
Using USB drive
Note 1: Your device must not be encrypted (hint: if you don't know what it is, then it is not encrypted).
MultiROM has 3 parts you need to install:
You current rom will not be erased by the installation.
- MultiROM (multirom-YYYYMMDD-vXX-UNOFFICIAL-dlx.zip)) - download the ZIP file from second post and flash it in recovery.
- Modified recovery (recovery_mrom_YYYYMMDD.img) - download the IMG file from second post and use fastboot or an app such as FlashImageGUI or Flashify to flash it.
- Patched kernel - You absolutely MUST have a kernel with the kexec-hardboot patch on the primary ROM for this to work. Look in the second post for my modified version of crpalmer's kernel that has the necesssary patch, as well as a patched stock CM11 kernel. The post will be updated accordingly for any more kernels that have the necessary patch.
Download links are in the second post.
During installation, recovery lets you select install location. Plug in the USB drive, wait a while and press "refresh" so that it shows partitions on the USB drive. You just select the location and proceed with the installation.Updating/changing ROMs
Note: In theory, FAT32, EXT4, and NTFS partitions should all be supported. However, using a FAT32 partition resulted in a failed flash for me. I have not tried NTFS. If you want to boot off of your USB drive, I recommend putting a dedicated EXT4 partition for booting ROMs. Also, I was unable to boot off of a thumb drive without sharing a kernel with the primary ROM or using a patched kernel on the secondary ROM. So if you are going to do this, any ROM you want to boot off of the USB drive ALSO needs a patched kernel.
If you wanna use other than default FAT32 partition, just format it in PC. If you don't know how/don't know where to find out how, you probably should not try installing MultiROM.
If you are installing to NTFS or FAT32 partition, recovery asks you to set image size for all the partitions - this cannot be easilly changed afterward, so choose carefully. FAT32 is limited to maximum of 4095MB per image - it is limitation of the filesystem, I can do nothing about that.
Installation to USB drives takes a bit longer, because the flash drive is (usually) slower and it needs to create the images, so installation of Ubuntu to 4Gb image on my pretty fast USB drive takes about 20 minutes.
Enumerating USB drive can take a while in MultiROM menu, so when you press the "USB" button in MultiROM, wait a while (max. 30-45s) until it searches the USB drive. It does it by itself, no need to press something, just wait.
1. Primary ROM (Internal)
- Flash ROM's ZIP file as usual, do factory reset if needed (it won't erase secondary ROMs)
- Go to Advanced -> MultiROM in recovery and do Inject curr. boot sector.
2. Secondary Android ROMsExplanation of recovery menus
If you want to change the ROM, delete it and add new one. To update ROM, follow these steps:
- Go to Advanced -> MultiROM -> List ROMs and select the ROM you want to update.
- Select "Flash ZIP" and flash ROM's ZIP file.
- In some cases, you might need to flash patched kernel - get coresponding patched kernel version from second post and flash it to the secondary ROM sama way you flashed ROM's ZIP file.
Main menuSource code
- Add ROM - add ROM to boot
- List ROMs - list installed ROMs and manage them
- Inject boot.img file - When you download a kernel which is distrubuted as whole boot.img, you have to use this option on it, otherwise you would lose MultiROM. (You will likely not need to use this option on the DNA)
- Inject curr. boot sector - Use this option if MultiROM does not show up on boot, for example after kernel installation.
- Settings - well, settings.
- Rename, delete - I believe these are obvious
- Flash ZIP (only Android ROMs) - flash ZIP to the ROM, for example gapps
- Add/replace boot.img - replaces boot.img used by this ROM, this is more like developer option.
MultiROM - https://github.com/Tasssadar/multirom (branch master)Donate to Tasssadar:
Modified TWRP - https://github.com/Tasssadar/Team-Win-Recovery-Project (branch master)
my kernel with kexec-hardboot patch: https://github.com/jamiethemorris/dna-kernel/tree/5.x
kexec-hardboot patch: https://gist.github.com/jamiethemorris/8662539
I'd be glad if you could spare a few bucks. You can use either paypal or Bitcoins, my address is 172RccLB2ffSnJyYwjYbUD3Nx4QX3R8Ris
Thanks to all donors, it is much appreciated
MultiROM for Droid DNA, a Tool/Utility for the HTC Droid DNA
Last Updated 2014-03-16