[MOD] MultiROM v33b

Do you use MultiROM on AOSP ROMs or CM11s?

  • AOSP

    Votes: 422 39.3%
  • CM11s

    Votes: 653 60.7%

  • Total voters
    1,075
Search This thread

KINGbabasula

Inactive Recognized Developer
Jan 28, 2013
2,301
5,167
Treviso
Introduction

vh3puLb.png


MultiROM is one-of-a-kind multi-boot mod for Oneplus One. It can boot any Android ROM as well as other systems like Ubuntu Touch, once they are ported to that device. Besides booting from device's internal memory, MultiROM can boot from USB drive connected to the device via OTG cable. The main part of MultiROM is a boot manager, which appears every time your device starts and lets you choose ROM to boot. You can see how it looks on the left image below and in gallery. ROMs are installed and managed via modified TWRP recovery. You can use standard ZIP files to install secondary Android ROMs and MultiROM even has its own installer system, which can be used to ship other Linux-based systems.

Features:
* Multiboot any number of Android ROMs
* Restore nandroid backup as secondary ROM
* Boot from USB drive attached via OTG cable

You can also watch a video which shows it in action.



Warning!

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



Installation
Firstly, there are videos on youtube. If you want, just search for "MultiROM installation" on youtube and watch those, big thanks to all who made them. There is also an awesome article on Linux Journal.

You can install it either from MultiROM Manager app or from this guide:

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:
  • MultiROM - download the ZIP file from second post and flash it in recovery.
  • Modified recovery - download the IMG file from second post and use fastboot or Flashify app to flash it.
  • Patched kernel - You can use either one of the stock ones in second post or third-party kernels which include the patch, you can see list in the second post. Download the ZIP file and flash it in recovery.
You current rom will not be erased by the installation.
Download links are in the second post.



Adding ROMs
1. Android
Go to recovery, select Advanced -> MultiROM -> Add ROM. Select the ROM's zip file and confirm. As for the space, clean installation of stock 4.2 after first boot (with dalvik cache generated and connected to google account) takes 676mb of space.​

2. Ubuntu Touch
Use the MultiROM Manager app to install Ubuntu Touch.

Ubuntu Touch is in development - MultiROM will have to be updated to keep up with future changes in Ubuntu, so there's a good chance this method stops working after a while and I'll have to fix it.

3. Firefox OS
Firefox OS is just another Android ROM from MultiROM's point of view, so add it as if it were Android​



Using USB drive
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 (extX, NTFS and FAT32 partitions are supported) and proceed with the installation.
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.​



Updating/changing ROMs

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



Source code

Thanks a lot to Tasssadar for creating this awesome utility.

Thanks to ATMOSF3AR for his Oneplus One template

XDA:DevDB Information
MultiROM, Tool/Utility for the OnePlus One

Contributors
KINGbabasula
Source Code: https://github.com/Tasssadar/multirom


Version Information
Status: Stable
Current Stable Version: 33

Created 2014-08-02
Last Updated 2016-04-17
 

Attachments

  • rsz_multirom.png
    rsz_multirom.png
    237.5 KB · Views: 48,753
  • rsz_1multirom.png
    rsz_1multirom.png
    44.2 KB · Views: 54,518
Last edited:

KINGbabasula

Inactive Recognized Developer
Jan 28, 2013
2,301
5,167
Treviso
Reserved

Downloads

1. Main downloads

MultiROM: Zip

Modified recovery (based on TWRP): recovery.img

Kernel with kexec hardboot patch:
Supported kernels: AK, Furnace

You need to have kernel with kexec-hardboot patch only in primary ROM

Nicely ask your kernel developer to merge this https://github.com/KINGbabasula/and...mmit/af5ef3d76f863f02c51cf860702b01536620ebf5.​

3. Uninstaller

MultiROM uninstaller: Zip
Flash this ZIP file to remove MultiROM from your device. It will erase all secondary ROMs. If you don't want MultiROM menus in recovery, re-flash clean TWRP, but it is not needed - those menus don't do anything if MultiROM is not installed.
 
Last edited:

KINGbabasula

Inactive Recognized Developer
Jan 28, 2013
2,301
5,167
Treviso
Reserved

FAQ and other notes
About security
In order to make multi-booting possible, MultiROM has to sacrifice some security measures. Firstly, on secondary Android ROMs, /system is not mounted read-only. While there are other things preventing malicious software from messing with /system, this might potentialy make it easier for such software to attack that system.​

What do the ROMs share?
All ROMs are separate, except /sdcard, which is shared between all Android ROMs.​

How many ROMs can I have?/Where are the ROMs stored?
You can have as many ROMs as you can fit in your /sdcard. All the ROMs are stored in /sdcard/multirom/roms or on an USB drive. This folder is unaccessible in Android, to prevent mediascanner from scanning it. You can either in recovery, or obtain root and go to /data/media/0/multirom/roms.

Where can I find files from other ROMs?
http://xdaforums.com/showpost.php?p=58563378&postcount=1864

Can I have different versions of Android working alongside? How to use KitKat and Lollipop at the same time?
Yes. The systems are separated.
guide on Kitakt + Lollipop: http://xdaforums.com/oneplus-one/ge...ips-tricks-t3027926/post58776196#post58776196

The menu with all the ROMs won't show up during boot, how to fix it?
Either re-flash the MultiROM zip or go to recovery, Advanced -> MultiROM -> Inject curr. boot sector.

The reason for this is that something rewrote your boot.img, which happens for example when you flash a kernel. MultiROM's boot menu is part of the boot image, so it has to be added into it again.

The boot animation shows after a few seconds on primary ROMs, why?
Because the framebuffer gets blanked for a few seconds after it gets closed by MultiROM.​

Can I use MultiROM without root?
Yes, if you don't use MultiROM Manager app but flash everything manually​

Will I get OTAs when I have MultiROM installed? Do I lose secondary ROMs after an OTA?
Probably not, you will have to install them manually and you'll have to reinstall MultiROM
No, you won't lose secondary ROMs​

My secondary ROM doesn't boot, what should I do?
Probably you forgot to inject current boot sector once, MultiROM didn't run, so /data SELinux context is set to secondary ROMs that are in /data/media so secondary /system has /data contexts.
Go into recovery Advanced > MultiROM > List ROMs > Choose the non booting ROM > Run restorecon
This will fix SELinux contexts and the ROM will boot again​

Help Videos
Install MultiROM

Install OxygenOS as secondary ROM
 
Last edited:

KINGbabasula

Inactive Recognized Developer
Jan 28, 2013
2,301
5,167
Treviso
Woot !!!!!!! Donation incoming, as promised :D

Also, what kernel is yours based on ?

And finally, is it compatible with official multirom manager ?

My kernel is cm11 (not cm11s)with kexec. So it won't work on cm11s, Paranoid android and cm11s based roms.
Tomorrow is the last time I'll use pc before leaving so I may add support in multirom manager and build an unofficial version of the app because it's not officially supported
 

dansou901

Inactive Recognized Contributor
Apr 10, 2012
3,121
1,209
33
Aachen
OnePlus 5
OnePlus Nord
That is really nice to have, am looking forward to use it. If the Multirom Manager app is usable here, will it be possible to install Ubuntu Touch or has it first to be ported to this phone? Just asking because I always wanted to try out Ubuntu...
 

KINGbabasula

Inactive Recognized Developer
Jan 28, 2013
2,301
5,167
Treviso
That is really nice to have, am looking forward to use it. If the Multirom Manager app is usable here, will it be possible to install Ubuntu Touch or has it first to be ported to this phone? Just asking because I always wanted to try out Ubuntu...
First we need a working ubuntu touch port. I don't think it will be too hard to do. The opo is very similar to nexus 5
 

dansou901

Inactive Recognized Contributor
Apr 10, 2012
3,121
1,209
33
Aachen
OnePlus 5
OnePlus Nord
Anyone got everything up and running yet? Attempting to install MR now.

I'm just about to start doing this...

---------- Post added at 04:32 PM ---------- Previous post was at 04:12 PM ----------

OK, multibooting ColorOS and MIUI doesn't work, will continue testing with other ROMs...

---------- Post added at 04:37 PM ---------- Previous post was at 04:32 PM ----------

And another thing... For me boot menu is visible...
 

KINGbabasula

Inactive Recognized Developer
Jan 28, 2013
2,301
5,167
Treviso
I'm just about to start doing this...

---------- Post added at 04:32 PM ---------- Previous post was at 04:12 PM ----------

OK, multibooting ColorOS and MIUI doesn't work, will continue testing with other ROMs...
That's because you need a kernel with kexec hardboot patch in secondary rom too. So you need a special kernel for color os and a special one for miui. You may try instlling the rom choosing "share kernel" option so it will use main rom kernel which has kexec
 
  • Like
Reactions: reyradi

KINGbabasula

Inactive Recognized Developer
Jan 28, 2013
2,301
5,167
Treviso
I'm just about to start doing this...

---------- Post added at 04:32 PM ---------- Previous post was at 04:12 PM ----------

OK, multibooting ColorOS and MIUI doesn't work, will continue testing with other ROMs...

---------- Post added at 04:37 PM ---------- Previous post was at 04:32 PM ----------

And another thing... For me boot menu is visible...
WHAT! I have black screen :|
 

KINGbabasula

Inactive Recognized Developer
Jan 28, 2013
2,301
5,167
Treviso
If I try to share kernel between ColorOS and MIUI, MIUI won't boot (black screen after selecting it from the boot menu)...
Well that's expected because they use different kernels. The solution is to compile miui kernel with kexec patch and color os kernel with kexec patch. I tried only cm based roms. I'm on cm11 and I can boot slim and mahdi sharing kernel
 

Top Liked Posts

  • There are no posts matching your filters.
  • 262
    Introduction

    vh3puLb.png


    MultiROM is one-of-a-kind multi-boot mod for Oneplus One. It can boot any Android ROM as well as other systems like Ubuntu Touch, once they are ported to that device. Besides booting from device's internal memory, MultiROM can boot from USB drive connected to the device via OTG cable. The main part of MultiROM is a boot manager, which appears every time your device starts and lets you choose ROM to boot. You can see how it looks on the left image below and in gallery. ROMs are installed and managed via modified TWRP recovery. You can use standard ZIP files to install secondary Android ROMs and MultiROM even has its own installer system, which can be used to ship other Linux-based systems.

    Features:
    * Multiboot any number of Android ROMs
    * Restore nandroid backup as secondary ROM
    * Boot from USB drive attached via OTG cable

    You can also watch a video which shows it in action.



    Warning!

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



    Installation
    Firstly, there are videos on youtube. If you want, just search for "MultiROM installation" on youtube and watch those, big thanks to all who made them. There is also an awesome article on Linux Journal.

    You can install it either from MultiROM Manager app or from this guide:

    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:
    • MultiROM - download the ZIP file from second post and flash it in recovery.
    • Modified recovery - download the IMG file from second post and use fastboot or Flashify app to flash it.
    • Patched kernel - You can use either one of the stock ones in second post or third-party kernels which include the patch, you can see list in the second post. Download the ZIP file and flash it in recovery.
    You current rom will not be erased by the installation.
    Download links are in the second post.



    Adding ROMs
    1. Android
    Go to recovery, select Advanced -> MultiROM -> Add ROM. Select the ROM's zip file and confirm. As for the space, clean installation of stock 4.2 after first boot (with dalvik cache generated and connected to google account) takes 676mb of space.​

    2. Ubuntu Touch
    Use the MultiROM Manager app to install Ubuntu Touch.

    Ubuntu Touch is in development - MultiROM will have to be updated to keep up with future changes in Ubuntu, so there's a good chance this method stops working after a while and I'll have to fix it.

    3. Firefox OS
    Firefox OS is just another Android ROM from MultiROM's point of view, so add it as if it were Android​



    Using USB drive
    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 (extX, NTFS and FAT32 partitions are supported) and proceed with the installation.
    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.​



    Updating/changing ROMs

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



    Source code

    Thanks a lot to Tasssadar for creating this awesome utility.

    Thanks to ATMOSF3AR for his Oneplus One template

    XDA:DevDB Information
    MultiROM, Tool/Utility for the OnePlus One

    Contributors
    KINGbabasula
    Source Code: https://github.com/Tasssadar/multirom


    Version Information
    Status: Stable
    Current Stable Version: 33

    Created 2014-08-02
    Last Updated 2016-04-17
    106
    Reserved

    Downloads

    1. Main downloads

    MultiROM: Zip

    Modified recovery (based on TWRP): recovery.img

    Kernel with kexec hardboot patch:
    Supported kernels: AK, Furnace

    You need to have kernel with kexec-hardboot patch only in primary ROM

    Nicely ask your kernel developer to merge this https://github.com/KINGbabasula/and...mmit/af5ef3d76f863f02c51cf860702b01536620ebf5.​

    3. Uninstaller

    MultiROM uninstaller: Zip
    Flash this ZIP file to remove MultiROM from your device. It will erase all secondary ROMs. If you don't want MultiROM menus in recovery, re-flash clean TWRP, but it is not needed - those menus don't do anything if MultiROM is not installed.
    72
    Reserved

    FAQ and other notes
    About security
    In order to make multi-booting possible, MultiROM has to sacrifice some security measures. Firstly, on secondary Android ROMs, /system is not mounted read-only. While there are other things preventing malicious software from messing with /system, this might potentialy make it easier for such software to attack that system.​

    What do the ROMs share?
    All ROMs are separate, except /sdcard, which is shared between all Android ROMs.​

    How many ROMs can I have?/Where are the ROMs stored?
    You can have as many ROMs as you can fit in your /sdcard. All the ROMs are stored in /sdcard/multirom/roms or on an USB drive. This folder is unaccessible in Android, to prevent mediascanner from scanning it. You can either in recovery, or obtain root and go to /data/media/0/multirom/roms.

    Where can I find files from other ROMs?
    http://xdaforums.com/showpost.php?p=58563378&postcount=1864

    Can I have different versions of Android working alongside? How to use KitKat and Lollipop at the same time?
    Yes. The systems are separated.
    guide on Kitakt + Lollipop: http://xdaforums.com/oneplus-one/ge...ips-tricks-t3027926/post58776196#post58776196

    The menu with all the ROMs won't show up during boot, how to fix it?
    Either re-flash the MultiROM zip or go to recovery, Advanced -> MultiROM -> Inject curr. boot sector.

    The reason for this is that something rewrote your boot.img, which happens for example when you flash a kernel. MultiROM's boot menu is part of the boot image, so it has to be added into it again.

    The boot animation shows after a few seconds on primary ROMs, why?
    Because the framebuffer gets blanked for a few seconds after it gets closed by MultiROM.​

    Can I use MultiROM without root?
    Yes, if you don't use MultiROM Manager app but flash everything manually​

    Will I get OTAs when I have MultiROM installed? Do I lose secondary ROMs after an OTA?
    Probably not, you will have to install them manually and you'll have to reinstall MultiROM
    No, you won't lose secondary ROMs​

    My secondary ROM doesn't boot, what should I do?
    Probably you forgot to inject current boot sector once, MultiROM didn't run, so /data SELinux context is set to secondary ROMs that are in /data/media so secondary /system has /data contexts.
    Go into recovery Advanced > MultiROM > List ROMs > Choose the non booting ROM > Run restorecon
    This will fix SELinux contexts and the ROM will boot again​

    Help Videos
    Install MultiROM

    Install OxygenOS as secondary ROM
    52
    Maybe, but using the same exact patch on a newer kernel worked fine...
    It just so happens the HOX uses a T3 chip just like grouper, so the same patch as tasssader.

    Anyways, just throwing around problems I faced, look at the ramdisk after kexec,
    Is it the new ramdisk you expect or the one from the main ROM.

    Well, as I said the problem was video driver, they are still using that old kernel from August without dual dsi, so I had to use the hack I made for cm11s, it was the same problem. Also here they don't have cache partition in their fstab :eek: (also they have weird external sdcard references in it :|), so I built this zip with the "fixes" (hacks) to boot Oxygen OS as secondary. After installing Oxygen and seeing what they have done with the kernel and other system files I can say it sucks even more than I thought. Anyone who wants to run Oxygen as secondary can use the zip in the attachments, I'm not pushing it MultiROM app, at least for now, because it uses a weird trick. If I find a better way to manage the problem, I'll surely release it.
    39
    I'm sorry for this long absence, I hope you can forgive me, I working on the Marshmallow version, with new TWRP 3