[Xiaomi Mi Max ROMs, Kernels, Recoveries, & Other D] jackeagle:
​

Note : Not Tested on Helium hence not supported

Introduction

MultiROM is one-of-a-kind multi-boot mod for Xiaomi Mi Max (Hydrogen). It can boot any Android ROM as well as other systems like Ubuntu Touch, Plasma Active, Bohdi Linux or WebOS port, once they are ported to our 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, 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.​

This is still very experimental!

This has been tested with most popular Rom's of Xiaomi Mi Max (Android MM and N based).

*Please, keep in mind that if you've updated to latest N firmware in your primary ROM, you won't be able to boot MM as secondary any more. If you are on MM firmware then only ROMs built with MM blobs will work, doesn't matter MM or N. If you are on N Firmware then only ROMs built with N blobs will work in MultiROM.

Make backups. Seriously. Please.

Features:

* Multiboot any number of Android ROMs

* Restore nandroid backup as secondary ROM

* Boot from USB drive (Not yet implemented)

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 (We do not have Official Support, so this is not an option for us yet)

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 (If you want to use Kexec) - 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:

Modified recovery - download the IMG file from second post and use fastboot 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 boot.img and flash it in recovery by selecting image flash and flash it to boot parition. This can be avoid using no-kexec workaround in latest MultiROM versions.

MultiROM - download the ZIP file from second post and flash it in recovery.

Your current ROM will not be erased by the installation.​

Adding ROMs

Android

Go to recovery, select MultiROM -> Add ROM. Select the ROM's zip file and confirm.

Once Installation is complete. Go to MultiRom --> List Rom's --> Select the installed secondary Rom --> Remove Boot.img

Done!

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)

Flash Kexec-hardboot patched kernel (either the kernel linked in second post or any third party kernel which supports kexec-hardboot (NOT needed when using no-kexec workaround in TWRP -> MultiROM Settings)

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.

Note that swapping roms between internal and external is not supported (yet). Also, after flashing a factory image to the primary system and boot partition, make sure to immediately inject MultiROM before first boot, otherwise the secondary ROMs will be deleted.

Source code

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

Modified TWRP - https://github.com/multirom-hydrogen/Team-Win-Recovery-Project

Kernel w/ kexec-hardboot patch - https://github.com/multirom-hydrogen/kernel_xiaomi_msm8956

Device tree - https://github.com/multirom-hydrogen/android_device_xiaomi_hydrogen
​

Credits

This work is based on the hard work of @Tassadar (MultiROM), @nkk71 (no-kexec), 500 Internal Server Error, Geoff Levand, webgeek1234, Mike Kasick, Npjohnson, @jackeagle, Hashbang173, and many others. Thank you.

My Team mates @k2wl @Rohan purohit @TechExhibeo @Vatsal. (Thank you very much guys! :))

Issues

MIUI is not supported (You should be able to boot MIUI as secondary with latest release if you're still using a MM firmware in your primary ROM).

USB OTG Support is not yet Implemented and will be done in future releases. (It should work in latest releases)

- If you find one that this thread does not know about/hasn't answered (solid rule, read the last three pages of the thread befre reporting an issue), report it on the specific repo in question.

- IF YOU GET LOCKED OUT OF YOUR DEVICE: Don't worry! Your data is fine. Simply boot to TWRP, choose 'Advanced' ==> 'Terminal Command' ==> type "rm -rf /data/system/gatekeeper.*.key" (without the quotes). This is a dirty fix, and should only be used to recover data, not as a permanent solution! After you recover your data, wipe /data (you don't have to wipe Internal Storage), and re-setup the device.

NOTE:

Third party kernel developers if you have merged Kexec-hardboot support kindly PM me linking to your kernel sources with confirmation about the working. So that I can add your kernel here in supported kernel list :)

Extra Information

I ask that no one build targeting the Xiaomi Mi Max using our source and post it publicly ( distribution is forbidden). Of course, I welcome and ask that anyone who wants to pull request changes in to do so!

XDA:DevDB Information

MultiRom-Xiaomi Mi Max (Hydrogen), Tool/Utility for the Xiaomi Mi Max

Contributors

jackeagle, BitOBSessiOn

Source Code: https://github.com/multirom-hydrogen

Version Information

Status: Stable

Current Stable Version: Stable 1

Stable Release Date: 2016-12-20

Current Beta Version: NO-KEXEC version

Beta Release Date: 2017-01-14

Created 2016-12-20

Last Updated 2017-03-25