[MOD] MultiROM v33

Search This thread
Jun 29, 2014
38
311
How about adding dtb.img support for arm64 devices as @Tasssadar did it here for arm devices?
Other arm64 have dtb.img and zImage separately. So would be good for those devices :)
The dtb from the kernel is not used: the hardboot patch exports the dtb used to boot the device, so that's used instead.


Does anyone want to take over development of this project? I'm not sure if I have the time or the experience needed to keep this project updated (the kernel is still from the January security update) or to fix issues such as the fingerprint sensor and the /vendor partition.
 
  • Like
Reactions: rchtk and TheStrix

dabug123

Recognized Developer
Sep 25, 2014
2,175
8,221
brunswick
The dtb from the kernel is not used: the hardboot patch exports the dtb used to boot the device, so that's used instead.


Does anyone want to take over development of this project? I'm not sure if I have the time or the experience needed to keep this project updated (the kernel is still from the January security update) or to fix issues such as the fingerprint sensor and the /vendor partition.

I'm sure alot of us will help where we can ..Don't bolt yet we are just getting started;)
 

Surge1223

Recognized Contributor
Nov 6, 2012
2,614
7,420
Florida
The dtb from the kernel is not used: the hardboot patch exports the dtb used to boot the device, so that's used instead.


Does anyone want to take over development of this project? I'm not sure if I have the time or the experience needed to keep this project updated (the kernel is still from the January security update) or to fix issues such as the fingerprint sensor and the /vendor partition.

Hey did you have to do anything special in kexec-tools arm64 image load elf checks to get kernels to be accepted? I'm having a hard time getting anything I pass as a kernel to load (I'm not using multirom or your sources for kexec tools or kernels, I'm just learning/researching)

I looked over your sources but didn't see anything that would have affected this. I always get elf parsing errors it seems.
 

Attachments

  • 1456035122335.jpg
    1456035122335.jpg
    147.1 KB · Views: 600
Jun 29, 2014
38
311
Hey did you have to do anything special in kexec-tools arm64 image load elf checks to get kernels to be accepted? I'm having a hard time getting anything I pass as a kernel to load (I'm not using multirom or your sources for kexec tools or kernels, I'm just learning/researching)

I looked over your sources but didn't see anything that would have affected this. I always get elf parsing errors it seems.
Don't pass in a dtb (I never tried this), and you need to pass in the Image.gz not the entire boot.img (use Tassadar's bbootimg to split boot.img into a kernel and ramdisk)
 

Surge1223

Recognized Contributor
Nov 6, 2012
2,614
7,420
Florida
Don't pass in a dtb (I never tried this), and you need to pass in the Image.gz not the entire boot.img (use Tassadar's bbootimg to split boot.img into a kernel and ramdisk)

That's the thing though, I am passing Image.gz

This is my command line args

Code:
./kexec -l --load-hardboot ./Image.gz --type=gzip-image-arm64  --dtb=./dtb.img --mem-min=4 --reuse-cmdline

Same outcome regardless of whether I pass dtb or not, also it should dynamically add dtb initrd no? From the output of the dtb segments I didn't see anything that jumped out besides the fdt err. I'm guessing it's my kexec-tools source, I thought I'd just ask in case you mightve dealt with the same thing. Thanks
 
Last edited:
  • Like
Reactions: davidwilson83
Jun 29, 2014
38
311
That's the thing though, I am passing Image.gz

This is my command line args

Code:
./kexec -l --load-hardboot ./Image.gz --type=gzip-image-arm64  --dtb=./dtb.img --mem-min=4 --reuse-cmdline

Same outcome regardless of whether I pass dtb or not, also it should dynamically add dtb initrd no? From the output of the dtb segments I didn't see anything that jumped out besides the fdt err. I'm guessing it's my kexec-tools source, I thought I'd just ask in case you mightve dealt with the same thing. Thanks
Are you building kexec-tools from https://github.com/multirom-nexus6p/kexec-tools on the arm64 branch? That command line looks reasonable.
 
  • Like
Reactions: davidwilson83

Swamphound

Senior Member
Oct 5, 2012
1,220
1,344
Longs, SC
Google Pixel C
OnePlus 7 Pro
First of all, this is a great work, for which I was waiting since I purchased the device 3-4 months back. Using stock MMB29Q with as primary and a non CM custom ROM as secondary. The usage and switching is very smooth. As mentioned in the OP multirom app is not compatible, so never tried it. There are a few problems as well- a) Cannot delete files on both the ROMs b) Some apps unable to write the internal SD on both ROMs c) Nexus imprint not working on secondary ROM.
One question too- How to take backup of individual ROMs or all the ROMs.

Go to recovery>multirom>tap secondary ROM>backup
 
  • Like
Reactions: barrackOBAMA

opz187

Senior Member
Sep 30, 2012
1,329
428
First of all, this is a great work, for which I was waiting since I purchased the device 3-4 months back. Using stock MMB29Q with as primary and a non CM custom ROM as secondary. The usage and switching is very smooth. As mentioned in the OP multirom app is not compatible, so never tried it. There are a few problems as well- a) Cannot delete files on both the ROMs b) Some apps unable to write the internal SD on both ROMs c) Nexus imprint not working on secondary ROM.
One question too- How to take backup of individual ROMs or all the ROMs.

yea thats a great way to motivate someone (who's been the only one able to port it over) to keep working on it. tell him everything thats wrong, that'll inspire him
 

steviemch

Senior Member
Jul 25, 2013
954
742
Airdrie
yea thats a great way to motivate someone (who's been the only one able to port it over) to keep working on it. tell him everything thats wrong, that'll inspire him

Android development involves users reporting problems for the benefit of all. It's always helpful to the dev if logs are included, but this isn't about someone disparaging the developers work.
 

npjohnson

Recognized Developer
  • The dtb from the kernel is not used: the hardboot patch exports the dtb used to boot the device, so that's used instead.


    Does anyone want to take over development of this project? I'm not sure if I have the time or the experience needed to keep this project updated (the kernel is still from the January security update) or to fix issues such as the fingerprint sensor and the /vendor partition.

    I'm in for the latter, and have time to do so. Do you have a hangouts I could talk to you on?
     

    subhjvlz

    Senior Member
    Aug 18, 2015
    76
    17
    yea thats a great way to motivate someone (who's been the only one able to port it over) to keep working on it. tell him everything thats wrong, that'll inspire him

    Deleted my post.





    Android development involves users reporting problems for the benefit of all. It's always helpful to the dev if logs are included, but this isn't about someone disparaging the developers work.
     

    ohlin5

    Senior Member
    Feb 24, 2012
    910
    358
    Verizon Blows, USA
    I'm in for the latter, and have time to do so. Do you have a hangouts I could talk to you on?

    Thank you @500 Internal Server Error for all your hard work on this and thank you @npjohnson for your willingness to step up to keep it going! I'm holding off flashing this until a few of the bugs get nailed down (particularly the fingerprint sensor on 2nd rom) but this is awesome work that you guys have done/are doing, so thanks again! Anxiously keeping me eye on this thread :D
     

    Top Liked Posts

    • There are no posts matching your filters.
    • 89
      TLDR:

      This project is no longer actively maintained, see explanation here.

      1: MAKE A BACKUP. Seriously.
      2: Downloads in second post. Flash recovery, then kernel, then MultiROM.
      3: Any issues: please report at https://github.com/multirom-nexus6p/multirom/issues I won't be reading this thread very often.

      35yghmf.png
      Introduction

      This is a port of Tassadar's MultiROM, a multi-boot mod for Nexus 6P. 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 and MultiROM even has its own installer system, which can be used to ship other Linux-based systems.

      This is still very experimental!

      This has been thoroughly tested with the most popular ROM's for the 6P.

      Make backups. Seriously. Please.

      Features:
      * Multiboot any number of Android ROMs
      * Restore nandroid backup as secondary ROM
      * Boot from USB drive attached via USB-C 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 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
      We have a custom built MultiROM Manager .apk in the downloads section, feel free to try it! (somewhat untested, please report, even if install doesn't work, ROM name customization, etc. should work fine)
      1. Via MultiROM Manager app
      This is the easiest way to install everything MultiROM needs. Install the app found in the next post, 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.
      Accept any Super User request prompts.

      2.Manual installation
      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. There is also an awesome article on Linux Journal.

      MultiROM has 3 parts you need to install:

      • Modified recovery (TWRP_multirom_angler_YYYYMMDD.img) - download the IMG file from second post and use fastboot 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.
      • MultiROM (multirom-YYYYMMDD-vXX-angler.zip) - download the ZIP file from second post and flash it in recovery.


      Your current rom will not be erased by the installation.

      Adding ROMs
      1. Android
      Go to recovery, select MultiROM -> Add ROM. Select the ROM's zip file and confirm.​


      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.

      Note that swapping roms between internal and external is not supported (yet). Also, after flashing a factory image to the primary system and boot partition, make sure to immediately inject MultiROM before first boot, otherwise the secondary ROMs will be deleted.

      Source code
      MultiROM - https://github.com/multirom-nexus6p/multirom/tree/master (branch master)
      Modified TWRP - https://github.com/multirom-nexus6p/Team-Win-Recovery-Project (branch android-6.0) -- Includes the awesome new Material Dark TWRP theme by @daveyannihilation ! Go thank him, or get his Blackout Domination Layers or CMTE (yes, there are free versions on the Play Store, but you can find those yourself, or donate to a hard worker :) ).
      Kernel w/ kexec-hardboot patch - https://github.com/multirom-nexus6p/android_kernel_huawei_angler/tree/mm -- use angler_defconfig
      Device tree: https://github.com/multirom-nexus6p/TWRP-android_device_huawei_angler/tree/android-6.0-mrom

      Thanks

      This port is based on the hard work of Tassadar, 500 Internal Server Error, Geoff Levand, webgeek1234, Mike Kasick, Npjohnson, Hashbang173, and many others. Thank you.

      Issues

      - None that are known. If you find one that this thread does not know about/hasn't answered (solid rule, read the last three pages of the thread befre reporting an issue), report it on the specific repo in question here.

      - IF YOU GET LOCKED OUT OF YOUR DEVICE: Don't worry! Your data is fine. Simply boot to TWRP, choose 'Advanced' ==> 'Terminal Command' ==> type "rm -Rf /data/system/gatekeeper.*.key" (without the quotes). This is a dirty fix, and should only be used to recover data, not as a permanent solution! After you recover your data, wipe /data (you don't have to wipe Internal Storage), and re-setup the device.

      Please report any unlisted issues to the GitHub bug tracker at https://github.com/multirom-nexus6p/multirom/issues . You'll get faster response if you post there instead of in this thread

      Changelog
      Here

      Downloads
      Downloads
      v33 -- Stable 7:

      MR Installer App: Play Store Link


      MR-TWRP: mr-twrp-recovery-20160528-05-STABLE7.img

      MultiROM Installer Flashable ZIP: multirom-20160514-v33-UNOFFICIAL-angler-STABLE7.zip

      Stock HardBoot Enabled Kernel Flashable ZIP (only your Primary ROM needs this): kernel-hardboot-stock-angler-6.0.1-20160514

      MultiROM Uninstaller Flashable ZIP: multirom_uninstaller.zip

      NOTE:
      Third party kernels with kexec-hardboot support (can be flashed to primary ROM):

      ElementalX
      FrancoKernel
      AK
      PureNexus
      (Alert me if I've missed any!)

      Extra Information
      Unlike some of the other 64-bit MultiROM ports, this port does have kexec-hardboot enabled, which is less risky and speeds up boot into secondary ROM. Anyone porting MultiROM to a Snapdragon 810 device may find the source to be useful. The patch was written by @500 Internal Server Error

      Also, due to recent events on other projects of mine, you are welcome to fork our Github repositories, and use them to port MR to new devices, and as a reference, but, I ask that no one build targeting the 6P using our source and post it publicly (of course you can build for personal use, but distribution is forbidden). Of course, I welcome and ask that anyone who wants to pull request changes in to do so!

      The only acceptable releases based on our source for the 6P is recovery/multirom themes, though, I strongly ask you tag me so I can note the themed version in the OP.

      XDA:DevDB Information
      MultiROM for Nexus 6P, Tool/Utility for the Huawei Nexus 6P

      Contributors
      npjohnson, 500 Internal Server Error
      Source Code: https://github.com/multirom-nexus6p/


      Version Information
      Status: No Longer Updated
      Current Stable Version: v33-05282016-STABLE7
      Stable Release Date: 2016-05-28

      Created 2016-02-12
      Last Updated 2017-09-17
      41
      UPDATE: I've got all the necessary repos brought up to building in a 7.1.1 tree! For those that don't know what that means, It means that MR is functioning on 7.1.1!

      Unfortunately, I've run into an issue. TWRP is unable to bind certain mounts (the most important of which being that even though /data decrypts fine, /data/media/0's bind to /sdcard/ fails for reasons I can't comprehend). This messes up everything else. Hours of debugging have yielded no results, so, I have reached out to some other developers I know in an effort to solve the problem.

      If anyone is able to help me solve the TWRP mounts issue, or wants to update multirom_adbd to 7.1.1 (an optional task which I've opted not to spend my time on), they can build In a Lineage/CM 14.1 tree. For those who can help, but don't have the resources to build, my personal builds can be found here: ods.ninja/Server/Android/angler/MR/

      I WARN those who opt to use builds from the above, I have intentionally*disabled multiboot functions in them (in essence making multirom useless so the average user doesn't use them). These are only to be used if you are able to help work out current TWRP issues.

      Thanks to all, and happy new year.
      34
      I will be updating this soon.

      I've got most of MultiROM's issues worked out, and was planning on waiting until I had it all fully building with clang/7.1.1 sources, but, I'll concede that those things aren't /that/ useful to the end user.

      As of this next release, the recovery will be built in a CM 7.1 tree, and everything else in an Omni 6.0 tree.

      If you don't know what any of the above means... you don't need to. Just know that within the next few weeks I'll be posting a new build.
      22
      I think StarShoot97 is testing the official version of TWRP.

      It has recently been released on TWRP's website: https://dl.twrp.me/angler/twrp-3.0.3-0-angler.img.html

      As for Multirom, I don't know, but there are some new commits on npjohnson's fork: https://github.com/npjohnson/Team-Win-Recovery-Project

      Yup. We have 3.0.3-0 working, with a usable theme (like we had previously), and, N-Block encryption (like on the 6P) works, but, we are still working on FBE support for those on the 6P using the option in developer settings, and Pixels... (hint hint).

      The MultiROM repo is also brought up to support N.

      All that is left is updating multirom_adbd to 7.1.1 so we can get ADB working on the MultiROM boot selection screen, updating Kexec-Tools (and remerging DTB support), then just updating the build system (branches, dependencies, etc.).
    Our Apps
    Get our official app!
    The best way to access XDA on your phone
    Nav Gestures
    Add swipe gestures to any Android
    One Handed Mode
    Eases uses one hand with your phone