Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,812,579 Members 43,656 Now Online
XDA Developers Android and Mobile Development Forum
Announcement from f69m: Proudly presenting MultiROM for our beloved TF300T (unofficial port).

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

Tip us?
 
f69m
Old
(Last edited by f69m; 12th February 2014 at 10:01 AM.)
#1  
Senior Member - OP
Thanks Meter 402
Posts: 511
Join Date: Feb 2013
Location: Munich
Default [BOOT][4.2+][UNOFFICIAL] MultiROM for TF300T [2014-02-13]

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
The Following 24 Users Say Thank You to f69m For This Useful Post: [ Click to Expand ]
 
f69m
Old
(Last edited by f69m; 1st March 2014 at 04:45 PM.)
#2  
Senior Member - OP
Thanks Meter 402
Posts: 511
Join Date: Feb 2013
Location: 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.
The Following 7 Users Say Thank You to f69m For This Useful Post: [ Click to Expand ]
 
f69m
Old
(Last edited by f69m; 24th February 2014 at 10:27 AM.)
#3  
Senior Member - OP
Thanks Meter 402
Posts: 511
Join Date: Feb 2013
Location: 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
The Following 2 Users Say Thank You to f69m For This Useful Post: [ Click to Expand ]
 
andrewnelson23
Old
#4  
andrewnelson23's Avatar
Senior Member
Thanks Meter 163
Posts: 629
Join Date: May 2012
Location: Shawnee, OK
Sweet! Thanks man, this looks pretty cool!

Sent from my SGH-T999 using xda app-developers app
 
f69m
Old
#5  
Senior Member - OP
Thanks Meter 402
Posts: 511
Join Date: Feb 2013
Location: Munich
Finally, first download is up!
Let me know, how it works for you.
 
z1022
Old
#6  
Senior Member
Thanks Meter 15
Posts: 193
Join Date: Feb 2012
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
Old
(Last edited by f69m; 12th February 2014 at 08:02 AM.)
#7  
Senior Member - OP
Thanks Meter 402
Posts: 511
Join Date: Feb 2013
Location: Munich
Quote:
Originally Posted by z1022 View Post
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
 
z1022
Old
(Last edited by z1022; 12th February 2014 at 09:59 AM.)
#8  
Senior Member
Thanks Meter 15
Posts: 193
Join Date: Feb 2012
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 ??
 
f69m
Old
#9  
Senior Member - OP
Thanks Meter 402
Posts: 511
Join Date: Feb 2013
Location: Munich
Quote:
Originally Posted by z1022 View Post
I will try later and report back.
Great, looking forward to hearing about your experiences.
Quote:
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.
Quote:
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
Old
#10  
Dasdranamin's Avatar
Member
Thanks Meter 29
Posts: 80
Join Date: Nov 2010
Location: Munich
Hi f69m!
1000 THANKS!
I successfully installed this MultiROM on TF201 with bootloader from TF300T v. 10.6.1.27.1 !
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.
Nexus 7 (2013) WiFi 32Gb. KK 4.4.2 CM 11.0 + MultiROM + TWRP-2.6.3.1
Samsung SGS3.KitKat 4.4.2 CM 11.0 + TWRP-2.6.3.1
Asus Prime TF201 32Gb + Dock. KitKat 4.4.2 CM 11.0 + MultiROM + TWRP-2.6.3.1

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes