Post Reply

[MOD][OCT 05] MultiROM v28b (Redesigned GUI!)

OP domicq

18th September 2014, 04:29 PM   |  #1  
OP Senior Member
Thanks Meter: 192
 
182 posts
Join Date:Joined: Jan 2013
More

Introduction
MultiROM is one-of-a-kind multi-boot mod for Htc One (m7). It can boot any Android ROM as well as other systems like Ubuntu Touch, Plasma Active, Bohdi Linux or WebOS port. Besides booting from device's internal memory, MultiROM can boot from USB drive connected to the device via OTG cable. The main part of MultiROM is a boot manager, which appears every time your device starts and lets you choose ROM to boot. You can see how it looks on the left image below and in gallery. ROMs are installed and managed via modified TWRP recovery. You can use standard ZIP files to install secondary Android ROMs, daily prebuilt image files to install Ubuntu Touch and MultiROM even has its own installer system, which can be used to ship other Linux-based systems.

Features:
* Multiboot any number of Android ROMs
* Restore nandroid backup as secondary ROM
* Use for example Ubuntu Touch or Desktop alongside with Android, without the need of device formatting
* Boot from USB drive attached via OTG cable



Warning!
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.

Installation
1. Via MultiROM Manager app
This is the easiest way to install everything MultiROM needs. Install the app and select MultiROM and recovery on the Install/Update card. If the Status card says Kernel: doesn't have kexec-hardboot patch! in red letters, you have to install also patched kernel - either select one on the Install/Update card or get some 3rd-party kernel here on XDA. You are chosing kernel for your primary ROM, not any of your (future) secondary ROMs, so select the version accordingly.
Press "Install" on the Install/Update card to start the installation.
2. Manual installation
Note 1: Your device must not be encrypted (hint: if you don't know what it is, then it is not encrypted).

MultiROM has 3 parts you need to install:
  • MultiROM (multirom-YYYYMMDD-vXX-UNOFFICIAL-m7.zip) - download the ZIP file from second post and flash it in recovery.
  • Modified recovery (TWRP_multirom_m7_YYYYMMDD.img) - download the IMG file from second post and use fastboot or Flashify app to flash it.
  • Patched kernel - You can use either one of the stock ones in second post or third-party kernels which include the patch, you can see list in the second post. Download the ZIP file and flash it in recovery.
You current rom will not be erased by the installation.
Download links are in the second post.


Adding ROMs
1. 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 Touch
Use the MultiROM Manager app to install Ubuntu Touch.

Ubuntu Touch is in development - MultiROM will have to be updated to keep up with future changes in Ubuntu, so there's a good chance this method stops working after a while and I'll have to fix it.

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.


Updating/changing ROMs
1. Primary ROM (Internal)
  • Flash ROM's ZIP file as usual, do factory reset if needed (it won't erase secondary ROMs)
  • Go to Advanced -> MultiROM in recovery and do Inject curr. boot sector.
2. Secondary Android ROMs
If you want to change the ROM, delete it and add new one. To update ROM, follow these steps:
  • Go to Advanced -> MultiROM -> List ROMs and select the ROM you want to update.
  • Select "Flash ZIP" and flash ROM's ZIP file.
  • In some cases, you might need to flash patched kernel - get coresponding patched kernel version from second post and flash it to the secondary ROM sama way you flashed ROM's ZIP file.


Explanation of recovery menus
Main 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.
- Settings - well, settings.

Manage ROM
- 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.

Source code
MultiROM - https://github.com/Tasssadar/multirom (branch master)
Modified TWRP - https://github.com/Tasssadar/Team-Win-Recovery-Project (branch master)
Device files - soon


Donations to Tassadar
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
Last edited by domicq; 5th October 2014 at 07:01 PM. Reason: Update to 28b
The Following 23 Users Say Thank You to domicq For This Useful Post: [ View ]
18th September 2014, 04:30 PM   |  #2  
OP Senior Member
Thanks Meter: 192
 
182 posts
Join Date:Joined: Jan 2013
More
Downloads
1. Main downloads

MultiROM: multirom-20141005-v28b-UNOFFICIAL-m7.zip
Modified recovery (based on TWRP): TWRP_multirom_m7_20140926.img
Working on it MultiROM Manager Android app: Google Play or link to APK

You need to have kernel with kexec-hardboot patch only in your primary ROM!
2. third-party kernels with kexec-hardboot patch

ElementalX - http://forum.xda-developers.com/show....php?t=2249774
teaMSeven - http://forum.xda-developers.com/show....php?t=2307371
3. Uninstaller

MultiROM uninstaller: multirom_uninstaller.zip
Flash this ZIP file to remove MultiROM from your device. It will erase all secondary ROMs. If you don't want MultiROM menus in recovery, re-flash clean TWRP, but it is not needed - those menus don't do anything if MultiROM is not installed.

Changelog
Code:
MultiROM v28b
=====================
* Now working Sense-based ROM as secondary.

MultiROM v28a
=====================
* Some edits in device files

MultiROM v28
=====================
* Fix freezes in the boot manager
* You can now swipe between the tabs in the boot manager
* Minor UI adjustments
* SailfishOS support (for certain devices)

MultiROM v27
=====================
* Redesign the boot manager GUI. Looks much better now.
* Fix separate radio.img not working on Android L preview ROMs
* Fix issues with unaccessible /sdcard on Android L preview. Do NOT run
  restorecon manually on /data/media, ever - it breaks MultiROM!
* Workaround bug which caused franco.Kernel on N5 to break secondary ROM's
  boot
* Update Ubuntu Touch init scripts
* Use power+volume down (you have to press power first!) to save screenshots.
  They are now PNG images and are saved to /sdcard/Pictures/Screenshots/.

MultiROM v26
=====================
* Fix boot into secondary ROM from the MultiROM Manager app broken in v25

MultiROM v25
=====================
* Add support for the Android L preview
* Misc F2FS fixes

MultiROM v24
=====================
* Add F2FS support
* Show icons in ROM list, configurable via MultiROM Manager app
* Improve compatibility with different ROMs and kernels when booting a ROM
  from the Android app

MultiROM v23
=====================
* Fix compatibility with Ubuntu Touch rev 290 and higher. If your Ubuntu
  installation won't boot, go to recovery and use "Re-patch init" option in
  Advanced -> MultiROM -> List ROMs -> *ubuntu*.

MultiROM v22b
=====================
* Mount the real /data partition to folder /android/realdata in Ubuntu Touch,
  enabling sharing data between Android and Ubuntu Touch. See
  http://bit.ly/ut_sharing for more info.

MultiROM v22a
=====================
* Fix hardware keys not working for some users
* Update Ubuntu Touch patches

MultiROM v22
=====================
* Fix linux-type ROMs (Ubuntu Touch) failing to boot for some users

MultiROM v21
=====================
* Revert "mount /system in secondary ROMs read-only" - if done so, SuperSU
  breaks the boot.

MultiROM v20
=====================
* Support booting ROMs directly from Manager App
* Fix FCs on CyanogenMod-based ROMs
* Fix support for USB drives formatted with NTFS, broken in v17
* Mount /system in secondary ROMs read-only

MultiROM v19
=====================
* Implement "boot the last ROM" auto-boot type

MultiROM v18
=====================
* Fix silent-but-unpleasant crash with exFAT

MultiROM v17
=====================
* Changes to support MultiROM Manager app
* Add support for exFAT

MultiROM v16a
=====================
* Fix kexec not working on some kernels

MultiROM v16
=====================
* Add overscroll bounceback effect to rom list
* Add support for controling via physical keys
* Bunch of under-the-hood changes for mako and m7 support

MultiROM v15
=====================
* Fix cmdline handling for kexec, doesn't change anything for grouper, just to
  have the same version for both flo and grouper (no need to update)

MultiROM v14
=====================
* Find and change correct fstab (fixes freezes on boot)
* Mount /realdata without nosuid (fixes no root on 4.1 and 4.2 ROMs)
* Use libbootimg to work with boot.img files

MultiROM v13
=====================
* Partial rewrite of the codebase to make it compatible with multiple devices 
* Add run-on-boot scripts (for advanced users who know linux and bash, see
  https://github.com/Tasssadar/multiro...n-boot-scripts)
* Use libbootimg to work with boot.img files

MultiROM v12a
=====================
* Detect kexec-hardboot patch in kernel even if /proc/config.gz is not
  available

MultiROM v12
=====================
* Implement screen rotation and 1280x800 theme
* Fix auto-boot option
* Fix listview's fast scrollbar behavior

MultiROM v11
=====================
* Option to hide Internal ROM
* Option to rename Internal ROM
* Support for Ubuntu Touch

MultiROM v10
=====================
* Non-error message boxes aren't red now
* Add possibility to switch between several color themes, go to misc tab and
  try it out
* New MultiROM installer format
* Add "discard" option to /data mounting
* Add battery status to misc tab (bottom right corner)
* Add brightness setting
* Implement ADB

MultiROM v9
=====================
* Make it compatible with LZ4 ramdisk compression
* Improve touch-related code. You should not get anymore phantom button
  presses nor listview freezes

MultiROM v8
=====================
* Fix kexec-hardboot with new bootloader v4.18
* Search for already present USB drives on start
* Centre "MultiROM" title in main UI

MultiROM v7
=====================
* Correctly boot Ubuntu after recent kernel update. Read this post:
  http://forum.xda-developers.com/show...postcount=1031
* Remove specific support for Ubuntu - it is now handled as "generic linux"
  (with rom_info.txt file). Nothing should change for the users
* Sort ROMs alphabetically
* Add "progress dots" to USB screen, so that user knows that it is doing
  something
* Recovery was also updated, don't forget to flash it

MultiROM v6
=====================
* Properly check for kexec-hardboot patch in kernel
* Internal" is always first in ROM list now, as originally intended
* Much more logging for kexec-related stuff
* Print last 50 lines of klog to "Emergency reboot" screen

MultiROM v5-2
=====================
* Fix ubuntu
* MultiROM still says it's v5. I did not change the version number because it
  is literally one character fix.

MultiROM v5
=====================
* Support for ROMs with configuration file. This makes porting
  Ubuntu/plasma/webos/anything much more easier. See the third post.
* MultiROM will no longer let you boot Ubuntu ROM if it's name contains
  spaces, because the boot would fail.

MultiROM v4
=====================
* Fix GPS on ROMs other than Internal
* Minor UI changes

MultiROM v3
=====================
* Switch to Ubuntu 13.04. Version 12.10 is no longer supported
* Switch to kexec-hardboot based multi-booting. Read the first post.
* Add support for booting from USB drive
* MediaScanner no longer scans /sdcard/multirom, which means no useless
  battery drain
* Recovery was updated, make sure to flash it, too.

MultiROM v2
=====================
* Add support for Ubuntu on 3G version of Nexus 7
* Fix some issues with 4.2 ROMs
* Recovery was updated, make sure to flash it, too.

MultiROM v1
=====================
* Initial version

Recoveries:
Code:
26.9.2014
=====================
* In app finally as MultiROM-Recovery.

22.9.2014
=====================
* Working USB-OTG

18.9.2014
=====================
* Initial version
Last edited by domicq; 5th October 2014 at 07:01 PM. Reason: Update to 28b
The Following 13 Users Say Thank You to domicq For This Useful Post: [ View ]
18th September 2014, 04:44 PM   |  #3  
dd98's Avatar
Recognized Contributor
Thanks Meter: 1,200
 
1,112 posts
Join Date:Joined: May 2013
More
@domicq thank you for your efforts, have to try this out

EDIT: TWRP doesn't work, I just get a reboot
Last edited by dd98; 18th September 2014 at 04:52 PM.
18th September 2014, 05:02 PM   |  #4  
OP Senior Member
Thanks Meter: 192
 
182 posts
Join Date:Joined: Jan 2013
More
Quote:
Originally Posted by dd98

@domicq thank you for your efforts, have to try this out

EDIT: TWRP doesn't work, I just get a reboot


I have any problem with TWRP, specially for you have i downloaded and flashed recovery from my post. Try flash it again, or flash clean twrp and then flash mrom-twrp
18th September 2014, 05:12 PM   |  #5  
dd98's Avatar
Recognized Contributor
Thanks Meter: 1,200
 
1,112 posts
Join Date:Joined: May 2013
More
Quote:
Originally Posted by domicq

I have any problem with TWRP, specially for you have i downloaded and flashed recovery from my post. Try flash it again, or flash clean twrp and then flash mrom-twrp

Unfortunately it still doesn't work, I tried flashing the Official TWRP, booting into it and then flashing your MultiROM TWRP but it didnt work
18th September 2014, 05:38 PM   |  #6  
Junior Member
Thanks Meter: 0
 
13 posts
Join Date:Joined: Oct 2013
It is possible install Miui as secondary Rom ? Thanks

Enviado desde mi HTC One mediante Tapatalk
18th September 2014, 05:41 PM   |  #7  
OP Senior Member
Thanks Meter: 192
 
182 posts
Join Date:Joined: Jan 2013
More
Quote:
Originally Posted by kevinlopez97

It is possible install Miui as secondary Rom ? Thanks

Enviado desde mi HTC One mediante Tapatalk

I haven't tried that. But you can try it.
18th September 2014, 06:15 PM   |  #8  
mitchst2's Avatar
Senior Member
Thanks Meter: 287
 
1,014 posts
Join Date:Joined: Nov 2011
More
Quote:
Originally Posted by kevinlopez97

It is possible install Miui as secondary Rom ? Thanks

Enviado desde mi HTC One mediante Tapatalk

Everything I've tried works including miui (I think too many to remember). Only issues I've had is with ROMs that use aroma. To install these as secondary.....

Nandroid original primary
Flash new Rom as primary
Boot new Rom
Nandroid new primary
Restore original primary
Install new primary as secondary from nandroid

Never had to change recovery either.

Always back primary when trying a new secondary.

Sent from my HTC One
Last edited by mitchst2; 18th September 2014 at 06:17 PM.
18th September 2014, 08:50 PM   |  #9  
OP Senior Member
Thanks Meter: 192
 
182 posts
Join Date:Joined: Jan 2013
More
MultiROM Manager - Unofficial edit with m7 support



mrommgr-147-m7.apk (official release comes maybe next week, it has problems with checking if device has multirom twrp, so you can use apk for renaming roms and adding rom icons)
Last edited by domicq; 18th September 2014 at 09:30 PM.
The Following 3 Users Say Thank You to domicq For This Useful Post: [ View ]
18th September 2014, 10:30 PM   |  #10  
ANDR01DN00B's Avatar
Senior Member
Flag Your downstairs basement
Thanks Meter: 524
 
942 posts
Join Date:Joined: Apr 2013
More
You sir are fantastic. In going to try three ROMs: SinlessGPE, L preview port, and ViperONE. Hope all goes well

Post Reply Subscribe to Thread

Tags
dual boot, dualboot, multirom, sense and aosp
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes


Top Threads in One Original Android Development by ThreadRank