[MOD] Multirom for Shield Portable

Search This thread

Steel01

Recognized Developer
Dec 14, 2008
1,387
2,942
vh3puLb.png
Introduction

MultiROM is one-of-a-kind multi-boot mod. 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
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-UNOFFICIAL-roth.zip) - download the ZIP file from second post and flash it in recovery.
  • Modified recovery (twrp-multirom-YYYYMMDD-UNOFFICIAL-roth.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 listed below or third-party kernels which include the patch, you can see list in the second post. Flash it using TWRP.
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.​

2. Ubuntu Touch
Not yet ported​

3. Firefox OS
Not yet ported, but should be as easy as other Android ports.​




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 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 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
MultiROM - https://github.com/Tasssadar/multirom (branch master)
Modified TWRP - https://github.com/Tasssadar/Team-Win-Recovery-Project (branch android-6.0)
Device Tree https://github.com/CM-Shield/android_device_nvidia_roth (branch cm-13.0-mrom)
Kernel w/ kexec-hardboot patch - https://github.com/CM-Shield/android_kernel_nvidia_roth (branch cm-12.1-mrom)

XDA:DevDB Information
Shield Portable Multirom, Tool/Utility for the Nvidia Shield

Contributors
Steel01

Version Information
Status: Testing

Created 2015-04-23
Last Updated 2015-04-23
 
Last edited:

Steel01

Recognized Developer
Dec 14, 2008
1,387
2,942
Reserved

Downloads

1. Main downloads

MultiROM: multirom-20150801-v32-UNOFFICIAL-roth.zip
Modified recovery (based on TWRP 3.0.0.0): twrp-multirom-20160526-UNOFFICIAL-roth.img

Kernel w/ kexec-hardboot patch (Stock 5.1 update 106) [flashable zip]: roth_kexec_boot_stock_106.zip
Kernel w/ kexec-hardboot patch (Stock 5.1 update 103) [flashable zip]: roth_kexec_boot_stock_103.zip
Kernel w/ kexec-hardboot patch (CM 12.1) [flashable zip]: roth_kexec_boot_cm_12_1.zip

MultiROM Manager: MultiROMMgr-debug.apk



2. third-party kernels with kexec-hardboot patch
None yet

Nicely ask your kernel developer to merge kexec-hardboot patch (patch for roth).​
 
Last edited:

Steel01

Recognized Developer
Dec 14, 2008
1,387
2,942
Reserved

Notes


I finally made this work. However, it is still not well tested. Three things to note:

1. The touchscreen does not work in the boot selection. Neither will the d-pad. So, I've had to set Y as up, B as down, and A and power as confirm.
2. The recovery is sideways. This is because that's the native orientation of the display. TWRP 3 no longer has rotation code, so I can't rotate the display to landscape.

Also, I have yet to make a Linux rom boot using this. That's mostly because I haven't got the guest atags patch working on Fedora's kernel (haven't tried and personally don't really care about others). If and when I make it work, I'll try to make an mrom installer for it. Sound and graphics acceleration don't work, but everything else seems really solid. Kudos to @Gnurou for coding as much as he has and getting most of it merged into the upstream kernel.


Changelog


20160526
Updated recovery to TWRP 3
20150905
Updated the Stock 106 zip to include the volume fix.
20150905
Added kexec patch for Stock 106.
20150801
Found problems in the kexec patch. Synced those to match Tassadars hammerhead patch and voila, stuff started working better... CM 12.1 and Stock 103 boot great as secondaries now.
20150723
With the release of official update 103, this seems to work pretty well. Some basic testing with stock as primary didn't show any problems. However, I haven't tested much. I've removed older kexec images since they would just cause problems anyway. I've also added multirom manger, which on a rooted system should set up everything in only a few taps.
20150604
Disabled adb in multirom completely. For some reason this breaks adb/mtp/etc in all roms, primary and secondary. Also, by doing a primary backup and restore to secondary, the stock rom boots as a secondary. Unfortunately, it seems to have all the same problems that it has as primary when multirom is enabled. On the bright side, CM seems to work perfectly fine as primary and secondary now.
20150528
Updated TWRP to latest upstream. Removed exfat-fuse support as well to allow it to fit. This means ROMs cannot be installed to external SDs or usb harddrives formatted as NTFS or exfat. ext2/3/4 and fat32 should work. However, inserting multirom into the stock image still breaks many things, so using multirom is still not recommended. I am hopeful that the eventual android 5.1 update will work better with multirom.
20150423
Updated multirom to fix force close of the play store on stock internal. Didn't work.
 
Last edited:

Steel01

Recognized Developer
Dec 14, 2008
1,387
2,942
Updated TWRP and Multirom. Still wouldn't call it truly usable, but at least it's workable now. Stock console mode and the play store break when multirom is in use. That's the obvious symptoms. Also noticeable is the internal sd not mounting... I still don't know how to fix it, but it seems part of the init scripts are either failing or plain not running. If you play with this, you'll want to keep a backup of a pristine boot.img around. That's what I'm doing when I want stock for a set top box. But now that adb is working in ROMs, I don't know of any problems using this with CM 12.1. That has me hopeful that if Nvidia ever gets it in gear and releases the update, this will all fall into place.
 

Steel01

Recognized Developer
Dec 14, 2008
1,387
2,942
Tassadar updated the multirom TWRP to 2.8.7.0, so I ran builds. Still waiting on Nvidia before continuing with multirom research and implementation... Build in the second post.
 
  • Like
Reactions: AltCtrl701

Steel01

Recognized Developer
Dec 14, 2008
1,387
2,942
Build updates and a success story. I can boot through the multirom boot menu to stock 103 without problems. I need to do more testing, but it looks like this is safe to use now. However, backup and restore in twrp seems broken with update 103. To the point a restored system will not boot.

Edit: Fixed the backup / restore problem. Link updated. Manager will be updated shortly.

Edit 2: Botched the kexec build apparently. Running a new one now and will update once actually tested this time.

Edit 3: Fixed the kexec kernel. But my previous CM 12.1 build won't boot as a secondary, whereas it did on the old kernel. Will have to debug this.
 
Last edited:

paed808

Senior Member
Mar 17, 2012
179
134
Does multirom work if the Shield's primary rom is KitKat? (Update 101) I haven't updated to Lollipop.

I noticed you don't have any kexec kernels for KitKat..
 

YamazakiRobert

Senior Member
Dec 24, 2007
337
48
vh3puLb.png
Introduction

MultiROM is one-of-a-kind multi-boot mod. 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
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-UNOFFICIAL-roth.zip) - download the ZIP file from second post and flash it in recovery.
  • Modified recovery (twrp-multirom-YYYYMMDD-UNOFFICIAL-roth.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 listed below or third-party kernels which include the patch, you can see list in the second post. Flash it using TWRP.
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.​

2. Ubuntu Touch
Not yet ported​

3. Firefox OS
Not yet ported, but should be as easy as other Android ports.​




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 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 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
MultiROM - https://github.com/CM-Shield/multirom (branch pad_support)
Modified TWRP - https://github.com/Tasssadar/Team-Win-Recovery-Project (branch master)
Device Tree https://github.com/CM-Shield/android_device_nvidia_roth (branch cm-12.0-mrom or twrp_min_omni)
Kernel w/ kexec-hardboot patch - https://github.com/CM-Shield/android_kernel_nvidia_roth (branch cm-12.0-mrom-new)

XDA:DevDB Information
Shield Portable Multirom, Tool/Utility for the Nvidia Shield

Contributors
Steel01

Version Information
Status: Testing

Created 2015-04-23
Last Updated 2015-04-23
can you check the following tread http://xdaforums.com/showthread.php?p=47964256#post47964256
they have a nice theme and its landscape mode and same resolution of the shield device
thanks
 

Steel01

Recognized Developer
Dec 14, 2008
1,387
2,942
Small update.

  • Stock 103 boots fine as a secondary (using the copy primary to secondary function). That makes it a lot easier to experiment on the primary without having to flash back to stock anytime I want to do something not dev related.
  • Stock 101 does *not* currently boot as a secondary. If I set it up as primary, turn on adb, copy to secondary, then try to boot it, the logs show init blowing up all over itself. I have no idea why right now. Also, stock 101 won't work as a primary either, since things like the play store, console mode, and who know what else broke anytime I flashed a kexec kernel.
  • For some reason, multirom doesn't copy the boot image command line parameters into the secondaries kernel command line. This makes it difficult to disable selinux for porting purposes. I had to recompile the CM kernel with selinux disabled to get it to boot with the new blobs initially.

I expect I'll be able to fix the last point with a bit of research. At that point, dual booting CM and stock 103 should be completely feasible. I'm kinda stumped on the problem with 101, though. And since I don't plan to use it, I probably won't spend much time debugging the problem. If someone wants to look into that, I wouldn't mind helping them get started, though.

Edit:
@paed808: No, I've removed the old kitkat kexec kernel for reasons stated above. I could boot into CM as a secondary with stock kitkat without problem; however, that broke stock so bad, I considered it unusable.
 
Last edited:

paed808

Senior Member
Mar 17, 2012
179
134
@Steel01 I just wanted to know just in case I accidentally enable Multirom while flashing a zip in TWRP. I don't want to use Multirom on my Shield Portable. I have a Nexus 7 for that. I just want TWRP, but this is the only TWRP for the NSP. If I accidentally enable Multirom what happens? Does it inject itself in the bootloader? If that fails, will it result in a brick?
 

Steel01

Recognized Developer
Dec 14, 2008
1,387
2,942
@Steel01 I just wanted to know just in case I accidentally enable Multirom while flashing a zip in TWRP. I don't want to use Multirom on my Shield Portable. I have a Nexus 7 for that. I just want TWRP, but this is the only TWRP for the NSP. If I accidentally enable Multirom what happens? Does it inject itself in the bootloader? If that fails, will it result in a brick?

Nah, it's really hard to brick one of these. Trust me, I overwrote the partition table and still was able to recover... (don't try that at home). As long as you don't flash the multirom zip, you won't even be able to access the multirom section inside TWRP and it won't inject itself during any other flashing.

The reason that this is the only truly working (and maintained) recovery on the Portable is because it has the screen rotation code. I couldn't get that to work properly for CWM (and agabren never released his code and won't respond to any contact about it) and upstream TWRP doesn't have it either. So, multirom TWRP is it. But as mentioned above, as long as you don't flash the multirom zip, it should act exactly like the upstream TWRP.

As a fun side note: There are two things that I currently know of that can brick a Shield device (Portable, Tablet, and TV)
1. Overwrite or delete the bootloader. That's the blob partition to fastboot. So yeah, be very careful when fastboot flashing that one.
2. Put something android doesn't recognize in the dtb partition. I actually didn't know this one until recently. The bootloader interacts with this partition during early boot, like before it hands off to boot.img. And apparently, that's the only way the bootloader will read a dtb and hand it off to the kernel. Yeah... so, I've been pretty lucky in my testing that I didn't brick my device by flashing something else there (like an upstream linux version, don't do that).

Interestingly, you can completely obliterate the partition table and the bootloader will still run. However, it won't be able to find the LNX partition to continue booting. But you can fastboot boot whatever you want (like Linux on an sdcard). Moral of the story: Don't let Linux 'fix' your internal GPT for you... You might have to pull favors with other Shield owners to undo that one. Well, I now keep a dd'ed copy of that GPT, just in case.
 

paed808

Senior Member
Mar 17, 2012
179
134
@Steel01. Thanks for the detailed explanation. Now I know what "blob" and "dtb" are. I thought just the boot.img was the bootloader, as it is on most Android devices.
 

Steel01

Recognized Developer
Dec 14, 2008
1,387
2,942
Alright, I think this is finally ready for prime time. CM 12.1 and Stock 103 should work as primary or secondary without problem. If you see a problem, please report it. If you've got an older version installed, you'll want to reinstall almost everything: multirom, secondaries, kexec, etc. TWRP and the primary rom should be fine as is, though.

I was able to get Stock 101 to boot as a secondary. However, it's still not all there. The internal sd stuff doesn't all mount, causing all kinds of ugly problems, not the least of which is the Play Store crashing. I can manually run 'start sdcard' as root to get /mnt/shell/emulated mounted, but the links under /storage don't come up. At least at that point, the store works and it seems streaming and all that is fine. However, the main internal sd path (/storage/emulated/0) remains empty. So, not really a fully usable setup.

Edit:
Okay, so that was weird. I left my Portable booted into 101 for a bit. When I came back, all the internal sd mounts were correct. Eh? Maybe stuff refreshed after a bit and picked up the sdcard bind mount? Slightly confused, but it seems there is a way to make this work. Will probably look into this more eventually.
 
Last edited:
  • Like
Reactions: AltCtrl701

AltCtrl701

Member
Apr 16, 2011
12
4
Does this break miracast, or is it a problem with lollipop? I edited system/build.prop and added persist.debug.wfd.enable=1 which allowed me to see my miracast adapters but it just disconnects and fails to pair. Running 103 stock rooted with your multimod recovery set up, but only internal stock rom with modified kernel. I can however cast the scrren through netflix app, thats it, hulu doesnt see them and i cant mirror screen. Thanks for any info!

Sent from my SAMSUNG-SM-G900A
 

YamazakiRobert

Senior Member
Dec 24, 2007
337
48
the miracast its a problen with lolipop, but for you use the multi rom with last cm you need the shield using the update 103 with is lolipop
 

blessedyeti

Member
Dec 4, 2014
32
2
Working on my Shield portable using 103 and your CM Rom. Straightforward install but didn't know where to find CM Rom at first. One issue, downloads in CM were not accessible ( message cant open file) but were found in 103 downloads? Did I use wrong patch? Thks
 

Steel01

Recognized Developer
Dec 14, 2008
1,387
2,942
Why an I not getting email updates to this thread... Sorry for the slow response.

Yeah, Google removed miracast support in Lollipop. I've never used screen casting, so I can't comment further than that.

Downloads in CM are not available? Do you mean that CM cannot access the internal SD download folder? If so, is the rest of the internal SD accessible? I'll check tonight when I can get my hands on my Portable.

You want the patch for whatever your internal ROM is. Though technically, you don't even need a primary ROM, that's what I'm have for testing right now. Everything is secondaries. In which case, you can use whatever boot image you want. Wouldn't recommend this for normal usage, though. The Portable is already short on space...
 

blessedyeti

Member
Dec 4, 2014
32
2
secondary Rom will only read offf of ext sdcard, not internal storage?

Edit: Storage now working. Don't know what changed. Rooted CM with Kingroot. 103 seems snappier than CM.
 
Last edited:

Steel01

Recognized Developer
Dec 14, 2008
1,387
2,942
I was wondering if there was a permissions issue because it worked fine for me. But I'm using the newer cm build from later in the thread and not the stable one in the OP. And... Don't use root methods on CM... It's built in and in the developer options menu.
 

Top Liked Posts

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

    MultiROM is one-of-a-kind multi-boot mod. 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
    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-UNOFFICIAL-roth.zip) - download the ZIP file from second post and flash it in recovery.
    • Modified recovery (twrp-multirom-YYYYMMDD-UNOFFICIAL-roth.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 listed below or third-party kernels which include the patch, you can see list in the second post. Flash it using TWRP.
    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.​

    2. Ubuntu Touch
    Not yet ported​

    3. Firefox OS
    Not yet ported, but should be as easy as other Android ports.​




    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 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 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
    MultiROM - https://github.com/Tasssadar/multirom (branch master)
    Modified TWRP - https://github.com/Tasssadar/Team-Win-Recovery-Project (branch android-6.0)
    Device Tree https://github.com/CM-Shield/android_device_nvidia_roth (branch cm-13.0-mrom)
    Kernel w/ kexec-hardboot patch - https://github.com/CM-Shield/android_kernel_nvidia_roth (branch cm-12.1-mrom)

    XDA:DevDB Information
    Shield Portable Multirom, Tool/Utility for the Nvidia Shield

    Contributors
    Steel01

    Version Information
    Status: Testing

    Created 2015-04-23
    Last Updated 2015-04-23
    4
    Reserved

    Downloads

    1. Main downloads

    MultiROM: multirom-20150801-v32-UNOFFICIAL-roth.zip
    Modified recovery (based on TWRP 3.0.0.0): twrp-multirom-20160526-UNOFFICIAL-roth.img

    Kernel w/ kexec-hardboot patch (Stock 5.1 update 106) [flashable zip]: roth_kexec_boot_stock_106.zip
    Kernel w/ kexec-hardboot patch (Stock 5.1 update 103) [flashable zip]: roth_kexec_boot_stock_103.zip
    Kernel w/ kexec-hardboot patch (CM 12.1) [flashable zip]: roth_kexec_boot_cm_12_1.zip

    MultiROM Manager: MultiROMMgr-debug.apk



    2. third-party kernels with kexec-hardboot patch
    None yet

    Nicely ask your kernel developer to merge kexec-hardboot patch (patch for roth).​
    3
    Reserved

    Notes


    I finally made this work. However, it is still not well tested. Three things to note:

    1. The touchscreen does not work in the boot selection. Neither will the d-pad. So, I've had to set Y as up, B as down, and A and power as confirm.
    2. The recovery is sideways. This is because that's the native orientation of the display. TWRP 3 no longer has rotation code, so I can't rotate the display to landscape.

    Also, I have yet to make a Linux rom boot using this. That's mostly because I haven't got the guest atags patch working on Fedora's kernel (haven't tried and personally don't really care about others). If and when I make it work, I'll try to make an mrom installer for it. Sound and graphics acceleration don't work, but everything else seems really solid. Kudos to @Gnurou for coding as much as he has and getting most of it merged into the upstream kernel.


    Changelog


    20160526
    Updated recovery to TWRP 3
    20150905
    Updated the Stock 106 zip to include the volume fix.
    20150905
    Added kexec patch for Stock 106.
    20150801
    Found problems in the kexec patch. Synced those to match Tassadars hammerhead patch and voila, stuff started working better... CM 12.1 and Stock 103 boot great as secondaries now.
    20150723
    With the release of official update 103, this seems to work pretty well. Some basic testing with stock as primary didn't show any problems. However, I haven't tested much. I've removed older kexec images since they would just cause problems anyway. I've also added multirom manger, which on a rooted system should set up everything in only a few taps.
    20150604
    Disabled adb in multirom completely. For some reason this breaks adb/mtp/etc in all roms, primary and secondary. Also, by doing a primary backup and restore to secondary, the stock rom boots as a secondary. Unfortunately, it seems to have all the same problems that it has as primary when multirom is enabled. On the bright side, CM seems to work perfectly fine as primary and secondary now.
    20150528
    Updated TWRP to latest upstream. Removed exfat-fuse support as well to allow it to fit. This means ROMs cannot be installed to external SDs or usb harddrives formatted as NTFS or exfat. ext2/3/4 and fat32 should work. However, inserting multirom into the stock image still breaks many things, so using multirom is still not recommended. I am hopeful that the eventual android 5.1 update will work better with multirom.
    20150423
    Updated multirom to fix force close of the play store on stock internal. Didn't work.
    2
    In unexpected releases of the month, we *finally* have a working TWRP 3 build. This is the multirom thread, so it is the multirom edition of twrp. But there just might be official twrp support around the corner. </notsosubtlehint>

    As expected, rotation doesn't work. So, the display is sideways to the controller. But touch is lined up, so it all works fine. Like someone mentioned earlier, not a whole lot of time is spent in recovery, so it shouldn't be a huge issue.

    I haven't started updating multirom itself yet, but the old one should still work. Shouldn't be too hard once I get to it, though. I do wonder if anyone other than me wants it, however. I'd like to have stock, cm-13.0, and Fedora all accessible with a short reboot.
    2
    Tinkering with this some tonight. The boot screen is corrupted like the recovery was originally. Haven't found a way to fix that yet. Sorting through some kexec issues first, though. Trying to get it all on par with the tablet and console implementations. Actually, it's looking to be better right now since the /sys/firmware/fdt export actually works... But the kexec itself doesn't want to cooperate. One of these days. And maybe one of these days I'll get Fedora booting with it.