[Mi 3 Android Development] vasishath:
​

Introduction

MultiROM is one-of-a-kind multi-boot mod for Nexus 7. It 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, daily prebuilt image files to install Ubuntu Touch 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

* Use for example Ubuntu Touch or Desktop alongside with Android, without the need of device formatting

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 messing with boot sector and data partition. 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

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 2 parts you need to install:

MultiROM (multirom.zip) - download the ZIP file from second post and flash it in recovery.

Modified recovery (recovery.img) - download the IMG file from second post and use fastboot or Flashify app to flash it.

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

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.

In some cases, you might need to flash patched kernel - get coresponding patched kernel version from second post and flash it to the secondary ROM sama way you flashed ROM's ZIP file.

Explanation of recovery menus

Main menu

- Add ROM - add ROM to boot

- List ROMs - list installed ROMs and manage them

- Inject boot.img file - When you download for example kernel, which is distrubuted as whole boot.img (eg. franco kernel), you have to use this option on it, otherwise you would lose MultiROM.

- Inject curr. boot sector - Use this option if MultiROM does not show up on boot, for example after kernel installation.

- Settings - well, settings.

Manage ROM

- Rename, delete - I believe these are obvious

- Flash ZIP (only Android ROMs) - flash ZIP to the ROM, for example gapps

- Add/replace boot.img - replaces boot.img used by this ROM, this is more like developer option.

- Re-patch init - this is available only for ubuntu. Use it when ubuntu cannot find root partition, ie. after apt-get upgrade which changed the init script.​

Source code

MultiROM - https://github.com/nkk71/multirom

Modified TWRP - https://github.com/nkk71/Team-Win-Recovery-Project​

XDA:DevDB Information

MultiROM, ROM for the Xiaomi Mi 3

Contributors

vasishath

Source Code: https://github.com/nkk71/multirom

ROM OS Version: 7.x Nougat

ROM Kernel: Linux 3.4.x

Version Information

Status: Beta

Beta Release Date: 2017-03-27

Created 2017-03-16

Last Updated 2017-11-18