-NOTE: The following guide has been specifically written for LG P-880 (Optimus 4X HD), after a lot of reading, flashing and managing ROMs and kernels on MultiROM; I have been asked by some users, and now it's here, I hope it to be clear and useful; it includes some parts extracted from the original Nexus7 thread, and readapted for our device. For the original MultiROM thread by @Tasssadar, go at the link below:
http://xdaforums.com/showthread.php?t=2457063
MultiROM is one-of-a-kind multi-boot mod, originally built for Nexus 7 by @Tasssadar, ported and re-adapted to work with LG P-880 by @Adam77Root, then by @Fluoxetine, and finally by Mourta @IcanhasLG (coming soon, don't ask for ETA's, please). It can boot any Android ROM as well as other systems like Ubuntu Touch, once they are ported to our device. The main part of MultiROM is a boot manager, which appears every time your device starts and lets you choose ROM to boot. ROMs are installed and managed via modified TWRP recovery. You can use standard ZIP files to install secondary Android ROMs, or restore nandroid backups as secondary ROMs, too.
Features:
* Multiboot any number of Android ROMs
* Restore nandroid backup as secondary ROM
1) INSTALLATION
MultiROM has 3 parts you need to install:
* MultiROM.zip (A new version built by Mourta @IcanhasLG will come soon; actually, the latest MultiROM.zip by @Fluoxetine can be found here: https://app.box.com/s/fmigiyd8nsprc8jxwahn) - download the ZIP file and flash it in recovery.
* Modified TWRP recovery (the actual modified recovery is the one provided by @Adam77Root - go here for Adam's modified TWRP thread and for download links: http://xdaforums.com/showthread.php?p=46431004). Download the latest IMG file and use terminal emulator to flash it (the easier way to flash it without a PC). Please, follow the steps below for a safe flash:
-Rename the IMG file into "recovery.img"
-Open terminal emulator
-Type "su", then enter
-Type "cat /mnt/sdcard/recovery.img >/dev/block/mmcblk0p1", then enter
-Type "sync", then enter
-Type "exit", then enter
-Reboot your phone
* Kexec-hardboot patched kernel - You can use iodak (patched since from v8), Mourta, or Cyodak. Download the ZIP file and flash it in recovery.
IMPORTANT: You current rom will NOT be erased by the installation.
2) ADDING ROMs:
* Go to recovery, select Advanced -> MultiROM -> Add ROM. At this point, you can choice if you want to share or not to share internal ROM's kernel with your new secondary rom: if you want to, just select the "Share kernel with Internal ROM" option; if you don't, select the "don't share" option. The sharing mode is helpful if you need to use an anykernel kernel with a secondary ROM (see step 2.1) or just to share the Internal ROM's kernel with secondaries, if you need it.
* Select the ROM's zip file you want to flash, or the nandoid backup file you want to restore as a secondary ROM, and confirm.
* Flash Gapps package (optional)
*Flash custom kernel (optional) (WARNING: only no-anykernel patched kernels can directly be flashed on the top of secondary ROMs; if you try flashing an anykernel patched kernel, you will end in a bootloop; if you want to use an anykernel patched kernel on a secondary ROM, go to step 2.1)
2.1) USING ANYKERNEL PATCHED KERNELS WITH SECONDARY ROMs
Actually, MultiROM doesn't support direct flashing of anykernel patched kernels on the top of secondary ROMs. There are some workarounds to let secondary ROMs use this kind of kernels:
a. Share the kernel with internal ROM:
If you flashed an anykernel patched kernel (it must be kexec-hardboot patched, too) on the top of internal ROM, you will be able to share it with secondary ROMs too. If you did it, just follow the steps below, when adding a new secondary ROM:
* Go to recovery, select Advanced -> MultiROM -> Add ROM. At this point, you can choose if you want to share or not to share internal ROM's kernel with your new secondary rom: if you want to, just select the "Share kernel with Internal ROM" option.
b. Remove original boot.img from secondary ROM:
If you flashed a secondary ROM without selecting the "Share kernel with internal ROM" option, but you flashed an anykernel patched kernel (it must be kexec-hardboot patched, too) on the top of internal ROM before, you can share it with secondary ROM following the steps below:
* In recovery, Advanced -> MultiROM -> List ROMs -> "Your rom's name", there is a button: "Remove boot.img". This action switches ROM to "share kernel" mode. Flashing a ZIP which contains kernel (even ROM update!) into that secondary ROM could put it into "don't share" mode again.
* After removing the original boot.img, you will see a new "Inject boot.img" button replacing the old "Remove boot.img" one: this option allows you to inject your secondary ROM with a different boot.img, backed up from other kernels you flashed before on the top of other ROMs, or backed up directly from other ROMs. Do this at your own risk, it may cause bugs or not, depending by your knowledge of what you are going to inject here.
At any rate, I personally tried the a. step above, and after that I tried to flash a ROM's zip update: the "share kernel" mode hasn't been turned off.
3) UPDATING/CHANGING ROMs
a. Primary ROM (Internal)
* Wipe /cache, /dalvik, /system, or do factory reset if needed (it won't erase secondary ROMs)
* Flash ROM's ZIP file as usual
* Flash Gapps package (optional)
*Flash custom kernel (optional) (WARNING: if you want secondary ROMs to properly boot, you should flash only kexec-hardboot patched kernels, on the top of Internal ROM. Flashing a no-patched kernel won't allow MultiROM to manage secondary ROMs' boot).
* After erasing /system partition, or flashing a new kernel, a "bug" could happen: the menu with all the ROMs won't show up during boot.
If so, re-flash the MultiROM zip after having flashed the ROM update and the other related stuff, or go to recovery, Advanced -> MultiROM -> Inject curr. boot sector.
The reason for this is that something rewrote your boot.img, which happens for example when you flash a kernel. MultiROM's boot menu is part of the boot image, so it has to be added into it again.
b. Secondary Android ROMs
If you want to change a ROM, select it in Advanced -> MultiROM -> List ROMs, delete it using the "Delete" button, then add the new one (following the instructions explained in step 2). To update ROM, follow these steps:
* Go to Advanced -> MultiROM -> List ROMs and select the ROM you want to update.
* Wipe /cache, /dalvik, and so on, by pressing the proper button showed on the screen
* Select "Flash ZIP" and flash ROM's ZIP file.
* Flash Gapps package (optional)
*Flash custom kernel (optional) (WARNING: only no-anykernel patched kernels can directly be flashed on the top of secondary ROMs; if you try flashing an anykernel patched kernel, you will end in a bootloop; if you want to use an anykernel patched kernel on a secondary ROM, go to step 2.1)
4) ERASING SECONDARY ROMs
* Just go to Advanced -> MultiROM -> List ROMs and select the ROM you want to delete.
* Select "Delete"
5) BOOTING SECONDARY ROMs
* Turn on the phone; after the LG logo, the MultiROM boot menu will appear. If you don't do anything, Internal ROM will boot. If you want to boot into secondary ROMs, you have to tap on the countdown pop-up
* After that, you can choose your desired ROM, then press "Boot". For secondary ROMs which don't share kernel with internal ROM: press "Boot" and hold down the power button until phone vibrates (actually, our MultiROM has a bug which doesn't allow secondary ROMs to boot, if you don't hold power button after having tapped "Boot", if you haven't shared kernel with internal ROM.)
6) UNINSTALLING MultiROM
The easiest way is to just reflash your custom kernel or a ROM zip on the top of your internal ROM, after having made the usual wipes: this will erase the MultiROM binaries.
More updates will come when we'll have a new version, such as for swapping ROMs through internal and secondary positions, making the internal ROM secondary, and so on (these features don't work fine, at the moment).
http://xdaforums.com/showthread.php?t=2457063
MultiROM is one-of-a-kind multi-boot mod, originally built for Nexus 7 by @Tasssadar, ported and re-adapted to work with LG P-880 by @Adam77Root, then by @Fluoxetine, and finally by Mourta @IcanhasLG (coming soon, don't ask for ETA's, please). It can boot any Android ROM as well as other systems like Ubuntu Touch, once they are ported to our device. The main part of MultiROM is a boot manager, which appears every time your device starts and lets you choose ROM to boot. ROMs are installed and managed via modified TWRP recovery. You can use standard ZIP files to install secondary Android ROMs, or restore nandroid backups as secondary ROMs, too.
Features:
* Multiboot any number of Android ROMs
* Restore nandroid backup as secondary ROM
1) INSTALLATION
MultiROM has 3 parts you need to install:
* MultiROM.zip (A new version built by Mourta @IcanhasLG will come soon; actually, the latest MultiROM.zip by @Fluoxetine can be found here: https://app.box.com/s/fmigiyd8nsprc8jxwahn) - download the ZIP file and flash it in recovery.
* Modified TWRP recovery (the actual modified recovery is the one provided by @Adam77Root - go here for Adam's modified TWRP thread and for download links: http://xdaforums.com/showthread.php?p=46431004). Download the latest IMG file and use terminal emulator to flash it (the easier way to flash it without a PC). Please, follow the steps below for a safe flash:
-Rename the IMG file into "recovery.img"
-Open terminal emulator
-Type "su", then enter
-Type "cat /mnt/sdcard/recovery.img >/dev/block/mmcblk0p1", then enter
-Type "sync", then enter
-Type "exit", then enter
-Reboot your phone
* Kexec-hardboot patched kernel - You can use iodak (patched since from v8), Mourta, or Cyodak. Download the ZIP file and flash it in recovery.
IMPORTANT: You current rom will NOT be erased by the installation.
2) ADDING ROMs:
* Go to recovery, select Advanced -> MultiROM -> Add ROM. At this point, you can choice if you want to share or not to share internal ROM's kernel with your new secondary rom: if you want to, just select the "Share kernel with Internal ROM" option; if you don't, select the "don't share" option. The sharing mode is helpful if you need to use an anykernel kernel with a secondary ROM (see step 2.1) or just to share the Internal ROM's kernel with secondaries, if you need it.
* Select the ROM's zip file you want to flash, or the nandoid backup file you want to restore as a secondary ROM, and confirm.
* Flash Gapps package (optional)
*Flash custom kernel (optional) (WARNING: only no-anykernel patched kernels can directly be flashed on the top of secondary ROMs; if you try flashing an anykernel patched kernel, you will end in a bootloop; if you want to use an anykernel patched kernel on a secondary ROM, go to step 2.1)
2.1) USING ANYKERNEL PATCHED KERNELS WITH SECONDARY ROMs
Actually, MultiROM doesn't support direct flashing of anykernel patched kernels on the top of secondary ROMs. There are some workarounds to let secondary ROMs use this kind of kernels:
a. Share the kernel with internal ROM:
If you flashed an anykernel patched kernel (it must be kexec-hardboot patched, too) on the top of internal ROM, you will be able to share it with secondary ROMs too. If you did it, just follow the steps below, when adding a new secondary ROM:
* Go to recovery, select Advanced -> MultiROM -> Add ROM. At this point, you can choose if you want to share or not to share internal ROM's kernel with your new secondary rom: if you want to, just select the "Share kernel with Internal ROM" option.
b. Remove original boot.img from secondary ROM:
If you flashed a secondary ROM without selecting the "Share kernel with internal ROM" option, but you flashed an anykernel patched kernel (it must be kexec-hardboot patched, too) on the top of internal ROM before, you can share it with secondary ROM following the steps below:
* In recovery, Advanced -> MultiROM -> List ROMs -> "Your rom's name", there is a button: "Remove boot.img". This action switches ROM to "share kernel" mode. Flashing a ZIP which contains kernel (even ROM update!) into that secondary ROM could put it into "don't share" mode again.
* After removing the original boot.img, you will see a new "Inject boot.img" button replacing the old "Remove boot.img" one: this option allows you to inject your secondary ROM with a different boot.img, backed up from other kernels you flashed before on the top of other ROMs, or backed up directly from other ROMs. Do this at your own risk, it may cause bugs or not, depending by your knowledge of what you are going to inject here.
At any rate, I personally tried the a. step above, and after that I tried to flash a ROM's zip update: the "share kernel" mode hasn't been turned off.
3) UPDATING/CHANGING ROMs
a. Primary ROM (Internal)
* Wipe /cache, /dalvik, /system, or do factory reset if needed (it won't erase secondary ROMs)
* Flash ROM's ZIP file as usual
* Flash Gapps package (optional)
*Flash custom kernel (optional) (WARNING: if you want secondary ROMs to properly boot, you should flash only kexec-hardboot patched kernels, on the top of Internal ROM. Flashing a no-patched kernel won't allow MultiROM to manage secondary ROMs' boot).
* After erasing /system partition, or flashing a new kernel, a "bug" could happen: the menu with all the ROMs won't show up during boot.
If so, re-flash the MultiROM zip after having flashed the ROM update and the other related stuff, or go to recovery, Advanced -> MultiROM -> Inject curr. boot sector.
The reason for this is that something rewrote your boot.img, which happens for example when you flash a kernel. MultiROM's boot menu is part of the boot image, so it has to be added into it again.
b. Secondary Android ROMs
If you want to change a ROM, select it in Advanced -> MultiROM -> List ROMs, delete it using the "Delete" button, then add the new one (following the instructions explained in step 2). To update ROM, follow these steps:
* Go to Advanced -> MultiROM -> List ROMs and select the ROM you want to update.
* Wipe /cache, /dalvik, and so on, by pressing the proper button showed on the screen
* Select "Flash ZIP" and flash ROM's ZIP file.
* Flash Gapps package (optional)
*Flash custom kernel (optional) (WARNING: only no-anykernel patched kernels can directly be flashed on the top of secondary ROMs; if you try flashing an anykernel patched kernel, you will end in a bootloop; if you want to use an anykernel patched kernel on a secondary ROM, go to step 2.1)
4) ERASING SECONDARY ROMs
* Just go to Advanced -> MultiROM -> List ROMs and select the ROM you want to delete.
* Select "Delete"
5) BOOTING SECONDARY ROMs
* Turn on the phone; after the LG logo, the MultiROM boot menu will appear. If you don't do anything, Internal ROM will boot. If you want to boot into secondary ROMs, you have to tap on the countdown pop-up
* After that, you can choose your desired ROM, then press "Boot". For secondary ROMs which don't share kernel with internal ROM: press "Boot" and hold down the power button until phone vibrates (actually, our MultiROM has a bug which doesn't allow secondary ROMs to boot, if you don't hold power button after having tapped "Boot", if you haven't shared kernel with internal ROM.)
6) UNINSTALLING MultiROM
The easiest way is to just reflash your custom kernel or a ROM zip on the top of your internal ROM, after having made the usual wipes: this will erase the MultiROM binaries.
More updates will come when we'll have a new version, such as for swapping ROMs through internal and secondary positions, making the internal ROM secondary, and so on (these features don't work fine, at the moment).
Last edited: