[HTC 10 ROMs, Kernels, Recoveries, & Other Developm] nkk71:
​

You use this tool at your own risk!!

I have tried to put as many safeguards as I can,

but I cannot be held accountable for any soft-bricks, hard-bricks, loss of data and/or information,

or anything else going wrong.​

Introduction

MultiROM is one-of-a-kind multi-boot mod for HTC 10. 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

* Boot from USB drive attached via OTG cable

​

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 (actually the no-kexec workaround is messing with your boot sector), but it is possible that something goes wrong and you will have to flash factory images again.

Make backups. Always.​

Now seriously: HTC 10 Warnings!

Beware of Dragons, Goblins, Gremlins and lingering primary_boot.img(RIP)

Due to lack of kexec-hardboot kernel support, I am messing with your boot partition!​

Since we lack kernels with kexec-hardboot patch, I'm using a workaround to bypass that restriction, and although tested successfully on the HTC One M7, M8, M9, and HTC 10, as well as several other devices I'm not involved with, things can still go wrong, since I'm directly flashing your boot partition.

I have yet to see any negative effect of that, and version 4 of the no-kexec workaround is much more robust, you should still be aware that I'm "temp-flashing" your real boot partition.

If you are in doubt, either ask, or avoid it completely; MultiROM has always been a huge hack to begin with, and this is even more of a hack.

Always have a backup ready. Possibly even RUU! ... I have not had to, I have also not encountered any loss whatsoever, but better be safe!

Current problems on the HTC 10

* OTG is untested and unsupported at the moment

* exFAT partitions are not supported currently

^^ those haven't worked for quite a while, so it's not really HTC 10 specific

Encrypted devices: Your secondary ROMs do not know your device is encrypted, do not (again: do not) try to encrypt your device while booted into a secondary ROM.​

Secure boot (ie require Password/Pattern/PIN on boot): Thanks to @Captain_Throwback who found out, that under certain circumstances (yet to be determined), your primary (possibly secondary as well) may loose the ability unlock your LockScreen using your Password/Pattern/PIN.

The same thing has been observed in TWRP restores, and although your password is correct and does decrypt your device, it breaks at the lockscreen for some reason.

I recommend you disable Password/Pattern/PIN on boot until / IF the issue is resolved, but in case you do find yourself in that situation, please go ahead and follow the instruction posted in the TWRP thread:

10. After I restored my Data backup and boot back to Android, I'm entering the correct PIN/password, but it's telling me the password is wrong. What happened, and how do I fix it?

It appears that sometimes after restoring a backup of Data where security was enabled (such as a PIN or password lock), the device does not recognize the correct password. There are two ways to avoid this issue:

Disable security in Android before making a backup of data.

After restoring Data, while still in TWRP, use the TWRP File Manager to navigate to /data/system and delete all the locksettings.* files (such as locksettings.db, etc). When you reboot, the password will be gone.

​

Please bear in mind, that some ROMs (particularly Sense based ROMs), will take a long time to boot up, well above 10minutes, so patience!
​

Installation

Not supported at this time: 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

MultiROM has 3 parts (well, it should, but in this case it only has 2) you need to install:

Modified recovery (TWRP_3.x.x-x_multirom_pme_YYYYDDMM-pp.img) - download the IMG file from second post and use

TWRP itself to flash newer TWRP to recovery partition:

TWRP->Install-> select Images -> TWRP_3.x.x-x_multirom_pme_YYYYDDMM-pp.img -> to Recovery -> Reboot to Recovery

.

or

.

"fastboot flash recovery TWRP_3.x.x-x_multirom_pme_YYYYDDMM-pp.img"

(in download mode, for example)

C:ADBADB_10>adb reboot download

C:ADBADB_10>fastboot devices
FAxxxxxxxxxx fastboot

C:ADBADB_10>fastboot flash recovery TWRP_3.0.2-6_multirom_pme_20160917-02.img
target reported max download size of 800000000 bytes
sending 'recovery' (25700 KB)...
OKAY [ 2.001s]
writing 'recovery'...
(bootloader) HOSD CL#761759
(bootloader) start@1
(bootloader) recovery@100%
(bootloader) Update partition OK
(bootloader) end@Done
OKAY [ 2.872s]
finished. total time: 4.878s

C:ADBADB_10>fastboot reboot-bootloader
rebooting into bootloader...
OKAY [ 0.004s]
finished. total time: 0.005s

MultiROM (multirom-YYYYMMDD-vXXd-UNOFFICIAL-pme.zip) - download the ZIP file from second post and flash it in the MultiROM Recovery.

.

.

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.

We don't have a patched kernel, so I'm using a workaround.

You current rom will not be erased by the installation.

Download links are in the third post.​

Adding ROMs

1. Android

Go to recovery, enter the MultiROM section of TWRP (by clicking the icon in to top right corner) -> 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 this is NOT SUPPORTED

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.

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 the MultiROM section of TWRP (by clicking the icon in to top right corner) 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 the MultiROM section of TWRP (by clicking the icon in to top right corner) -> 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 corresponding 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.​

Screenshots

Special Thanks

@Tasssadar: Original author of MultiROM.

@Captain_Throwback: For testing, giving me a hard time, and warning you guys about the secure boot (ie require Password/Pattern/PIN on boot) issue.

zhuowei: For the fake properties idea.

Source code

MultiROM - https://github.com/Tasssadar/multirom (branch master)

Modified TWRP - https://github.com/Tasssadar/Team-Win-Recovery-Project (branch master)

Device files - ....

Everything is here:

https://github.com/multirom-htc

https://github.com/nkk71
​

XDA:DevDB Information

MultiROM, Tool/Utility for the HTC 10

Contributors

nkk71

Version Information

Status: Stable

Current Stable Version: 33testbuild

Stable Release Date: 2016-11-15

Created 2016-09-18

Last Updated 2016-11-15