[MOD][16 APR] MultiROM v10 (updated to TWRP 2.5)
MultiROM is multi-boot solution for Nexus 7. It can boot android ROM while keeping the one in internal memory intact or boot Ubuntu without formating the whole device. MultiROM can boot either from internal memory of the device or from USB flash drive. Some parts (eg. Ubuntu) require patched kernel, more about that later. You can also watch a video which shows it in action.
It _is_ dangerous. This whole thing is basically one giant hack - none of these systems are made with multibooting in mind.
It is messing with boot sector and data partition.
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.
In v3, MultiROM switched to kexec-hardboot based method of multibooting ROMs with different kernel (thanks Mike Kasick and guys at #ubuntu-arm for kexec-hardboot). This is much cleaner than method used before, but requires patched kernel, on both sides - the kernel whichs is active, and the kernel which is supposed to be multi-booted.
MultiROM will notify you if support for kexec-hardboot is missing and will not allow you boot ROMs which need it (Ubuntu and Android roms which do not
share kernel). I've patched stock 4.1 and 4.2 kernels (download in second post) and I am currently trying to get patches into cyanogenmod kernel, but if you use some custom kernel, you need to either compile the kernel yourself, or ask the developer to merge this patch: post with links and explanation
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.
Your device must not
be encrypted (hint: if you don't know what it is, then it is not encrypted).
There have been reports that (not only) MultiROM does not work properly with older bootloaders. Update it to version 4.13 in case you have problems.
MultiROM has two parts - the multi-boot thingy itself and modified recovery, used to manage MultiROM, you have to install both of these (it does not matter which one will you install first). In addition to that, it requires patched kernel - if you didn't know that yet, read the whole goddamn post you lazybones.
Flash the multirom_vX_n7.zip via recovery and then the modified recovery via fastboot:
fastboot flash recovery recovery.img
The recovery is built for grouper, but it is hacked so that it can flash ZIP files for both grouper and tilapia. It is like that because it apparently works okay that way, so there is no reason for me to compile 2 recoveries. I however do not recommend flashing OTA updates with this recovery on tilapia.
You current rom will not be erased by the installation.
Download links are in the second post.
Adding ROMs1. Android
Go to recovery, select Advanced -> MultiROM -> Add ROM. Select the ROM's zip file and confirm. As for the space, clean installation of stock 4.2 after first boot (with dalvik cache generated and connected to google account) takes 676mb of space.
2. Ubuntu Phone/Touch/Tablet dev preview
3. Ubuntu Desktop
Download Ubuntu 13.04 image from here
(The biggest one, "raring-preinstalled-desktop-armhf+nexus7.img.gz"). Put the image in the memory of N7 or to USB flash drive and go to recovery. Select Advanced -> MultiROM -> Add ROM and choose "Ubuntu" as ROM type. Then select the Ubuntu's image and confirm. Clean installation of Ubuntu is 1.5gb big, and takes a while (10 minutes?) to install.
The first boot takes a bit longer, and 13.04 stays a while (30-60s) in console ("Enter login:") before the GUI shows up, so just wait a while.
Ubuntu ROM must not have spaces in name!
Using Ubuntu on N7
, Frequently Asked Questions
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, NTFS 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 NTFS or 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.
Re-flash boot.img somehow, either get it from your ROM's installation zip and flash via fastboot or restore from backup. If you want to erase ROMs installed to multirom, erase folder /sdcard/multirom.
Updating/changing ROM in internal memory
First, make that internal ROM is active - simply boot it. Then, go to recovery and install ROM's zip file. Finally, do Advanced->MultiROM->Inject curr. boot sector.
Explanation of recovery menusMain menu
- Add ROM
- add ROM to boot
- List ROMs
- list installed ROMs and manage them
- Inject boot.img file
- When you download for example kernel, which is distrubuted as whole boot.img (eg. franco kernel), you have to use this option on it, otherwise you would lose MultiROM.
- Inject curr. boot sector
- Use this option if MultiROM does not show up on boot, for example after kernel installation.
- well, settings.
- Rename, delete
- I believe these are obvious
- Flash ZIP
(only Android ROMs) - flash ZIP to the ROM, for example gapps
- Add/replace boot.img
- replaces boot.img used by this ROM, this is more like developer option.
- Re-patch init
- this is available only for ubuntu. Use it when ubuntu cannot find root partition, ie. after apt-get upgrade which changed the init script.
The only settings so far is to set ROM which is booted as default.
MultiROM - https://github.com/Tasssadar/multirom/tree/nexus7 (branch nexus7)
Modified TWRP - https://github.com/Tasssadar/Team-Win-Recovery-Project (branch nexus7)
Installer - https://github.com/Tasssadar/multirom_installer
Stock kernel w/ kexec-hardboot patch - https://github.com/Tasssadar/kernel_...kexec-hardboot
CM kernel w/ kexec-hardboot patch - https://github.com/Tasssadar/android...l_asus_grouper
I'd be glad if you could spare a few bucks. You can use either paypal
or Bitcoins, my address is 172RccLB2ffSnJyYwjYbUD3Nx4QX3R8Ris
Thanks to all donors, it is much appreciated