[EXPERIMENTAL] MultiROM v19 (discontinued)

Search This thread

Tasssadar

Inactive Recognized Developer
Dec 31, 2010
818
6,128
Brno
tasssadar.github.com
This project is now discontinued and will recieve no further updates nor support.

First of all, thanks petter (https://github.com/havlenapetr), Czech Samsung Galaxy developer, for idea and source codes.

What do I mean?
You have one ROM in internal memory as usual, and another one in folder on SD card ext partition. You can easily switch between them - just move rom from ext partition to some backup folder.

See guide in second post

How is it done?
Lets look on how android boots - its (roughly) like that:
1. Bootloader - forks between recovery, fastboot and normal boot
2. Linux kernel - Unpacks its initrd, loads drivers and many more things, not important now
3. Init - kernel runs this program, which mounts android partitions, sets correct permissions to files, starts services, and in the end, starts android itself
4. Android - Dunno much about it yet, anyway not important now​

So, what we need to do is mount something else than internal memory in init. Init parses & runs simple scripts, which makes it simpler to mount sdcard folders.

We need to add mknod and bind mounting to init binary. Unfortunately, we dont have sources of init modified by LG (that thing is three(!) times larger than init compiled from AOSP, what the hell is in there?!). That is solved by running modified init, which parses "preinit.rc" with mounts and then runs LG init.
Commit: https://github.com/Tasssadar/init/commit/aa3604ca90f5ef9b688fdc2e3cc865aa29a54809
preinit.rc: https://github.com/Tasssadar/init/blob/b4e701e8bc4831fadbefa64be48300139dcc2023/ramdisk/preinit.rc

This would be all, if original LG init would not remount /system and /data from internal memory. Also, nearly every ROM has different init.rc, and wont boot without it.

To solve this, I created "import_boot" command in init, which copies *.rc files and LG init from ramdisk(well, its only folder with these files extracted from ramdisk for now) on sdcard ext partition. This command also puts comments out every line with mount /data, /system or /cache in init.rc file, so LG init wont remount them.
Commit: https://github.com/Tasssadar/init/commit/dc3fa50d65d1221a4fb819d8ee616765ee043e83, https://github.com/Tasssadar/init/commit/f7bc141b1e4b7d214e49d4bb005c71237231436c and https://github.com/Tasssadar/init/commit/1cde6b6a093d4ac1f961e610c5229605bc517b52

Format of ROM on ext partition:
All files from paritions in internal memory copied to sd ext partition with preserved owners and permissions(!).
So, when I copy data, I do "cp -r -p /data/* /sd-ext/multirom/rom/data/" (I suggest to run this via adb shell while in recovery).
Currently, I mount /system, /data and /cache from sdcard. If one or more of these folders does not exist, its equivalent from internal memory is used.
It would be nice to have *.img files from nandroid backups instead of this, but as far as I know, they cant be just mounted.

As for *.rc files, I put them into /sd-ext/multirom/rom/boot folder. I would like to just copy boot.img and extract files in init, but I did not find way to extract it when I have hardly STL usable in init. I'd like to use kernel's internal decompressor, but I dont know how.

Limitations
- Both ROMs must be compatible with one kernel - kernel is already loaded in init
- ROMs must be for same baseband, obviously
- Kernel modules(wifi, for example) of both ROMs must be compatible with one kernel. That can be easily solved by copying modules from one ROM to another, though.
- It will be slower than internal memory.

Integration with recovery
Definitely possible & usefull. This is integration in my modified AmonRa recovery: https://github.com/Tasssadar/Amon-R...mmit/bd0232f7379993c296b0223973b81e8c55dc3ee2

Security risk
/system on sdcard can't be mounted read-only - I'd have to mount whole sdcard read-only. This is possible security hole, but you cant do much without root anyway, because of permissions. And if you have root, it does not matter if its read-only or not.

Conclusion
So, it is possible to have dual-boot. You can use it to develop ROMs(you can directly edit data in /data and /system), as backup ROM when you are testing something in internal memory which does not boot, and you need to call someone or when our devices will be so old that bad blocks in internal memory wont allow us to boot :)

But, as you can see, It is not something that average user could do, at least not yet. Maybe I could modify recovery to do everything for the user (copy data from /system, /data and /cache, extract *.rc files from boot) and create some flashable ZIPs which would modify the init.

But there are some problems - some ROMs may not be compatible with this and there are multiple recoveries out there, but theres not single one which is only for our phone - both AmonRa and ClockworkMod are developed for wide range of devices. Yes, both of them can be modified, but I doubt they creators would accept such inflexible and device-specific thing.
What do you think, is it worth it?

Tested ROMs (first one is in internal memory, second one is on SDcard)
Working:
  • Megatron and stock v10a ROM - stock rom is slow
  • Megatron and devoid #froyo-final - like ten times faster than stock xD
  • LightRom(2.2.2) and devoid #froyo-final (and vice versa)
  • Megatron and Megatron - both ROMs can have a2sd
  • Megatron and Mik's CM7 6.5.8 - since v2
  • Gingerbread 2.3.4 from Optimus Net and CM7 6.6.1 (thx eduardogouveia for testing)
  • Stock 2.2.2 and CM7 6.5.8 (thx eduardogouveia for testing) - if you have ext4 partition, you need custom kernel for stock ROM.
  • .void 2.3.4 and stock V20B (thx diazneoones for testing)
  • CM7 6.5.8 and .void 2.3.4 (thx diazneoones for testing)
  • CM7 nightlies and Lupohirp's СM9 (thx aquapp for testing)
Not working
  • None found yet, but when CM7 is on sdcard, it looses root. Trying to figure out why. - fixed in v10


PS: I hope I explained it correctly, not exactly good at this. Do not fear to ask, if you don't understand something.
 
Last edited:

Tasssadar

Inactive Recognized Developer
Dec 31, 2010
818
6,128
Brno
tasssadar.github.com
OK, here goes guide for average user. This is still highly experimental feature, keep that in mind. Backup, backup backups and backup them to PC, read whole guide first, I am not responsible for your bricked phone etc.
GUIDE:
1. Requirements
  • Ext4/Ext2/Ext3 partition on SDcard big enough to hold all files from /system and /data, which is from 170mb to 400mb (depends on ROM and apps installed), so I think 512mb partition is minimum (if its 90% or so free).
  • Modified recovery. Only AmonRa and CWM version is available at this time, TeamWin is coming "soon". You can find flashable zip at the bottom of this post, flash it before you proceed to next move. If something goes wrong, you can restore your recovery with zips from here.
  • Kernel with ext2/3/4 support, which is basically every but stock
  • Both ROMs you wanna use must be compatible with same kernel. See Limitations in previous post

2. MultiROM instalation
- Via MultiROM Mgr application
I recommend you do nandroid backup before installing via this app.
Download MultiROM Manager (link at the bottom of this), tap to "Tap to install via this app" and wait. As simple as that. Mgr will also install recovery for you (It will ask you which one, you can select AmonRa, CWM and none). App can check & install update, too.​
- Via recovery
Just download multirom.zip at the bottom of the post, make nandroid backup and flash it. Your current ROM will be the one in internal memory, we will setup the one on the SDCard in next move.
Now, try to reboot the phone (boot will take little longer, because it has to mount ext partition). If it boots up correctly, then its OK - your ROM is supported. If not, then restore your nandroid backup and post your ROM name here, maybe I'll try to make it working.​

3. Setup ROM on the sdcard
Make nandroid backup (I am not kidding, you will need this one), flash ROM which you wanna to have on SDcard, do the first boot (because it will create dalvik-cache, and you dont wanna do that when its already on sdcard) and reboot to recovery again.
Go to "MultiROM options" menu and select "Create from current ROM". It will do everything for you (it takes time, though). ROM on the sdcard is placed in /sd-ext/multirom/rom/, backups are in /sd-ext/multirom/backup/.
Restore nandroid backup from beggining of this step and reboot. Wait until Boot manager shows up, and select SDcard as boot location. ROM from sdcard should boot. If your ROM from internal memory boots or if its stuck, something got wrong and you should restore from backup.

4. MultiROM recovery menu description
Active/deactive state is for recovery only, you can boot ROMs from backup in boot manager - that means its N-times boot rather than dual-boot.

When not active(boot from internal memory):
  • Activate (move from backup) - when you already have backup, this will move it to active folder (fast).
  • Activate (copy from backup) - same as above, but it copies it instead of moving
  • Create from current ROM - pretty self-explanatory
  • Create from ZIP file - see http://xdaforums.com/showthread.php?p=22194117#post22194117
When active(boot from sdcard):
  • Deactivate (move to backup) - Moves current ROM to backup folder, so next boot will be from internal memory
  • Backup - Creates backup of current ROM
  • Erase current ROM - Deletes current rom, next boot will be from internal memory
  • Copy modules from int mem - Copies modules from ROM in internal memory to SDcard. Try this if WiFi does not work in SDcard ROM.
  • Flash ZIP - flash ZIP file to ROM on SD card, for example gapps.

5. Config file:
It is recommended to use Multirom Manager(see bottom of this post) to change config file.
File itself is placed on sdcard and its name is multirom.txt. Description of its contents is in this post(post is updated if something changes): http://xdaforums.com/showthread.php?p=20045183#post20045183

6. Key bindings:
Since v11, you also can control MultiROM via touchscreen.

  • Anywhere: Hold Power button to shut down the phone
  • While on main screen:
    • VolUp/Down - list between actions
    • Menu - Confirm action
    • Back - Reboot to recovery
    • Power button - Sleep mode
  • While playing tetris
    • VolUp - return to main screen
    • VolDown - pause
    • Menu - move the piece to left
    • Home - hard-drop
    • Back - rotate piece
    • Search - move the piece to right

FAQ:
Q: It is slow!
A: Its sdcard. It just is slower than nand memory.

Q: It does not work with my ROM
A: Post your ROM combination here, maybe I'll see to it.

Q: When do I need to reflash?
A: When you flash new ROM or do something which rewrites boot partition. Most (if not all) kernels are using Koush's AnyKernel, so they should not cause any problems.

Changelog & Download:
(Always flash newest version)

Uninstaller: http://www.mediafire.com/?3eco51f2t0at77o (info here)

Changelog AND DOWNLOAD LINKS have moved to github: http://tasssadar.github.com/multirom/

Recoveries
AmonRa - based on 3.06: http://www.mediafire.com/?ld9g81igvze7na0 (9th March 2012 21:57)
AmonRa - based on 2.2.1: http://www.multiupload.com/7Y5HHNEPOT (20th October 2011 22:29)
CWM: http://www.mediafire.com/?6rfw0qbrddzq5d8 (9th March 2012 21:57)
TWRP: http://www.mediafire.com/download.php?o8kphxmfk9l01tl (21st October 2012 23:49)

MultiROM Manager app
http://xdaforums.com/showthread.php?p=20610052#post20610052

(Always use newest version)
v24 - http://www.mediafire.com/download.php?1xy52tamzepibrx (TWRP support)
v21 - http://www.mediafire.com/?u9c3bmfbtf57dtm (Add charger settings)
v18 - http://www.mediafire.com/?g1lpsp66jc1cb1b (Add boot location settings)
v17 - http://www.mediafire.com/?l1li51sseaisz5j (Add brightness setting)
v15 - http://www.multiupload.com/B65WPFMFXP (Show & reset tetris high score)
v14 - http://www.multiupload.com/FWB5UBSMO1 (Updater now also check for app update, some minor fixes)
v13 - http://www.multiupload.com/NYYBX9CAFD (Update translations, add support for optimus V - http://xdaforums.com/showthread.php?p=20657898#post20657898)
v11 - http://www.multiupload.com/1L3294ZAU7 (Fix mount issues on some roms, add menu to main screen, add link to xda)
v10 - http://www.multiupload.com/B3AVSFKDOW (Create /sd-ext/multirom folder on install)
v9 - http://www.multiupload.com/WW7TUNP7RY (read http://xdaforums.com/showthread.php?p=20624306#post20624306)
v8 - http://www.multiupload.com/6OD7RQ74OE
v7 - http://www.multiupload.com/DJKMUGIVJ0
 
Last edited:

ciolnadu

Senior Member
Dec 13, 2010
379
39
43
Simeria
Something like this have the Xperia series. Maybe u find something u can use there.

Sent from my LG-P500 using XDA App
 

lipe082

Senior Member
Dec 25, 2010
695
166
porto
how to install your zip of amonra recovery i try but the recovery says that the zip dont have updatescript so it gives error....

i dont understand how to do this but ii´m searching this for a long time,if you can make a more frindley all user guide it will be very cool thankyou and hope you could doot....
 

franciscofranco

Recognized Developer
Dec 9, 2010
24,724
136,400
Carcavelos
how to install your zip of amonra recovery i try but the recovery says that the zip dont have updatescript so it gives error....

i dont understand how to do this but ii´m searching this for a long time,if you can make a more frindley all user guide it will be very cool thankyou and hope you could doot....

[dev] means this is not something ordinary. Don't know what it is, don't mess with it.

*sigh* once again, this is [dev] thread, this is not something you can flash, at least not yet. You would know that, if you'd read whole post.

Don't worry, you'll get more "hao cán i flush this into ma phones?" questions, good luck.
 

aspee

Senior Member
Aug 7, 2011
806
1,058
28
mumbai
www.aspeeration.tk
sounds like fun
thanks for bringing it for optimus one
but i have one question for you
I think in future kernel changing will also possible
because if we can flash kernel then we can make it to change
right?
 

lipe082

Senior Member
Dec 25, 2010
695
166
porto
I read the post but since the download you have is of a amonra recovery modified by you,i thougt that was a regular zip and only then make by abd the tutorial,thats why hi also ask a more friendly use because i now its not for averager use no need to get obset however im still happy hi was searching for that so hi dont mind waiting you make it more simple... sorry if that ofend you or franco lol we have to learn and its very hard now how to develop without having the proper nowledge like you all devs have and hi respect every dev even of he just make a simple app,by the way just dont send me to school lol where could i learn the bases to umderstand how to program java and then develop im asking this because all books hi find rekire previous nowleged of some progaming could some dev. Pointing me somewhere where i could learn and please dont be rude im just asking because i just dont love i want and hi will learn...

And baking to the thread what you find for me is one of the best and most important for our phones thanks a lot now just wainting a day everybody could use your work thank you

Sent from my LG-P500 using XDA Premium App
 
  • Like
Reactions: rpajag
G

GuestK0065

Guest
So your main question is: "Is it worth it?"

I would say, "Hell yeah it is!" but then again I do not have the know-how to pull something like this off.

If you decide to go ahead with it, I wish you the best of luck =P
 

Tasssadar

Inactive Recognized Developer
Dec 31, 2010
818
6,128
Brno
tasssadar.github.com
I just modified Koush's AnyKernel so that it can modify ramdisk's content, so it is possible to install it with .zip file via recovery. I will add some modified version of CWM & AmonRA, create some walkthrough video and write some guide soon(c).

By the way, that kernel which is in devoid #froyo-final cant mount ext4 partition in init, dunno why, I'll look into it after raid.

EDIT: wtf, it just works now, and I did nothing Oo

EDIT2: Changes commited, now It can installed/controlled only by flashable ZIPs and recovery(well, only my modified AmonRa recovery for now). I'll do the rest soon, but I dont know when - maybe tomorrow (oh my, it is today actually already), maybe next month.
 
Last edited:

lipe082

Senior Member
Dec 25, 2010
695
166
porto
gingerbread test

well i try with V20C,2.3.4 port(both with a2sd)and didnt woork after flash multiromv1.zip,when reobooting always return to recovery,so in recovery i go to multirom options and says no multirom folder so i start to think a2sd imcompatibelity,so i grab 2.3.3 V20G without changes oficial as lg give us but the results where the same no a2sd problem....
well later i will flash oldbaseband and try one of your combinations but i think its not compatible with gingerbread.....
 

Tasssadar

Inactive Recognized Developer
Dec 31, 2010
818
6,128
Brno
tasssadar.github.com
I think I found it - on GB, there is "on fs" trigger in init.rc, which has only mounts in there, but I need to comment them out - all of them, so "on fs" trigger is empty, and init parser cant handle that. Will update soon.
 

lipe082

Senior Member
Dec 25, 2010
695
166
porto
Ok i will remain in new baseband to try when you update your exclente work...

Sent from my LG-P500 using XDA Premium App
 

Top Liked Posts

  • There are no posts matching your filters.
  • 54
    This project is now discontinued and will recieve no further updates nor support.

    First of all, thanks petter (https://github.com/havlenapetr), Czech Samsung Galaxy developer, for idea and source codes.

    What do I mean?
    You have one ROM in internal memory as usual, and another one in folder on SD card ext partition. You can easily switch between them - just move rom from ext partition to some backup folder.

    See guide in second post

    How is it done?
    Lets look on how android boots - its (roughly) like that:
    1. Bootloader - forks between recovery, fastboot and normal boot
    2. Linux kernel - Unpacks its initrd, loads drivers and many more things, not important now
    3. Init - kernel runs this program, which mounts android partitions, sets correct permissions to files, starts services, and in the end, starts android itself
    4. Android - Dunno much about it yet, anyway not important now​

    So, what we need to do is mount something else than internal memory in init. Init parses & runs simple scripts, which makes it simpler to mount sdcard folders.

    We need to add mknod and bind mounting to init binary. Unfortunately, we dont have sources of init modified by LG (that thing is three(!) times larger than init compiled from AOSP, what the hell is in there?!). That is solved by running modified init, which parses "preinit.rc" with mounts and then runs LG init.
    Commit: https://github.com/Tasssadar/init/commit/aa3604ca90f5ef9b688fdc2e3cc865aa29a54809
    preinit.rc: https://github.com/Tasssadar/init/blob/b4e701e8bc4831fadbefa64be48300139dcc2023/ramdisk/preinit.rc

    This would be all, if original LG init would not remount /system and /data from internal memory. Also, nearly every ROM has different init.rc, and wont boot without it.

    To solve this, I created "import_boot" command in init, which copies *.rc files and LG init from ramdisk(well, its only folder with these files extracted from ramdisk for now) on sdcard ext partition. This command also puts comments out every line with mount /data, /system or /cache in init.rc file, so LG init wont remount them.
    Commit: https://github.com/Tasssadar/init/commit/dc3fa50d65d1221a4fb819d8ee616765ee043e83, https://github.com/Tasssadar/init/commit/f7bc141b1e4b7d214e49d4bb005c71237231436c and https://github.com/Tasssadar/init/commit/1cde6b6a093d4ac1f961e610c5229605bc517b52

    Format of ROM on ext partition:
    All files from paritions in internal memory copied to sd ext partition with preserved owners and permissions(!).
    So, when I copy data, I do "cp -r -p /data/* /sd-ext/multirom/rom/data/" (I suggest to run this via adb shell while in recovery).
    Currently, I mount /system, /data and /cache from sdcard. If one or more of these folders does not exist, its equivalent from internal memory is used.
    It would be nice to have *.img files from nandroid backups instead of this, but as far as I know, they cant be just mounted.

    As for *.rc files, I put them into /sd-ext/multirom/rom/boot folder. I would like to just copy boot.img and extract files in init, but I did not find way to extract it when I have hardly STL usable in init. I'd like to use kernel's internal decompressor, but I dont know how.

    Limitations
    - Both ROMs must be compatible with one kernel - kernel is already loaded in init
    - ROMs must be for same baseband, obviously
    - Kernel modules(wifi, for example) of both ROMs must be compatible with one kernel. That can be easily solved by copying modules from one ROM to another, though.
    - It will be slower than internal memory.

    Integration with recovery
    Definitely possible & usefull. This is integration in my modified AmonRa recovery: https://github.com/Tasssadar/Amon-R...mmit/bd0232f7379993c296b0223973b81e8c55dc3ee2

    Security risk
    /system on sdcard can't be mounted read-only - I'd have to mount whole sdcard read-only. This is possible security hole, but you cant do much without root anyway, because of permissions. And if you have root, it does not matter if its read-only or not.

    Conclusion
    So, it is possible to have dual-boot. You can use it to develop ROMs(you can directly edit data in /data and /system), as backup ROM when you are testing something in internal memory which does not boot, and you need to call someone or when our devices will be so old that bad blocks in internal memory wont allow us to boot :)

    But, as you can see, It is not something that average user could do, at least not yet. Maybe I could modify recovery to do everything for the user (copy data from /system, /data and /cache, extract *.rc files from boot) and create some flashable ZIPs which would modify the init.

    But there are some problems - some ROMs may not be compatible with this and there are multiple recoveries out there, but theres not single one which is only for our phone - both AmonRa and ClockworkMod are developed for wide range of devices. Yes, both of them can be modified, but I doubt they creators would accept such inflexible and device-specific thing.
    What do you think, is it worth it?

    Tested ROMs (first one is in internal memory, second one is on SDcard)
    Working:
    • Megatron and stock v10a ROM - stock rom is slow
    • Megatron and devoid #froyo-final - like ten times faster than stock xD
    • LightRom(2.2.2) and devoid #froyo-final (and vice versa)
    • Megatron and Megatron - both ROMs can have a2sd
    • Megatron and Mik's CM7 6.5.8 - since v2
    • Gingerbread 2.3.4 from Optimus Net and CM7 6.6.1 (thx eduardogouveia for testing)
    • Stock 2.2.2 and CM7 6.5.8 (thx eduardogouveia for testing) - if you have ext4 partition, you need custom kernel for stock ROM.
    • .void 2.3.4 and stock V20B (thx diazneoones for testing)
    • CM7 6.5.8 and .void 2.3.4 (thx diazneoones for testing)
    • CM7 nightlies and Lupohirp's СM9 (thx aquapp for testing)
    Not working
    • None found yet, but when CM7 is on sdcard, it looses root. Trying to figure out why. - fixed in v10


    PS: I hope I explained it correctly, not exactly good at this. Do not fear to ask, if you don't understand something.
    31
    OK, here goes guide for average user. This is still highly experimental feature, keep that in mind. Backup, backup backups and backup them to PC, read whole guide first, I am not responsible for your bricked phone etc.
    GUIDE:
    1. Requirements
    • Ext4/Ext2/Ext3 partition on SDcard big enough to hold all files from /system and /data, which is from 170mb to 400mb (depends on ROM and apps installed), so I think 512mb partition is minimum (if its 90% or so free).
    • Modified recovery. Only AmonRa and CWM version is available at this time, TeamWin is coming "soon". You can find flashable zip at the bottom of this post, flash it before you proceed to next move. If something goes wrong, you can restore your recovery with zips from here.
    • Kernel with ext2/3/4 support, which is basically every but stock
    • Both ROMs you wanna use must be compatible with same kernel. See Limitations in previous post

    2. MultiROM instalation
    - Via MultiROM Mgr application
    I recommend you do nandroid backup before installing via this app.
    Download MultiROM Manager (link at the bottom of this), tap to "Tap to install via this app" and wait. As simple as that. Mgr will also install recovery for you (It will ask you which one, you can select AmonRa, CWM and none). App can check & install update, too.​
    - Via recovery
    Just download multirom.zip at the bottom of the post, make nandroid backup and flash it. Your current ROM will be the one in internal memory, we will setup the one on the SDCard in next move.
    Now, try to reboot the phone (boot will take little longer, because it has to mount ext partition). If it boots up correctly, then its OK - your ROM is supported. If not, then restore your nandroid backup and post your ROM name here, maybe I'll try to make it working.​

    3. Setup ROM on the sdcard
    Make nandroid backup (I am not kidding, you will need this one), flash ROM which you wanna to have on SDcard, do the first boot (because it will create dalvik-cache, and you dont wanna do that when its already on sdcard) and reboot to recovery again.
    Go to "MultiROM options" menu and select "Create from current ROM". It will do everything for you (it takes time, though). ROM on the sdcard is placed in /sd-ext/multirom/rom/, backups are in /sd-ext/multirom/backup/.
    Restore nandroid backup from beggining of this step and reboot. Wait until Boot manager shows up, and select SDcard as boot location. ROM from sdcard should boot. If your ROM from internal memory boots or if its stuck, something got wrong and you should restore from backup.

    4. MultiROM recovery menu description
    Active/deactive state is for recovery only, you can boot ROMs from backup in boot manager - that means its N-times boot rather than dual-boot.

    When not active(boot from internal memory):
    • Activate (move from backup) - when you already have backup, this will move it to active folder (fast).
    • Activate (copy from backup) - same as above, but it copies it instead of moving
    • Create from current ROM - pretty self-explanatory
    • Create from ZIP file - see http://xdaforums.com/showthread.php?p=22194117#post22194117
    When active(boot from sdcard):
    • Deactivate (move to backup) - Moves current ROM to backup folder, so next boot will be from internal memory
    • Backup - Creates backup of current ROM
    • Erase current ROM - Deletes current rom, next boot will be from internal memory
    • Copy modules from int mem - Copies modules from ROM in internal memory to SDcard. Try this if WiFi does not work in SDcard ROM.
    • Flash ZIP - flash ZIP file to ROM on SD card, for example gapps.

    5. Config file:
    It is recommended to use Multirom Manager(see bottom of this post) to change config file.
    File itself is placed on sdcard and its name is multirom.txt. Description of its contents is in this post(post is updated if something changes): http://xdaforums.com/showthread.php?p=20045183#post20045183

    6. Key bindings:
    Since v11, you also can control MultiROM via touchscreen.

    • Anywhere: Hold Power button to shut down the phone
    • While on main screen:
      • VolUp/Down - list between actions
      • Menu - Confirm action
      • Back - Reboot to recovery
      • Power button - Sleep mode
    • While playing tetris
      • VolUp - return to main screen
      • VolDown - pause
      • Menu - move the piece to left
      • Home - hard-drop
      • Back - rotate piece
      • Search - move the piece to right

    FAQ:
    Q: It is slow!
    A: Its sdcard. It just is slower than nand memory.

    Q: It does not work with my ROM
    A: Post your ROM combination here, maybe I'll see to it.

    Q: When do I need to reflash?
    A: When you flash new ROM or do something which rewrites boot partition. Most (if not all) kernels are using Koush's AnyKernel, so they should not cause any problems.

    Changelog & Download:
    (Always flash newest version)

    Uninstaller: http://www.mediafire.com/?3eco51f2t0at77o (info here)

    Changelog AND DOWNLOAD LINKS have moved to github: http://tasssadar.github.com/multirom/

    Recoveries
    AmonRa - based on 3.06: http://www.mediafire.com/?ld9g81igvze7na0 (9th March 2012 21:57)
    AmonRa - based on 2.2.1: http://www.multiupload.com/7Y5HHNEPOT (20th October 2011 22:29)
    CWM: http://www.mediafire.com/?6rfw0qbrddzq5d8 (9th March 2012 21:57)
    TWRP: http://www.mediafire.com/download.php?o8kphxmfk9l01tl (21st October 2012 23:49)

    MultiROM Manager app
    http://xdaforums.com/showthread.php?p=20610052#post20610052

    (Always use newest version)
    v24 - http://www.mediafire.com/download.php?1xy52tamzepibrx (TWRP support)
    v21 - http://www.mediafire.com/?u9c3bmfbtf57dtm (Add charger settings)
    v18 - http://www.mediafire.com/?g1lpsp66jc1cb1b (Add boot location settings)
    v17 - http://www.mediafire.com/?l1li51sseaisz5j (Add brightness setting)
    v15 - http://www.multiupload.com/B65WPFMFXP (Show & reset tetris high score)
    v14 - http://www.multiupload.com/FWB5UBSMO1 (Updater now also check for app update, some minor fixes)
    v13 - http://www.multiupload.com/NYYBX9CAFD (Update translations, add support for optimus V - http://xdaforums.com/showthread.php?p=20657898#post20657898)
    v11 - http://www.multiupload.com/1L3294ZAU7 (Fix mount issues on some roms, add menu to main screen, add link to xda)
    v10 - http://www.multiupload.com/B3AVSFKDOW (Create /sd-ext/multirom folder on install)
    v9 - http://www.multiupload.com/WW7TUNP7RY (read http://xdaforums.com/showthread.php?p=20624306#post20624306)
    v8 - http://www.multiupload.com/6OD7RQ74OE
    v7 - http://www.multiupload.com/DJKMUGIVJ0
    10
    Hey guys, here's the TWRP recovery modified for MultiROM:

    http://www.mediafire.com/download.php?o8kphxmfk9l01tl

    MultiROM menu is "Advanced->MultiROM". It is mostly the same thing, but some useless menu options are missing.
    I did not test it very throughly, so, as always, do backup everything. Plus, I had to use different (smaller) kernel, because the recovery image was too big. Should not affect anything, but you should know I changed the kernel.

    MultiROM Mgr v24 is here, too. The only change is support for TWRP and removal of that "Configuration saved" message.

    http://www.mediafire.com/download.php?1xy52tamzepibrx

    It took me longer than I expected, sorry, but my Nexus 7 arrived last week and I simply _had_ to play with it :)
    10
    Okay, after about a year of no activity, this will surely come as a surprise, but I feel like I should say it - this project is now discontinued and will recieve no further updates nor support. The downloads still work, so if you feel adventureus, go ahead.

    It's been a great experience and it helped me to make second version of MultiROM (for Nexus 7) the right way. Thank you all.
    8
    MultiROM v17 was released. It features possibility to set SD card as default boot location, as was suggested by arnab321. It is set by two new config options:

    Code:
    default_boot = 0
    default_boot_sd = ""
    default_boot can be 0 (for internal memory) or 1 (for sd card)
    default_boot_sd is name of the folder in backup folder of MultiROM (without /sd-ext/multirom/backup/). If it is blank, active ROM is used if possible. It must be enclosed by quotation marks, eg.

    Code:
    default_boot_sd = "supermegacoolrom"
    stands for folder /sd-ext/multirom/backup/supermegacoolrom.

    New MultiROM Manager (v18) was also released, it implements these two new options.

    Bug in recoveries with spaces in ZIP file's name was fixed and "Flash ZIP" option was added into CWM recovery (it was already available in AmonRa). This option is available when there is active rom selected and you can flash for example gapps to ROM on sd card.

    By the way, I had to make so many packages (ZIPs or for MultiROM Mgr's updater) that it almost took longer to pack them than coding itself :D