[MOD][FEB 10] MultiROM v33

Search This thread

Tasssadar

Inactive Recognized Developer
Dec 31, 2010
818
6,128
Brno
tasssadar.github.com
vh3puLb.png
Introduction

MultiROM is one-of-a-kind multi-boot modification, which can boot any Android ROM as well as other systems like Ubuntu Touch, Plasma Active, Bohdi Linux or WebOS port. 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!

I don't own mako, so I can obviously provide only limited support. Big thanks goes to flash5000 and oblikas, who helped me get MultiROM to this device

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.

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 (multirom-YYYYMMDD-vXX-mako.zip) - download the ZIP file from second post and flash it in recovery.
  • Modified recovery (TWRP_multirom_mako_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. You chose this kernel for the primary ROM, so get the version your primary ROM is based of.
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 (guide by Riro Zizo)
* Download both system and UI ZIP files from Firefox OS thread.
* Put both files to your /sdcard and go to recovery, Advanced -> MultiROM -> Add ROM.
* Select Android as ROM type and select "don't share kernel". Tap next, select ZIP file and select the system ZIP of Firefox OS.
* When it is installed, go to Advanced -> MultiROM -> List ROMs -> *name of firefox os ROM* -> Flash ZIP and select the UI ZIP file.​



Using USB drive
I'm told that OTG on mako does not exactly work very well and needs external power supply. If you do that however, MultiROM should be able to use USB drives, the principle is the same on all devices.



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


Donations
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 :)
 

Attachments

  • mrom_screenshot_000.png
    mrom_screenshot_000.png
    43.5 KB · Views: 12,466
  • mrom_screenshot_001.png
    mrom_screenshot_001.png
    72.8 KB · Views: 12,869
  • mrom_screenshot_002.png
    mrom_screenshot_002.png
    76.2 KB · Views: 12,624
  • mrom_screenshot_003.png
    mrom_screenshot_003.png
    26.8 KB · Views: 12,101
  • mrom_screenshot_004.png
    mrom_screenshot_004.png
    40.8 KB · Views: 11,587
  • mrom_screenshot_006.png
    mrom_screenshot_006.png
    42.3 KB · Views: 12,397
  • mrom_screenshot_007.png
    mrom_screenshot_007.png
    44.6 KB · Views: 11,478
  • mrom_screenshot_008.png
    mrom_screenshot_008.png
    43.5 KB · Views: 11,569
  • mrom_screenshot_009.png
    mrom_screenshot_009.png
    76.8 KB · Views: 12,361
  • mrom_screenshot_010.png
    mrom_screenshot_010.png
    51.3 KB · Views: 11,366
  • mrom_screenshot_013.png
    mrom_screenshot_013.png
    54.7 KB · Views: 11,190
Last edited:

Tasssadar

Inactive Recognized Developer
Dec 31, 2010
818
6,128
Brno
tasssadar.github.com
Downloads

1. Main downloads

MultiROM: multirom-20160207-v33-mako.zip
Modified recovery (based on TWRP): TWRP_multirom_mako_20160210.img
MultiROM Manager Android app: Google Play or link to APK

Kernel w/ kexec-hardboot patch (Stock 4.2.2): kernel_kexec_mako_422_jdq.zip
Kernel w/ kexec-hardboot patch (Stock 4.3 (version JWR)): kernel_kexec_mako_430_jwr.zip
Kernel w/ kexec-hardboot patch (Stock 4.3 (version JSS)): kernel_kexec_mako_430_jss.zip
Kernel w/ kexec-hardboot patch (Stock 4.4): kernel_kexec_mako_440.zip
Kernel w/ kexec-hardboot patch (Stock 4.4.1 and 4.4.2): kernel_kexec_mako_441.zip
Kernel w/ kexec-hardboot patch (Stock 4.4.3 and 4.4.4): kernel_kexec_mako_443.zip
Kernel w/ kexec-hardboot patch (Stock 5.0): kernel_kexec_mako_50_final.zip
Kernel w/ kexec-hardboot patch (Stock 5.0.1): kernel_kexec_mako_501.zip
Kernel w/ kexec-hardboot patch (Stock 5.1): kernel_kexec_mako_510.zip
Kernel w/ kexec-hardboot patch (Stock 5.1.1): kernel_kexec_mako_511-2.zip
Kernel w/ kexec-hardboot patch (CM 10.1): kernel_kexec_mako_cm101.zip
Kernel w/ kexec-hardboot patch (CM 10.2 - old): kernel_kexec_mako_cm102_old.zip
Kernel w/ kexec-hardboot patch (CM 10.2 - new): kernel_kexec_mako_cm102-2.zip
Kernel w/ kexec-hardboot patch (CM 11 (4.4 - 4.4.2)): kernel_kexec_mako_cm11-5-a7e944881c.zip
Kernel w/ kexec-hardboot patch (CM 11 (4.4.3 - 4.4.4)): kernel_kexec_mako_cm11-8-56220eb2ca.zip
Kernel w/ kexec-hardboot patch (CM 12): kernel_kexec_mako_cm12-1-791c990ed0.zip
Kernel w/ kexec-hardboot patch (CM 12.1): kernel_kexec_mako_cm121-01-ea9556ceb5.zip
Kernel w/ kexec-hardboot patch (CM 13.0): kernel_kexec_mako_cm13-01-b4a11dbae.zip
You need to have kernel with kexec-hardboot patch only in your primary ROM!

Mirror: http://d-h.st/users/tassadar


3. Uninstaller

MultiROM uninstaller: multirom_uninstaller-mako.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.

4. Flashable factory images ZIPs
I usually release flashable ZIP files based on new factory images from Google, so that you can have clean stock ROM as a secondary system in MultiROM. They are not rooted, no anything, except for occasional small tweaks to make rooting with SuperSU possible. You can find them in this folder on basketbuild or dev-host.


Changelog
Code:
MultiROM v33
=====================
* Updates for Android 6.0 compatibility

MultiROM v32
=====================
* Minor GUI improvements
* Bunch of ROM compatibility fixes

MultiROM v31
=====================
* Add support for "multimount" fstabs
* Support interlaced PNGs (fixes wrongly rendered icons in boot manager, e.g.
  the L icon)

MultiROM v30
=====================
* Fix logs generated by the "emergency reboot" screen, they were incomplete

MultiROM v29
=====================
* Implement "autoboot if no key pressed" mode - the boot manager won't show up
  unless you hold down a volume down button during boot. Must be enabled in
  recovery.
* Android 5.0 preview related tweaks

MultiROM v28
=====================
* Fix freezes in the boot manager
* You can now swipe between the tabs in the boot manager
* Minor UI adjustments
* SailfishOS support (for certain devices)

MultiROM v27
=====================
* Redesign the boot manager GUI. Looks much better now.
* Fix separate radio.img not working on Android L preview ROMs
* Fix issues with unaccessible /sdcard on Android L preview. Do NOT run
  restorecon manually on /data/media, ever - it breaks MultiROM!
* Workaround bug which caused franco.Kernel on N5 to break secondary ROM's
  boot
* Update Ubuntu Touch init scripts
* Use power+volume down (you have to press power first!) to save screenshots.
  They are now PNG images and are saved to /sdcard/Pictures/Screenshots/.

MultiROM v26
=====================
* Fix boot into secondary ROM from the MultiROM Manager app broken in v25

MultiROM v25
=====================
* Add support for the Android L preview

MultiROM v24
=====================
* Add F2FS support
* Show icons in ROM list, configurable via MultiROM Manager app
* Improve compatibility with different ROMs and kernels when booting a ROM
  from the Android app

MultiROM v23
=====================
* Fix compatibility with Ubuntu Touch rev 290 and higher. If your Ubuntu
  installation won't boot, go to recovery and use "Re-patch init" option in
  Advanced -> MultiROM -> List ROMs -> *ubuntu*.

MultiROM v22a
=====================
* Mount the real /data partition to folder /android/realdata in Ubuntu Touch,
  enabling sharing data between Android and Ubuntu Touch. See
  [url]http://bit.ly/ut_sharing[/url] for more info.

MultiROM v22
=====================
* Fix linux-type ROMs (Ubuntu Touch) failing to boot for some users

MultiROM v21c
=====================
* Fix touchscreen not working in boot menu for some users

MultiROM v21
=====================
* Revert "mount /system in secondary ROMs read-only" - if done so, SuperSU
  breaks the boot.

MultiROM v20
=====================
* Support booting ROMs directly from Manager App
* Fix FCs on CyanogenMod-based ROMs
* Fix support for USB drives formatted with NTFS, broken in v17
* Mount /system in secondary ROMs read-only

MultiROM v19a
=====================
* Fix WiFi and mobile data not working in Ubuntu Touch when no custom radio is
  used. This won't affect existing installations unless you run "Re-patch
  init" (see previous changelog entry).

MultiROM v19
=====================
* Implement "boot the last ROM" auto-boot type
* Support for different radio image for each ROM - This works on Ubuntu Touch
  too, but you need to either reinstall it or go to recovery after installing
  v19, MultiROM -> List ROMs -> Select the ROM -> Re-patch init.

MultiROM v18
=====================
* Fix silent-but-unpleasant crash with exFAT

MultiROM v17
=====================
* Changes to support MultiROM Manager app
* Add support for exFAT

MultiROM v16
=====================
* Initial version


Recoveries:
Code:
10.2.2016
=====================
* Fix ZIP selector being set to wrong storage after flashing ZIP to a
  secondary ROM

9.2.2016
=====================
* Update to TWRP 3.0.0 (big thanks to nkk71 for doing most of the work)
* Use Material theme made by z31s1g - thanks!
* Fixes for 6.0 compatibility
* Fixes for SuperSU compatibility. Use BETA 2.67-20160203160253 (
  [url]http://bit.ly/m_su[/url] ) or newer!

30.6.2015
=====================
* Update to TWRP 2.8.7
* Add option to duplicate secondary ROM into "Swap ROMs" section

10.4.2015
=====================
* Fix Ubuntu Touch installation broken in previous update

6.4.2015
=====================
* Fix support for SuperSU 2.47 Beta and higher

2.4.2015
=====================
* Fix UI alignment

28.3.2015
=====================
* Update to TWRP 2.8.6
* Added "restorecon" option to secondary ROMs (in MultiROM -> List ROMs),
  should be used to fix broken SELinux contexts, which can be causing
  bootloops of secondary ROMs
* Bunch of ROM compatibility fixes - recovery now uses entirely new way to
  inject ZIP installation files, which should be much more robust and reliable
* Big ZIPs (> 450MB) are no longer permanently modified when flashed as
  secondary ROMs
* Fix sideloading of big ZIP files (> 450MB) into secondary ROMs

12.2.2015
=====================
* Update to TWRP 2.8.5
* Fix support for ROMs containing a supersu.zip in their installation file
  (e.g. AICP)
* Re-add options for setting a radio.img for secondary ROMs, mistakenly
  removed with last update

15.1.2015
=====================
* Fix "Swap ROMs" feature after the last update

14.1.2015
=====================
* Update to TWRP 2.8.4
* Lots of ZIP compatibility fixes (e.g. for CM 12)

15.11.2014
=====================
* Support for ZIP files which are using the new 'block_image_update' command
  (e.g. SimpleAOSP ROM)

29.10.2014
=====================
* Update to TWRP 2.8.1

21.10.2014
=====================
* Update autoboot settings for MultiROM v29

14.9.2014
=====================
* Update with changes from 2.8.0.1 upstream version: fix a bug that causes
  weird graphics glitches and touch issues

11.9.2014
=====================
* Update to TWRP 2.8.0
* Fix adding ROMs from backup to a FAT32 USB drives
* Remove "share kernel with internal?" from "Add ROM" page, there is usually
  no reason to use it anymore and it might be confusing to figure out what it
  actually does. You can still get the same behavior by clicking "Remove
  boot.img" on the List ROMs -> *rom name* page.

21.8.2014
=====================
* Remove Ubuntu Touch installation, installing via recovery is deprecated
* Add SailfishOS installation (only for supported devices)

8.8.2014
=====================
* Show secondary ROM's name in the title bar while executing it's script (e.g.
  during OTA update)
* Update Ubuntu Touch updater
* Fix failure to swap ROMs if it contains filenames starting with a dot
* Fix add ROM from a backup producing unbootable ROM with Android L preview
* Add option to remove radio.img from secondary ROMs
* Add config options for MultiROM v27

5.6.2014
=====================
* Update to TWRP 2.7.1
* Hide misleading "Mount: Unable to find partition for path '/data'" message
  which appeared during secondary ROM installation, it is not _actually_ an
  error.

4.6.2014
=====================
* Fix installation of bigger (>350MB) ZIPs as secondary ROMs

12.5.2014
=====================
* Fix crash during settings loading, causing a bootloop with certain settings

11.5.2014
=====================
* Add F2FS support
* Add tool to switch F2FS<->ext4 to Advanced menu
* Fix problems with backups introduced by TWRP 2.7.0

8.3.2014
=====================
* Update to TWRP 2.7.0
* Remove "save" button from MultiROM settings page, it is saved automatically
  now
* Some rendering optimizations, resulting in noticeably higher FPS in recovery
* Fix GPG signature verification of Ubuntu Touch installation files
* Add support for mice connected via USB-OTG
* Fixup scrollbar behaviour in file list

24.12.2013
=====================
* Fix installing ROMs to USB drive
* Fix ZIP verification
* Support ZIP verification for secondary ROMs

15.12.2013
=====================
* Support OTA updates on secondary ROMs (tested with omni)
* Add "Swap ROMs" feature
* Implement "boot the last ROM" auto-boot type
* Many bugfixes

10.11.2013 - 01
=====================
* Fix some mounting issues when using ntfs or exFAT
* Use kernel with USB-OTG support

10.11.2013
=====================
* Add exFAT support
* Support system-image based Ubuntu Touch installation
* Support Ubuntu Touch OTA updates, if Ubuntu is installed
  via MultiROM manager app

2.11.2013
=====================
* Update to TWRP 2.6.3.2 - add kernel with SELinux,
  fixes those 4.4 flashable ZIPs

22.10.2013
=====================
* Fix SuperSU reporting "failed" when flashed to secondary ROM
  and completely borking the MultiROM part for any subsequent
  uses of "Flash ZIP" or "Backup" option

16.10.2013
=====================
* Automatically inject boot sector with MultiROM
  after ZIP installation or ADB sideload. Can be
  turned off on "confirm flash" or "ADB sideload"
  pages.
* Fix WiFi and mobile data in Ubuntu Touch. You
  have to reinstall UT.

12.10.2013
=====================
* Support 'adb sideload' when adding ROMs
* Support rotation while using custom recovery theme

6.10.2013
=====================
* Initial mako release
 
Last edited:

Tasssadar

Inactive Recognized Developer
Dec 31, 2010
818
6,128
Brno
tasssadar.github.com
FAQ and other notes
Device encryption
MultiROM doesn't support encryption on Nexus 4 because I don't physically have the device and can't test it.​

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.
Next, MultiROM doesn't work with /data encryption. Not many people who use custom ROMs also use encryption anyway, so that isn't much of a concern.​

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.

Can I have different versions of Android working alongside
Yes. As long as you select "Don't shere kernel" when installing the secondary ROM, the systems are separated.​

MultiROM recovery says it's 2.6.3.0. Why isn't it updated to 2.6.3.*highernumber*?
It is, it just shows wrong version.​

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
 
Last edited:

bobo1337

Senior Member
Nov 8, 2012
444
124
Ok so i whanna flash psx 7.2 and ubuntu touch what kexec i need to download? Thanks :)

Sent from my Nexus 4 using xda app-developers app
 

mi3zu

Senior Member
Mar 17, 2013
69
10
Thanks for bringing this to the mako :)

Is it possible to use 4.2.2 roms with 4.3 roms at the same time? For example Slim with MIUI
 

nikwen

Senior Member
Feb 1, 2013
3,142
1,597
Berlin, Germany
www.nikwen.de
I've got some problems with the current Ubuntu Touch build. (The one from 04-Oct-2013 21:51)

My first ROM is an AOKP (4.3) nightly by Marc Landis.
Then I did this:

  • I installed the MultiROM zip in CWM.
  • Then I flashed the other recovery in fastboot.
  • Afterwards I flashed the patched stock kernel.
  • Then I installed the Ubuntu Touch zips (both as the installer said).
  • The first ROM boots as normal.
  • After some time Ubuntu Touch connects itself to my computer and I see the file manager on my computer with Ubuntu 13.04. I can access the files. However, the screen stays black.

Anyone else having this issue?

Currently, I am downloading the newest build. Let's see if it works with that one.
 

nikwen

Senior Member
Feb 1, 2013
3,142
1,597
Berlin, Germany
www.nikwen.de
Last edited:

bobo1337

Senior Member
Nov 8, 2012
444
124
@tassadar: These builds don't work: http://cdimage.ubuntu.com/ubuntu-touch/daily-preinstalled/20131004.1/ (which are the ones your link does currently point to)

These ones work: http://cdimage.ubuntu.com/ubuntu-touch/daily-preinstalled/20131005/

Thank you very much. Both Ubuntu and AOKP on my smartphone. Great. Thanks. :)

EDIT: However, I cannot get the keyboard to show on that build. So try an old build. ;)

Old build is actually bulid that tass post o_O

Sent from my Nexus 4 using xda app-developers app
 

flash5000

Senior Member
Jul 11, 2009
264
172
A big thank you to @Tasssadar for making this official!
I'll happily help you to test further things if needed.

I tested with Ubuntu Touch build from Sept 29. Seemed to work fine apart from missing Wifi and Cell connections. Do these work with later nightlies, did anyone test this?

Gesendet von meinem Nexus 4 mit Tapatalk 4
 

SynnyG

Senior Member
Jan 14, 2013
878
707
Strasbourg
A big thank you to @Tasssadar for making this official!
I'll happily help you to test further things if needed.

I tested with Ubuntu Touch build from Sept 29. Seemed to work fine apart from missing Wifi and Cell connections. Do these work with later nightlies, did anyone test this?

Gesendet von meinem Nexus 4 mit Tapatalk 4

The Wi-Fi and cell connections doesn't work just for this build or for all?

Sent from my Nexus 4 using xda app-developers app
 

nikwen

Senior Member
Feb 1, 2013
3,142
1,597
Berlin, Germany
www.nikwen.de
A big thank you to @Tasssadar for making this official!
I'll happily help you to test further things if needed.

I tested with Ubuntu Touch build from Sept 29. Seemed to work fine apart from missing Wifi and Cell connections. Do these work with later nightlies, did anyone test this?

Gesendet von meinem Nexus 4 mit Tapatalk 4

I am using this build: http://cdimage.ubuntu.com/ubuntu-touch/daily-preinstalled/20131005/
The one which is marked as "current" didn't work for me.

I haven't tested Wifi or any network operation yet.

Thanks again for testing. :good:
 
  • Like
Reactions: flash5000

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    I was able to recompile the app and switch now inactive Ubuntu Touch repo to the new UBPorts repo.
    You can now install Ubuntu Touch through the app and have dualboot working. There is no new version (last one is 16.04) of UBPorts for the mako, but if there will ever be one, you will be able to try it))
    Screenshot_2024-04-12-09-13-30.png
    Screenshot_2024-04-12-09-13-42.png

    EDIT: Here is a repo on GitHub for cross-checks and also for you to star me there)

    Attached here is APK of the app, multi-rom img for mako and multi-rom zip for mako. Works great with STOCK 5.1.1, haven't tried anything else yet. Feedback will be appreciated.

    How to (simple):
    1. Unlock bootloader (fastboot oem unlock)
    2. Flash recovery (fastboot flash recovery TWRP_multirom_mako_20160210.img)
    3. Reboot to bootloader again (fastboot reboot-bootloader)
    4. Navigate to recovery using volume and power buttons
    5. Send multirom package to the phone (adb push multirom-20160207-v33-mako.zip /sdcard)
    6. Install ZIP file form the sdcard using recovery
    7. Reboot into the system (Recovery will ask you to get root access - do that)
    8. Go in settings, get developer access (tap on build number untill you get notification)
    9. Open superSU app and follow instructions
    10. After you have root access, reboot into Android
    11. Install multi-rom manager app (adb install MultiROMMgr-release.apk)
    12. Open the app, install kernel from the first card
    13. After it is installed, go back into the app. Card "Install Ubuntu Touch) should be available, you can use it now.
    14. After installing UT, you can switch between OS, just reboot and select the one you want
    15. Enjoy and comment if I've helped :)
  • 258
    vh3puLb.png
    Introduction

    MultiROM is one-of-a-kind multi-boot modification, which can boot any Android ROM as well as other systems like Ubuntu Touch, Plasma Active, Bohdi Linux or WebOS port. 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!

    I don't own mako, so I can obviously provide only limited support. Big thanks goes to flash5000 and oblikas, who helped me get MultiROM to this device

    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.

    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 (multirom-YYYYMMDD-vXX-mako.zip) - download the ZIP file from second post and flash it in recovery.
    • Modified recovery (TWRP_multirom_mako_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. You chose this kernel for the primary ROM, so get the version your primary ROM is based of.
    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 (guide by Riro Zizo)
    * Download both system and UI ZIP files from Firefox OS thread.
    * Put both files to your /sdcard and go to recovery, Advanced -> MultiROM -> Add ROM.
    * Select Android as ROM type and select "don't share kernel". Tap next, select ZIP file and select the system ZIP of Firefox OS.
    * When it is installed, go to Advanced -> MultiROM -> List ROMs -> *name of firefox os ROM* -> Flash ZIP and select the UI ZIP file.​



    Using USB drive
    I'm told that OTG on mako does not exactly work very well and needs external power supply. If you do that however, MultiROM should be able to use USB drives, the principle is the same on all devices.



    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


    Donations
    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 :)
    119
    Downloads

    1. Main downloads

    MultiROM: multirom-20160207-v33-mako.zip
    Modified recovery (based on TWRP): TWRP_multirom_mako_20160210.img
    MultiROM Manager Android app: Google Play or link to APK

    Kernel w/ kexec-hardboot patch (Stock 4.2.2): kernel_kexec_mako_422_jdq.zip
    Kernel w/ kexec-hardboot patch (Stock 4.3 (version JWR)): kernel_kexec_mako_430_jwr.zip
    Kernel w/ kexec-hardboot patch (Stock 4.3 (version JSS)): kernel_kexec_mako_430_jss.zip
    Kernel w/ kexec-hardboot patch (Stock 4.4): kernel_kexec_mako_440.zip
    Kernel w/ kexec-hardboot patch (Stock 4.4.1 and 4.4.2): kernel_kexec_mako_441.zip
    Kernel w/ kexec-hardboot patch (Stock 4.4.3 and 4.4.4): kernel_kexec_mako_443.zip
    Kernel w/ kexec-hardboot patch (Stock 5.0): kernel_kexec_mako_50_final.zip
    Kernel w/ kexec-hardboot patch (Stock 5.0.1): kernel_kexec_mako_501.zip
    Kernel w/ kexec-hardboot patch (Stock 5.1): kernel_kexec_mako_510.zip
    Kernel w/ kexec-hardboot patch (Stock 5.1.1): kernel_kexec_mako_511-2.zip
    Kernel w/ kexec-hardboot patch (CM 10.1): kernel_kexec_mako_cm101.zip
    Kernel w/ kexec-hardboot patch (CM 10.2 - old): kernel_kexec_mako_cm102_old.zip
    Kernel w/ kexec-hardboot patch (CM 10.2 - new): kernel_kexec_mako_cm102-2.zip
    Kernel w/ kexec-hardboot patch (CM 11 (4.4 - 4.4.2)): kernel_kexec_mako_cm11-5-a7e944881c.zip
    Kernel w/ kexec-hardboot patch (CM 11 (4.4.3 - 4.4.4)): kernel_kexec_mako_cm11-8-56220eb2ca.zip
    Kernel w/ kexec-hardboot patch (CM 12): kernel_kexec_mako_cm12-1-791c990ed0.zip
    Kernel w/ kexec-hardboot patch (CM 12.1): kernel_kexec_mako_cm121-01-ea9556ceb5.zip
    Kernel w/ kexec-hardboot patch (CM 13.0): kernel_kexec_mako_cm13-01-b4a11dbae.zip
    You need to have kernel with kexec-hardboot patch only in your primary ROM!

    Mirror: http://d-h.st/users/tassadar


    3. Uninstaller

    MultiROM uninstaller: multirom_uninstaller-mako.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.

    4. Flashable factory images ZIPs
    I usually release flashable ZIP files based on new factory images from Google, so that you can have clean stock ROM as a secondary system in MultiROM. They are not rooted, no anything, except for occasional small tweaks to make rooting with SuperSU possible. You can find them in this folder on basketbuild or dev-host.


    Changelog
    Code:
    MultiROM v33
    =====================
    * Updates for Android 6.0 compatibility
    
    MultiROM v32
    =====================
    * Minor GUI improvements
    * Bunch of ROM compatibility fixes
    
    MultiROM v31
    =====================
    * Add support for "multimount" fstabs
    * Support interlaced PNGs (fixes wrongly rendered icons in boot manager, e.g.
      the L icon)
    
    MultiROM v30
    =====================
    * Fix logs generated by the "emergency reboot" screen, they were incomplete
    
    MultiROM v29
    =====================
    * Implement "autoboot if no key pressed" mode - the boot manager won't show up
      unless you hold down a volume down button during boot. Must be enabled in
      recovery.
    * Android 5.0 preview related tweaks
    
    MultiROM v28
    =====================
    * Fix freezes in the boot manager
    * You can now swipe between the tabs in the boot manager
    * Minor UI adjustments
    * SailfishOS support (for certain devices)
    
    MultiROM v27
    =====================
    * Redesign the boot manager GUI. Looks much better now.
    * Fix separate radio.img not working on Android L preview ROMs
    * Fix issues with unaccessible /sdcard on Android L preview. Do NOT run
      restorecon manually on /data/media, ever - it breaks MultiROM!
    * Workaround bug which caused franco.Kernel on N5 to break secondary ROM's
      boot
    * Update Ubuntu Touch init scripts
    * Use power+volume down (you have to press power first!) to save screenshots.
      They are now PNG images and are saved to /sdcard/Pictures/Screenshots/.
    
    MultiROM v26
    =====================
    * Fix boot into secondary ROM from the MultiROM Manager app broken in v25
    
    MultiROM v25
    =====================
    * Add support for the Android L preview
    
    MultiROM v24
    =====================
    * Add F2FS support
    * Show icons in ROM list, configurable via MultiROM Manager app
    * Improve compatibility with different ROMs and kernels when booting a ROM
      from the Android app
    
    MultiROM v23
    =====================
    * Fix compatibility with Ubuntu Touch rev 290 and higher. If your Ubuntu
      installation won't boot, go to recovery and use "Re-patch init" option in
      Advanced -> MultiROM -> List ROMs -> *ubuntu*.
    
    MultiROM v22a
    =====================
    * Mount the real /data partition to folder /android/realdata in Ubuntu Touch,
      enabling sharing data between Android and Ubuntu Touch. See
      [url]http://bit.ly/ut_sharing[/url] for more info.
    
    MultiROM v22
    =====================
    * Fix linux-type ROMs (Ubuntu Touch) failing to boot for some users
    
    MultiROM v21c
    =====================
    * Fix touchscreen not working in boot menu for some users
    
    MultiROM v21
    =====================
    * Revert "mount /system in secondary ROMs read-only" - if done so, SuperSU
      breaks the boot.
    
    MultiROM v20
    =====================
    * Support booting ROMs directly from Manager App
    * Fix FCs on CyanogenMod-based ROMs
    * Fix support for USB drives formatted with NTFS, broken in v17
    * Mount /system in secondary ROMs read-only
    
    MultiROM v19a
    =====================
    * Fix WiFi and mobile data not working in Ubuntu Touch when no custom radio is
      used. This won't affect existing installations unless you run "Re-patch
      init" (see previous changelog entry).
    
    MultiROM v19
    =====================
    * Implement "boot the last ROM" auto-boot type
    * Support for different radio image for each ROM - This works on Ubuntu Touch
      too, but you need to either reinstall it or go to recovery after installing
      v19, MultiROM -> List ROMs -> Select the ROM -> Re-patch init.
    
    MultiROM v18
    =====================
    * Fix silent-but-unpleasant crash with exFAT
    
    MultiROM v17
    =====================
    * Changes to support MultiROM Manager app
    * Add support for exFAT
    
    MultiROM v16
    =====================
    * Initial version


    Recoveries:
    Code:
    10.2.2016
    =====================
    * Fix ZIP selector being set to wrong storage after flashing ZIP to a
      secondary ROM
    
    9.2.2016
    =====================
    * Update to TWRP 3.0.0 (big thanks to nkk71 for doing most of the work)
    * Use Material theme made by z31s1g - thanks!
    * Fixes for 6.0 compatibility
    * Fixes for SuperSU compatibility. Use BETA 2.67-20160203160253 (
      [url]http://bit.ly/m_su[/url] ) or newer!
    
    30.6.2015
    =====================
    * Update to TWRP 2.8.7
    * Add option to duplicate secondary ROM into "Swap ROMs" section
    
    10.4.2015
    =====================
    * Fix Ubuntu Touch installation broken in previous update
    
    6.4.2015
    =====================
    * Fix support for SuperSU 2.47 Beta and higher
    
    2.4.2015
    =====================
    * Fix UI alignment
    
    28.3.2015
    =====================
    * Update to TWRP 2.8.6
    * Added "restorecon" option to secondary ROMs (in MultiROM -> List ROMs),
      should be used to fix broken SELinux contexts, which can be causing
      bootloops of secondary ROMs
    * Bunch of ROM compatibility fixes - recovery now uses entirely new way to
      inject ZIP installation files, which should be much more robust and reliable
    * Big ZIPs (> 450MB) are no longer permanently modified when flashed as
      secondary ROMs
    * Fix sideloading of big ZIP files (> 450MB) into secondary ROMs
    
    12.2.2015
    =====================
    * Update to TWRP 2.8.5
    * Fix support for ROMs containing a supersu.zip in their installation file
      (e.g. AICP)
    * Re-add options for setting a radio.img for secondary ROMs, mistakenly
      removed with last update
    
    15.1.2015
    =====================
    * Fix "Swap ROMs" feature after the last update
    
    14.1.2015
    =====================
    * Update to TWRP 2.8.4
    * Lots of ZIP compatibility fixes (e.g. for CM 12)
    
    15.11.2014
    =====================
    * Support for ZIP files which are using the new 'block_image_update' command
      (e.g. SimpleAOSP ROM)
    
    29.10.2014
    =====================
    * Update to TWRP 2.8.1
    
    21.10.2014
    =====================
    * Update autoboot settings for MultiROM v29
    
    14.9.2014
    =====================
    * Update with changes from 2.8.0.1 upstream version: fix a bug that causes
      weird graphics glitches and touch issues
    
    11.9.2014
    =====================
    * Update to TWRP 2.8.0
    * Fix adding ROMs from backup to a FAT32 USB drives
    * Remove "share kernel with internal?" from "Add ROM" page, there is usually
      no reason to use it anymore and it might be confusing to figure out what it
      actually does. You can still get the same behavior by clicking "Remove
      boot.img" on the List ROMs -> *rom name* page.
    
    21.8.2014
    =====================
    * Remove Ubuntu Touch installation, installing via recovery is deprecated
    * Add SailfishOS installation (only for supported devices)
    
    8.8.2014
    =====================
    * Show secondary ROM's name in the title bar while executing it's script (e.g.
      during OTA update)
    * Update Ubuntu Touch updater
    * Fix failure to swap ROMs if it contains filenames starting with a dot
    * Fix add ROM from a backup producing unbootable ROM with Android L preview
    * Add option to remove radio.img from secondary ROMs
    * Add config options for MultiROM v27
    
    5.6.2014
    =====================
    * Update to TWRP 2.7.1
    * Hide misleading "Mount: Unable to find partition for path '/data'" message
      which appeared during secondary ROM installation, it is not _actually_ an
      error.
    
    4.6.2014
    =====================
    * Fix installation of bigger (>350MB) ZIPs as secondary ROMs
    
    12.5.2014
    =====================
    * Fix crash during settings loading, causing a bootloop with certain settings
    
    11.5.2014
    =====================
    * Add F2FS support
    * Add tool to switch F2FS<->ext4 to Advanced menu
    * Fix problems with backups introduced by TWRP 2.7.0
    
    8.3.2014
    =====================
    * Update to TWRP 2.7.0
    * Remove "save" button from MultiROM settings page, it is saved automatically
      now
    * Some rendering optimizations, resulting in noticeably higher FPS in recovery
    * Fix GPG signature verification of Ubuntu Touch installation files
    * Add support for mice connected via USB-OTG
    * Fixup scrollbar behaviour in file list
    
    24.12.2013
    =====================
    * Fix installing ROMs to USB drive
    * Fix ZIP verification
    * Support ZIP verification for secondary ROMs
    
    15.12.2013
    =====================
    * Support OTA updates on secondary ROMs (tested with omni)
    * Add "Swap ROMs" feature
    * Implement "boot the last ROM" auto-boot type
    * Many bugfixes
    
    10.11.2013 - 01
    =====================
    * Fix some mounting issues when using ntfs or exFAT
    * Use kernel with USB-OTG support
    
    10.11.2013
    =====================
    * Add exFAT support
    * Support system-image based Ubuntu Touch installation
    * Support Ubuntu Touch OTA updates, if Ubuntu is installed
      via MultiROM manager app
    
    2.11.2013
    =====================
    * Update to TWRP 2.6.3.2 - add kernel with SELinux,
      fixes those 4.4 flashable ZIPs
    
    22.10.2013
    =====================
    * Fix SuperSU reporting "failed" when flashed to secondary ROM
      and completely borking the MultiROM part for any subsequent
      uses of "Flash ZIP" or "Backup" option
    
    16.10.2013
    =====================
    * Automatically inject boot sector with MultiROM
      after ZIP installation or ADB sideload. Can be
      turned off on "confirm flash" or "ADB sideload"
      pages.
    * Fix WiFi and mobile data in Ubuntu Touch. You
      have to reinstall UT.
    
    12.10.2013
    =====================
    * Support 'adb sideload' when adding ROMs
    * Support rotation while using custom recovery theme
    
    6.10.2013
    =====================
    * Initial mako release
    50
    FAQ and other notes
    Device encryption
    MultiROM doesn't support encryption on Nexus 4 because I don't physically have the device and can't test it.​

    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.
    Next, MultiROM doesn't work with /data encryption. Not many people who use custom ROMs also use encryption anyway, so that isn't much of a concern.​

    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.

    Can I have different versions of Android working alongside
    Yes. As long as you select "Don't shere kernel" when installing the secondary ROM, the systems are separated.​

    MultiROM recovery says it's 2.6.3.0. Why isn't it updated to 2.6.3.*highernumber*?
    It is, it just shows wrong version.​

    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
    24
    Okay, let's talk about Ubuntu Touch.
    The method we're using to install Touch now (the ZIP files) is deprecated, and _might_ be the cause of some problems. It is now supposed to be installed via phablet-flash tool, as described on Ubuntu Touch wiki. It basically downloads files from http://system-image.ubuntu.com, pushes them to the device along with "installation script" file and lets their modified recovery do the installation itself.
    Installation isn't a problem, right now I can do the same thing as Touch's recovery and run their installation script on secondary ROM. Problem is downloading those installation files - they are not sorted by anything a human could use, they are supposed to be downloaded by an application which parses metadata and selects the right files accordingly. I could modify phablet-flash tool to download files for MultiROM and to not rewrite my TWRP with their recovery, but that would still be a bit problematic (you need Ubuntu on your PC to run phablet-flash). So, I'm thinking an Android app - some kind of "MultiROM manager", which could install/update MultiROM and recovery and also download the right Ubuntu Touch files, which would then be installed via recovery. The catch here is that the Android app would need to download ~250-300 MB of data, which might not be something you want to be doing on WiFi.
    What do you think?

    It is a bit hard for me to make things work properly for mako, too, as I don't have the device. By the way, mobile data won't work unless you remove PIN from your SIM card - the interface to unlock simcard isn't there yet.

    BTW, I also managed to make Ubuntu Touch OTA updates work with MultiROM.
    20
    MultiROM v17, new recovery and the MultiROM Manager app were released. MultiROM now supports exFAT.

    The manager app can install or update MultiROM, it's recovery and kernels, display changelogs and install Ubuntu Touch. Ubuntu builds this app installs are different from the ZIPs you were using up until this point (ZIPs are now deprecated), so it should work a little bit better and OTA updates with these builds work with MultiROM (updates from the GUI, not apt-get upgrade).

    Thanks all beta testers for testing and reporting bugs, it is much appreciated.