• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[MOD][SEP 25][MULTIBOOT] MultiROM v32a

Status
Not open for further replies.
Search This thread

TheStrix

Recognized Developer
May 10, 2014
680
6,372
Mumbai
TheStrix.github.io
vh3puLb.png
Introduction

MultiROM is one-of-a-kind multi-boot mod for Nexus 5. 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
1. Via MultiROM Manager app
This is the easiest way to install everything MultiROM needs. Install the app and select MultiROM and recovery on the Install/Update card. If the Status card says Kernel: doesn't have kexec-hardboot patch! in red letters, you have to install also patched kernel - either select one on the Install/Update card or get some 3rd-party kernel here on XDA. You are chosing kernel for your primary ROM, not any of your (future) secondary ROMs, so select the version accordingly.
Press "Install" on the Install/Update card to start the installation.

2.Manual 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.

MultiROM has 3 parts you need to install:
  • MultiROM (multirom-YYYYMMDD-vXX-armani.zip) - download the ZIP file from second post and flash it in recovery.
  • Modified recovery (TWRP_multirom_armani_YYYYMMDD.img) - 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.

Currently dual booting MIUI isn't working! So DO NOT try to dual boot MIUI with LP/KK ROMs.

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 5.0 after first boot (with dalvik cache generated and connected to google account) takes about 676mb of space.​



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

Credits

@Tasssadar (for making this awesome utility!)
@KINGbabasula (armani's multirom is possible cz of him!)
@akhilnarang (He's the person who's always present to help! Cheers!)
@vasishath (For pointing out the fix for white glitch)
All my dear testers! Thanks for testing!


XDA:DevDB Information
MultiROM for Xiaomi Redmi 1S, Tool/Utility for the Xiaomi Redmi 1S

Contributors
TheStrix
Source Code: https://github.com/multirom-armani/


Version Information
Status: Stable
Current Stable Version: 32a

Created 2015-09-05
Last Updated 2015-09-25
 

Attachments

  • mrom2.png
    mrom2.png
    88.5 KB · Views: 10,554
  • mrom1.png
    mrom1.png
    98.3 KB · Views: 9,728
  • mrom3.png
    mrom3.png
    95.9 KB · Views: 5,961
  • mrom4.png
    mrom4.png
    96.1 KB · Views: 5,737
  • mrom5.png
    mrom5.png
    98.1 KB · Views: 9,039
  • mrom6.png
    mrom6.png
    98.7 KB · Views: 5,547
  • mrom7.png
    mrom7.png
    90.8 KB · Views: 5,342
Last edited:

TheStrix

Recognized Developer
May 10, 2014
680
6,372
Mumbai
TheStrix.github.io
Downloads

1. Main downloads

MultiROM: multirom-20150925-v32a-armani.zip
Modified recovery (based on TWRP): TWRP_multirom-armani_20150925.img
MultiROM Manager Android app: Google Play or link to APK (NEW!)

Kernel w/ kexec-hardboot patch (LP ROMs): LP_kexec_20150925.zip
Kernel w/ kexec-hardboot patch (KK ROMs): KK_kexec_20150925.zip
You need to have kernel with kexec-hardboot patch only in your primary ROM!

2. third-party kernels with kexec-hardboot patch
  • Yet to come! :)

Nicely ask your kernel developer to merge kexec-hardboot patch.​

3. Uninstaller

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


Changelog
Code:
04/09/2015-MultiROM v32
==========
* Initial stable release for armani

25/09/2015-MultiROM v32a
==========
* Fix white noise while booting secondary ROMs
* Added new updated KK and LP kexec patched kernels


Recoveries:
Code:
04/09/2015
==========
* Initial stable release for armani
* MultiROM TWRP 2.8.7

25/09/2015
==========
* Upstream changes
 
Last edited:

TheStrix

Recognized Developer
May 10, 2014
680
6,372
Mumbai
TheStrix.github.io
FAQ and other notes
Device encryption
Since v32, MultiROM supports encryption on this device (it has to be added for each device separately). It works only with Android-based secondary ROMs and the secondary ROMs don't know the device is encrypted, so they would allow you to encrypt the device again - do not do that. If you're using password, pin or pattern for the encryption, MultiROM will ask you for the password on boot. If you're booting the primary ROM, then Android will ask you for the password _again_ - unfortunately, there is no way for me to pass the "unencrypted" status to Android. If you're booting secondary ROM, MultiROM will ask you for the password again after the reboot - that's because I have to unencrypt the /data partition after the ROM's kernel is loaded.

I could omit the second password prompt when booting secondary ROM by temporarily saving the password somewhere, but that's obviously unsafe. So is using encryption with unlocked device though, so I might add this later.​

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.

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.


Will you port MultiROM to device X?
No, probably. I won't port MultiROM to any device I don't own, because it is very difficult to provide the level of support I want to provide if I can't test things myself, as proven by the Nexus 4 port. I'd like to support more devices, but it is also very unsatisfying to work on code for device I don't have - I invest hours upon hours of time for free into it, and then I can't even see it running on the device, so...why..bother..?
I'll probably keep buying Nexus devices and keep porting MultiROM to those myself, but I can't buy every single device - I'm still a student, all my existing devices were bought using some kind of money grant or donations from users.
But, you can port it yourself, the wiki should give you at least some idea how to do that: https://github.com/Tasssadar/multirom/wiki/Porting-MultiROM


Installation Video

Thanks to YouTuber Dhananjay Bhosale (@TheDj408) for making this awesome installation video!

 
Last edited:

TheStrix

Recognized Developer
May 10, 2014
680
6,372
Mumbai
TheStrix.github.io
GREAT WORK , THANKS BUDDY !!
Can you upload some Screenshots/Images/Video for better understanding :)

Screenshots added in "Screenshots" tab ;)


And for installation video, I'll wait for some great YouTuber's to make one. Till that you can see multirom installation video for other devices which are using manual method and not Multirom app method to install multirom.
 

doylefermi

Senior Member
Mar 6, 2014
141
170
Awesomeeeeeeeeeeeeeeeeeeeeeeee.

Thank you @TheStrix . Awesome work and something this device needs with tons of ROMs. Waiting for MIUI + CM dual boot . Would love to see that . And with the upcoming of sailfish OS redmi is gonna rock .
 
Last edited:
  • Like
Reactions: TheStrix
E

elmumtaz

Guest
Great work ... Will this support r the same with the other project like EFIDroid? Its like having native grub loader into the phone :)
Sent from somewhere on earth
 
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 44
    vh3puLb.png
    Introduction

    MultiROM is one-of-a-kind multi-boot mod for Nexus 5. 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
    1. Via MultiROM Manager app
    This is the easiest way to install everything MultiROM needs. Install the app and select MultiROM and recovery on the Install/Update card. If the Status card says Kernel: doesn't have kexec-hardboot patch! in red letters, you have to install also patched kernel - either select one on the Install/Update card or get some 3rd-party kernel here on XDA. You are chosing kernel for your primary ROM, not any of your (future) secondary ROMs, so select the version accordingly.
    Press "Install" on the Install/Update card to start the installation.

    2.Manual 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.

    MultiROM has 3 parts you need to install:
    • MultiROM (multirom-YYYYMMDD-vXX-armani.zip) - download the ZIP file from second post and flash it in recovery.
    • Modified recovery (TWRP_multirom_armani_YYYYMMDD.img) - 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.

    Currently dual booting MIUI isn't working! So DO NOT try to dual boot MIUI with LP/KK ROMs.

    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 5.0 after first boot (with dalvik cache generated and connected to google account) takes about 676mb of space.​



    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

    Credits

    @Tasssadar (for making this awesome utility!)
    @KINGbabasula (armani's multirom is possible cz of him!)
    @akhilnarang (He's the person who's always present to help! Cheers!)
    @vasishath (For pointing out the fix for white glitch)
    All my dear testers! Thanks for testing!


    XDA:DevDB Information
    MultiROM for Xiaomi Redmi 1S, Tool/Utility for the Xiaomi Redmi 1S

    Contributors
    TheStrix
    Source Code: https://github.com/multirom-armani/


    Version Information
    Status: Stable
    Current Stable Version: 32a

    Created 2015-09-05
    Last Updated 2015-09-25
    28
    FAQ and other notes
    Device encryption
    Since v32, MultiROM supports encryption on this device (it has to be added for each device separately). It works only with Android-based secondary ROMs and the secondary ROMs don't know the device is encrypted, so they would allow you to encrypt the device again - do not do that. If you're using password, pin or pattern for the encryption, MultiROM will ask you for the password on boot. If you're booting the primary ROM, then Android will ask you for the password _again_ - unfortunately, there is no way for me to pass the "unencrypted" status to Android. If you're booting secondary ROM, MultiROM will ask you for the password again after the reboot - that's because I have to unencrypt the /data partition after the ROM's kernel is loaded.

    I could omit the second password prompt when booting secondary ROM by temporarily saving the password somewhere, but that's obviously unsafe. So is using encryption with unlocked device though, so I might add this later.​

    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.

    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.


    Will you port MultiROM to device X?
    No, probably. I won't port MultiROM to any device I don't own, because it is very difficult to provide the level of support I want to provide if I can't test things myself, as proven by the Nexus 4 port. I'd like to support more devices, but it is also very unsatisfying to work on code for device I don't have - I invest hours upon hours of time for free into it, and then I can't even see it running on the device, so...why..bother..?
    I'll probably keep buying Nexus devices and keep porting MultiROM to those myself, but I can't buy every single device - I'm still a student, all my existing devices were bought using some kind of money grant or donations from users.
    But, you can port it yourself, the wiki should give you at least some idea how to do that: https://github.com/Tasssadar/multirom/wiki/Porting-MultiROM


    Installation Video

    Thanks to YouTuber Dhananjay Bhosale (@TheDj408) for making this awesome installation video!

    26
    Downloads

    1. Main downloads

    MultiROM: multirom-20150925-v32a-armani.zip
    Modified recovery (based on TWRP): TWRP_multirom-armani_20150925.img
    MultiROM Manager Android app: Google Play or link to APK (NEW!)

    Kernel w/ kexec-hardboot patch (LP ROMs): LP_kexec_20150925.zip
    Kernel w/ kexec-hardboot patch (KK ROMs): KK_kexec_20150925.zip
    You need to have kernel with kexec-hardboot patch only in your primary ROM!

    2. third-party kernels with kexec-hardboot patch
    • Yet to come! :)

    Nicely ask your kernel developer to merge kexec-hardboot patch.​

    3. Uninstaller

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


    Changelog
    Code:
    04/09/2015-MultiROM v32
    ==========
    * Initial stable release for armani
    
    25/09/2015-MultiROM v32a
    ==========
    * Fix white noise while booting secondary ROMs
    * Added new updated KK and LP kexec patched kernels


    Recoveries:
    Code:
    04/09/2015
    ==========
    * Initial stable release for armani
    * MultiROM TWRP 2.8.7
    
    25/09/2015
    ==========
    * Upstream changes
    5
    GREAT WORK , THANKS BUDDY !!
    Can you upload some Screenshots/Images/Video for better understanding :)

    Screenshots added in "Screenshots" tab ;)


    And for installation video, I'll wait for some great YouTuber's to make one. Till that you can see multirom installation video for other devices which are using manual method and not Multirom app method to install multirom.
    5
    Multirom v32a

    So guys, here's a new update.
    You can now install multirom in a click! Thanks to @Tasssadar again!
    App link: Play Store


    Changelog:
    • Fixed white noise while booting secondary ROMs.
      [*]Added new updated KK and LP kexec patched kernels.

    Download links in OP.

    Note to developers: I have made a change in kexec patch so please use updated kexec patch if you want to.

    PzXUn5x.png
    RDfkNtO.png
    0oNKcIj.png