[BOOT][4.2+][UNOFFICIAL] MultiROM for TF300T [2014-02-13]

Search This thread

f69m

Senior Member
Feb 24, 2013
511
409
Munich
MultiROM lets you install multiple ROMs into subfolders, just by flashing them using a modified TWRP.

This is an unofficial port of MultiROM originally developed for the Nexus series to our beloved TF300T.
Big thanks @Tasssadar for the original work!

THIS IS AN EARLY VERSION OF THIS PORT, NOT ALL FEATURES ARE FULLY TESTED.
But please test and give feedback, so I can eventually remove above line.

Features
  • Run a primary Android ROM from the normal partitions.
  • Run multiple secondary ROMs from subfolders on an SD card or on an external USB stick/drive.
  • Easily add/update your primary and secondary ROMs using a modified version of TWRP.
  • Install Ubuntu and Ubuntu Touch as secondary ROMs Not supported yet.
And more...

Changes vs. official MultiROM

This section is mostly useful for people using MultiROM on another device. New users can safely ignore it.

My first test - installing a plain CM 11, installing MultiROM, and then installing OmniROM with its own kernel - failed gloriously. The reason was that the official MultiROM re-uses the kernel of the currently installed Android system and that kernel does not include the kexec hardboot patch required for MultiROM to work properly.

The beauty of MultiROM is that - once installed with a proper kernel - it allows an average user that has never heard about kexec and never installed a custom kernel to run multi-boot at the touch of a finger. So I decided that my first simple use case must be supported.

The obvious solution was to ship a working kernel with MultiROM, save the currenly installed kernel for the primary ROM and boot that via kexec. The idea is to sacrifice another 10 secs on booting the primary ROM for making MultiROM much easier to install and to use. However, this decision led to several changes in the TWRP user interface:
  • The "share kernel with primary ROM" option was removed. Each ROM has its own boot image and is always booted via kexec.
  • The "Inject current boot sector" on the MultiROM screen button was replaced with a "Reinstall" button. Use this, if you have overwritten the boot sector, for example via fastboot. Mind, reinstalling MultiROM will save the current boot partition and use it for booting straight into the primary ROM, so better make sure this works, before running reinstall, or you won't be able to boot into your primary ROM after reinstallation.
  • The "Add/Remove boot.img" button on the ROM management screen has been replaced with "Replace boot.img" and can be used to easily install a custom kernel for that ROM.
Looking forward to your feedback on this major change!

Downloads

Downloads are available from the "Downloads" tab at the top of the page.
  • MultiROM installer including the modified TWRP:
    multirom-vXX-YYYYMMDD-UNOFFICIAL-tf300t.zip
  • TWRP for MultiROM (not needed, if you use the installer):
    twrp-multirom-vXX-YYYYMMDD-UNOFFICIAL-tf300t.blob

Installing and Upgrading MultiROM

Please read the following instructions carefully, and make sure you understand each step and what it will do to your tablet. The steps are working for me, but you are ultimately responsible, for what you are doing with your own tablet. I will not be responsible, if you brick your tablet, or if your wife gets angry at you for being too preoccupied with your tablet.
  1. Make a backup!
    MultiROM will modify your system, and if anything goes wrong, this backup will be more than helpful.
  2. Check the version of your bootloader.
    On the bootloader screen, check the version shown on the top left. MultiROM was ported and tested on version 10.6.1.27.5. If your bootloader version is 10.6.1.27.1 or 10.6.1.15.3 you should have no issues. Version 10.6.1.8 might work, but is likely to cause issues; upgrading is highly suggested. For any other version, make sure you first upgrade your bootloader, or you risk ending up with a brick,
  3. Flash the lastest multirom-vXX-YYYYYYYY-UNOFFICIAL-tf300t.zip
  4. Reboot right away!
  5. Make sure you see the blue progressbar on the first boot screen and you see another automatic reboot.
    Then the MultiROM boot screen should show up.
Now you should be able to boot your primary ROM via MultiROM. For next steps, check out "Installing ROMs" in the next post.

Uninstall MultiROM

The uninstaller for the official MultiROM has not been ported yet, but you can get rid of MultiROM following these steps:
  1. Flash your favourite (not MultiROM) recovery.
  2. Restore your boot partition from a backup or re-flash your ROM.
  3. Remove the "multirom" folder on the sdcard.
The latter is optional. You may keep it around for trying MultiROM again later.

Changes

  • 2014-03-16:
    • Fixed MultiROM reinstallation from TWRP.
    • Some fixes for swapping primary/secondary ROMs.
    • Some fixes for primary ROM initrd.
    • Added support for Ubuntu Touch (needs upcoming manager app).
  • 2014-03-02:
    • Support secondary ROMs on SD card (not fully tested).
    • Use packaged initrd instead of the primary ROM's.
    • Some bug fixes.
  • 2014-02-13:
    • Allows flashing 4.2-based ROMs without removing the assert line in the updater-script.
    • Several bug fixes for more stability.
Note that changes may be documented, before the downloads are available. Please check back a little later in that case.

Future Work

In no particular order:
  • Provide uninstaller.
  • Add the missing features listed above.
  • Fix TWRP for encrypted filesystems.
  • Allow replacing the kernel for any ROM, keeping the ramdisk.
  • Remove unnecessary drivers (net, sound, camera) from the kernel (currently breaks building the kernel).


XDA:DevDB Information
MultiROM for TF300T, a Tool/Utility for the Asus Transformer TF300T

Contributors
f69m

Version Information
Status: Alpha

Created 2014-02-11
Last Updated 2014-03-16
 
Last edited:

f69m

Senior Member
Feb 24, 2013
511
409
Munich
Installing ROMs

Custom 4.2- and 4.4-based ROMs
  • To install/update your primary ROM, just flash it as usual with the modified MultiROM TWRP, using "Install" from the main screen.
  • Installing a secondary ROM is just as easy, but use:
    Advanced > MultiROM > Add ROM
  • You can update a secondary ROM by flashing it from the ROM management screen, using;
    Advanced > MultiROM > List ROMs > [select your ROM] > Flash ZIP
  • OTA updates using the update manager coming with your ROM should work fine for both primary and secondary ROMs.
Note: It is no longer necessary to remove the assertion from a 4.2 updater-script.

Gaps, SuperSU, etc.

You can flash additional ZIP files for a secondary ROM from the ROM management screen, using:
Advanced > MultiROM > List ROMs > [select your ROM] > Flash ZIP

Asus Stock ROM

Asus stock ROM has a different installer and won't work the same way as custom ROMs.
Here are the steps to install stock ROM as your primary ROM:
Sorry, I have not tested this myself yet, please let me know, how it works out.
  1. Unzip the Asus ROM twice to get the blob.
  2. Flash the blob using fastboot.
  3. Boot into stock ROM.
  4. Re-install the modified TWRP using fastboot (use the separate download).
  5. In TWRP: Advanced > MultiROM > Reinstall.
This should give you a working MultiROM setup with stock ROM as your primary ROM.
If you need more detailed instructions on the first two steps, please refer to the guides in the General section.

Ubuntu Touch
Coming soon...

Ubuntu
Not working yet.

Notes on Specific ROMs

CROMi-X 5.3
Don't try to install CROMi-X as a secondary ROM. It has an amazing installer, but that will nuke your primary ROM's /system partition.

Trouble-shooting

If your primary or one of your secondary ROMs is not booting properly, it can help to restore the boot partition of the primary ROM and then do a clean reinstall of MultiROM.
No worries, you can move your installed secondary ROMs to the side and move them back later.
  1. First try restoring the boot partition from your latest backup, before installing MultiROM and reboot.
    If your device boots cleanly into your primary ROM, without showing the MultiROM boot screen, you can skip ahad to step 3.
  2. Next try flashing an unmodified recovery, re-flash your primary ROM and reboot.
    If your device boots cleanly into your primary ROM without showing the MultiROM boot screen, you are ready to go to step 3.
    Otherwise you should post your issue.
  3. Use a root terminal or a root exlorer to remove the folder /data/media/0/multirom.
    Alternatively you can rename that folder, keeping your installed ROMs.
    Note: though this folder is on the sdcard, you have to use the path given; trying to use /sdcard or /storage you will get "permission denied", when trying to remove or rename the folder.
  4. Reflash the latest multirom-v*.zip and reboot.
  5. Make sure you see the blue progressbar on the first boot screen and you see another automatic reboot.
    Then the MultiROM boot screen should show up.
  6. Try booting your primary ROM. It should now start cleanly.
  7. Try installing a secondary ROM, or move it back to /data/media/0/multirom/roms/ from the folder you renamed above.
    Just moving back the folder will make it show up on the MultiROM boot screen.
Please read and follow each step carefully.
If these steps do not make all your ROMs boot properly, please post about your issue in this thread.
 
Last edited:

f69m

Senior Member
Feb 24, 2013
511
409
Munich
Source Code Repositories

The easiest way to build MultiROM is using my manifest following the build instructions below.
Here is a list of the MultiROM-specific repositories that can be built by adding them to the OmniROM tree:
Look out for branches named "multirom-*" in above repositories.
Please check the manifest for the latest stable branch.

Build Instructions

Using my manifest makes it easy to check out the MultiROM repositories and a small part of the OmniROM tree needed for building.
Code:
repo init -u git://github.com/f69m/android -b multirom
repo sync
manifest/pick-cherries.sh
source build/envsetup.sh
lunch mrom_tf300t-userdebug
make -j4 multirom_zip
 
Last edited:

z1022

Senior Member
Feb 2, 2012
528
36
Thanks for your work.

Now I use CROMi-X 5.3 ROM. If I install MultiROM and TWRP for MultiROM, the exist CROMi-X 5.3 ROM can keep on primary ROM??
 

f69m

Senior Member
Feb 24, 2013
511
409
Munich
Now I use CROMi-X 5.3 ROM. If I install MultiROM and TWRP for MultiROM, the exist CROMi-X 5.3 ROM can keep on primary ROM??
Absolutely, just flash the multirom-*.zip file (includes TWRP), and you should be able to boot into CROMi-X via MultiROM.
But I have not tested with CROMi-X yet, so make sure you have a backup!

Sent from my TF300T using Tapatalk
 
Last edited:

z1022

Senior Member
Feb 2, 2012
528
36
Thanks

I will try later and report back.

CROMi kernel should be not included the kexec. Can I use the Multirom to install second ROM ??
 
Last edited:

f69m

Senior Member
Feb 24, 2013
511
409
Munich
I will try later and report back.
Great, looking forward to hearing about your experiences.
CROMi kernel should be not included the kexec.
The CROMi-X kernel does not need kexec for my MultiROM port to work. This is different from the official MultiROM for Nexus. See post #1 on more details.
Can I use the Multirom to install second ROM ??
Of course, that's the whole idea! :)
Check post #2 for instructions.

Sent from my TF300T using Tapatalk
 

Dasdranamin

Senior Member
Nov 4, 2010
101
36
Munich
Hi f69m!
1000 THANKS!
I successfully installed this MultiROM on TF201 with bootloader from TF300T v. 10.6.1.27.1 ! :laugh:
As Primary ROM i have NIGHTLY CM11 for TF300T. As "virtual" ROM i installed the same ROM (i want to examine the new GRIMKERN_KitKat).

All works properly with 1 exception:
Don't works the touchscreen during "blue" window for ROM-selection.

So I had to specify the "default" firmware in TWRP.
 

f69m

Senior Member
Feb 24, 2013
511
409
Munich
Hi f69m!
1000 THANKS!
I successfully installed this MultiROM on TF201 with bootloader from TF300T v. 10.6.1.27.1 ! :laugh:
Wow, amazing! :)
All works properly with 1 exception:
Don't works the touchscreen during "blue" window for ROM-selection.

So I had to specify the "default" firmware in TWRP.
Hmm, not quite sure, what you mean with "blue" window. You mean the MultiROM menu that comes up after boot? If yes, could you send me a copy of /proc/last_kmsg after booting your ROM? It has the kernel log of MultiROM; maybe I can spot the issue there.

Sent from my TF300T using Tapatalk
 

Dasdranamin

Senior Member
Nov 4, 2010
101
36
Munich
Wow, amazing! :)
Hmm, not quite sure, what you mean with "blue" window. You mean the MultiROM menu that comes up after boot? If yes, could you send me a copy of /proc/last_kmsg after booting your ROM? It has the kernel log of MultiROM; maybe I can spot the issue there.

Yes. That's what I meant.
 

Attachments

  • last_kmsg.zip
    15.3 KB · Views: 17

z1022

Senior Member
Feb 2, 2012
528
36
Great, looking forward to hearing about your experiences.

The CROMi-X kernel does not need kexec for my MultiROM port to work. This is different from the official MultiROM for Nexus. See post #1 on more details.

Of course, that's the whole idea! :)
Check post #2 for instructions.

Sent from my TF300T using Tapatalk

Install MultiROM and try to install Omni 4.4.2. ROM in second. However, stick in OMNI booting Screen.
 

Dasdranamin

Senior Member
Nov 4, 2010
101
36
Munich
Install MultiROM and try to install Omni 4.4.2. ROM in second. However, stick in OMNI booting Screen.
I successfully installed just now on TF201 Omni 4.4.2. ROM TF300T Homebuild versions [20140126] (it's last ROM with MultiWindow feature) + Gapps Mini Modular Package.

All works properly. :good: MultiWindow too.
 

Attachments

  • Omni.jpg
    Omni.jpg
    114.8 KB · Views: 203

z1022

Senior Member
Feb 2, 2012
528
36
how long omni finished the booting.

---------- Post added at 11:59 PM ---------- Previous post was at 11:50 PM ----------

Install MultiROM and try to install Omni 4.4.2. ROM in second. However, stick in OMNI booting Screen.

Try CM11 in second ROM. still stick in CM11 booting screen.
 

Dasdranamin

Senior Member
Nov 4, 2010
101
36
Munich
Hi f69m,
I found: in "MultiROM menu that comes up after boot" I can select a ROM by VOLUME UP/DOWN and confirm by POWER (like in "old" CWM). :laugh:
 
  • Like
Reactions: f69m

Top Liked Posts

  • There are no posts matching your filters.
  • 28
    MultiROM lets you install multiple ROMs into subfolders, just by flashing them using a modified TWRP.

    This is an unofficial port of MultiROM originally developed for the Nexus series to our beloved TF300T.
    Big thanks @Tasssadar for the original work!

    THIS IS AN EARLY VERSION OF THIS PORT, NOT ALL FEATURES ARE FULLY TESTED.
    But please test and give feedback, so I can eventually remove above line.

    Features
    • Run a primary Android ROM from the normal partitions.
    • Run multiple secondary ROMs from subfolders on an SD card or on an external USB stick/drive.
    • Easily add/update your primary and secondary ROMs using a modified version of TWRP.
    • Install Ubuntu and Ubuntu Touch as secondary ROMs Not supported yet.
    And more...

    Changes vs. official MultiROM

    This section is mostly useful for people using MultiROM on another device. New users can safely ignore it.

    My first test - installing a plain CM 11, installing MultiROM, and then installing OmniROM with its own kernel - failed gloriously. The reason was that the official MultiROM re-uses the kernel of the currently installed Android system and that kernel does not include the kexec hardboot patch required for MultiROM to work properly.

    The beauty of MultiROM is that - once installed with a proper kernel - it allows an average user that has never heard about kexec and never installed a custom kernel to run multi-boot at the touch of a finger. So I decided that my first simple use case must be supported.

    The obvious solution was to ship a working kernel with MultiROM, save the currenly installed kernel for the primary ROM and boot that via kexec. The idea is to sacrifice another 10 secs on booting the primary ROM for making MultiROM much easier to install and to use. However, this decision led to several changes in the TWRP user interface:
    • The "share kernel with primary ROM" option was removed. Each ROM has its own boot image and is always booted via kexec.
    • The "Inject current boot sector" on the MultiROM screen button was replaced with a "Reinstall" button. Use this, if you have overwritten the boot sector, for example via fastboot. Mind, reinstalling MultiROM will save the current boot partition and use it for booting straight into the primary ROM, so better make sure this works, before running reinstall, or you won't be able to boot into your primary ROM after reinstallation.
    • The "Add/Remove boot.img" button on the ROM management screen has been replaced with "Replace boot.img" and can be used to easily install a custom kernel for that ROM.
    Looking forward to your feedback on this major change!

    Downloads

    Downloads are available from the "Downloads" tab at the top of the page.
    • MultiROM installer including the modified TWRP:
      multirom-vXX-YYYYMMDD-UNOFFICIAL-tf300t.zip
    • TWRP for MultiROM (not needed, if you use the installer):
      twrp-multirom-vXX-YYYYMMDD-UNOFFICIAL-tf300t.blob

    Installing and Upgrading MultiROM

    Please read the following instructions carefully, and make sure you understand each step and what it will do to your tablet. The steps are working for me, but you are ultimately responsible, for what you are doing with your own tablet. I will not be responsible, if you brick your tablet, or if your wife gets angry at you for being too preoccupied with your tablet.
    1. Make a backup!
      MultiROM will modify your system, and if anything goes wrong, this backup will be more than helpful.
    2. Check the version of your bootloader.
      On the bootloader screen, check the version shown on the top left. MultiROM was ported and tested on version 10.6.1.27.5. If your bootloader version is 10.6.1.27.1 or 10.6.1.15.3 you should have no issues. Version 10.6.1.8 might work, but is likely to cause issues; upgrading is highly suggested. For any other version, make sure you first upgrade your bootloader, or you risk ending up with a brick,
    3. Flash the lastest multirom-vXX-YYYYYYYY-UNOFFICIAL-tf300t.zip
    4. Reboot right away!
    5. Make sure you see the blue progressbar on the first boot screen and you see another automatic reboot.
      Then the MultiROM boot screen should show up.
    Now you should be able to boot your primary ROM via MultiROM. For next steps, check out "Installing ROMs" in the next post.

    Uninstall MultiROM

    The uninstaller for the official MultiROM has not been ported yet, but you can get rid of MultiROM following these steps:
    1. Flash your favourite (not MultiROM) recovery.
    2. Restore your boot partition from a backup or re-flash your ROM.
    3. Remove the "multirom" folder on the sdcard.
    The latter is optional. You may keep it around for trying MultiROM again later.

    Changes

    • 2014-03-16:
      • Fixed MultiROM reinstallation from TWRP.
      • Some fixes for swapping primary/secondary ROMs.
      • Some fixes for primary ROM initrd.
      • Added support for Ubuntu Touch (needs upcoming manager app).
    • 2014-03-02:
      • Support secondary ROMs on SD card (not fully tested).
      • Use packaged initrd instead of the primary ROM's.
      • Some bug fixes.
    • 2014-02-13:
      • Allows flashing 4.2-based ROMs without removing the assert line in the updater-script.
      • Several bug fixes for more stability.
    Note that changes may be documented, before the downloads are available. Please check back a little later in that case.

    Future Work

    In no particular order:
    • Provide uninstaller.
    • Add the missing features listed above.
    • Fix TWRP for encrypted filesystems.
    • Allow replacing the kernel for any ROM, keeping the ramdisk.
    • Remove unnecessary drivers (net, sound, camera) from the kernel (currently breaks building the kernel).


    XDA:DevDB Information
    MultiROM for TF300T, a Tool/Utility for the Asus Transformer TF300T

    Contributors
    f69m

    Version Information
    Status: Alpha

    Created 2014-02-11
    Last Updated 2014-03-16
    8
    Installing ROMs

    Custom 4.2- and 4.4-based ROMs
    • To install/update your primary ROM, just flash it as usual with the modified MultiROM TWRP, using "Install" from the main screen.
    • Installing a secondary ROM is just as easy, but use:
      Advanced > MultiROM > Add ROM
    • You can update a secondary ROM by flashing it from the ROM management screen, using;
      Advanced > MultiROM > List ROMs > [select your ROM] > Flash ZIP
    • OTA updates using the update manager coming with your ROM should work fine for both primary and secondary ROMs.
    Note: It is no longer necessary to remove the assertion from a 4.2 updater-script.

    Gaps, SuperSU, etc.

    You can flash additional ZIP files for a secondary ROM from the ROM management screen, using:
    Advanced > MultiROM > List ROMs > [select your ROM] > Flash ZIP

    Asus Stock ROM

    Asus stock ROM has a different installer and won't work the same way as custom ROMs.
    Here are the steps to install stock ROM as your primary ROM:
    Sorry, I have not tested this myself yet, please let me know, how it works out.
    1. Unzip the Asus ROM twice to get the blob.
    2. Flash the blob using fastboot.
    3. Boot into stock ROM.
    4. Re-install the modified TWRP using fastboot (use the separate download).
    5. In TWRP: Advanced > MultiROM > Reinstall.
    This should give you a working MultiROM setup with stock ROM as your primary ROM.
    If you need more detailed instructions on the first two steps, please refer to the guides in the General section.

    Ubuntu Touch
    Coming soon...

    Ubuntu
    Not working yet.

    Notes on Specific ROMs

    CROMi-X 5.3
    Don't try to install CROMi-X as a secondary ROM. It has an amazing installer, but that will nuke your primary ROM's /system partition.

    Trouble-shooting

    If your primary or one of your secondary ROMs is not booting properly, it can help to restore the boot partition of the primary ROM and then do a clean reinstall of MultiROM.
    No worries, you can move your installed secondary ROMs to the side and move them back later.
    1. First try restoring the boot partition from your latest backup, before installing MultiROM and reboot.
      If your device boots cleanly into your primary ROM, without showing the MultiROM boot screen, you can skip ahad to step 3.
    2. Next try flashing an unmodified recovery, re-flash your primary ROM and reboot.
      If your device boots cleanly into your primary ROM without showing the MultiROM boot screen, you are ready to go to step 3.
      Otherwise you should post your issue.
    3. Use a root terminal or a root exlorer to remove the folder /data/media/0/multirom.
      Alternatively you can rename that folder, keeping your installed ROMs.
      Note: though this folder is on the sdcard, you have to use the path given; trying to use /sdcard or /storage you will get "permission denied", when trying to remove or rename the folder.
    4. Reflash the latest multirom-v*.zip and reboot.
    5. Make sure you see the blue progressbar on the first boot screen and you see another automatic reboot.
      Then the MultiROM boot screen should show up.
    6. Try booting your primary ROM. It should now start cleanly.
    7. Try installing a secondary ROM, or move it back to /data/media/0/multirom/roms/ from the folder you renamed above.
      Just moving back the folder will make it show up on the MultiROM boot screen.
    Please read and follow each step carefully.
    If these steps do not make all your ROMs boot properly, please post about your issue in this thread.
    4
    Source Code Repositories

    The easiest way to build MultiROM is using my manifest following the build instructions below.
    Here is a list of the MultiROM-specific repositories that can be built by adding them to the OmniROM tree:
    Look out for branches named "multirom-*" in above repositories.
    Please check the manifest for the latest stable branch.

    Build Instructions

    Using my manifest makes it easy to check out the MultiROM repositories and a small part of the OmniROM tree needed for building.
    Code:
    repo init -u git://github.com/f69m/android -b multirom
    repo sync
    manifest/pick-cherries.sh
    source build/envsetup.sh
    lunch mrom_tf300t-userdebug
    make -j4 multirom_zip
    3
    Test report!!!

    Since i was bored this morning and also that TF300T and ME301T are pretty much close, i have made this test with MultiRom on my ME301T, maybe others are curious to know:

    - Primary Rom: CROMi-X5.4
    - Secondary Rom (Internal memory): CM 10.2 from one nandroid backup that i have on my sdcard
    - Third Rom (Internal memory): CM 11 Latest Official Nightly for TF300T
    - Fourth Rom (Internal memory): OmniROM for ME301T
    - Fifth Rom (USB storage): CMB 4.4.2 for TF300T

    Conclusion:
    - all roms from internal memory works great without any issues
    - that one from usb storage (Corsair Flash Voyager USB3.0 32GB/NTFS) its a little laggy
    - i only TEST MultiRom with these roms, which i will definetely wont use them all
    - it would be nice to see support for sdcard in the future.

    Cheers!
    2
    First of all, let me say thanks for all the hard work you have done. Its developers like you that make this dinasour of a tablet brand new again. That includes you too Sdbags. Second of all, because i use this tablet for school and work purposes, I probably wont install it until its updated some more. Thanks so much for making this tablet amazing!! :D

    Sent from my TF300T using Tapatalk 2