[Huawei Ascend Mate 2] SHM:
Ok, to clear the air, I am not the original Dev for this particular project. I had been working on a very similar project until I found this. It just needed for me to add support for our device. So I did just that. I made a prominent build and after extreme testing it is ready to be shared with you.

See Continuous Integration Builds at the end of this post for a link to download latest releases. All releases starting from November 5, 2015 and onward will support the Huawei Ascend Mate 2.

It can patch:

Custom kernels for dual boot support

ROMs so that they can be installed as secondary

Google Apps packages for AOSP-based ROMs

SuperSU so that it can be used in other ROMs

NOTE: If you want to dualboot a stock EMUI ROM, I highly recommend installing it as your primary ROM first. Otherwise, any mods will need to be patched before flashing.

How to use the patcher

Android

Download the patcher apk and run it. Tap "Patch Zip File" from the navigation drawer and choose the file you want to patch.

After patching the zip file, a new file, like some_rom_dual.zip file will be created.

Instructions for dual booting

Before doing anything, download the Dual Boot Patcher app and install.

The patcher offers several locations for installing ROMs:

Primary: This is normally used for installing a zip to the primary ROM. It is not required, but is strongly recommended because it has code to prevent the zip from inadvertently affecting other ROMs.

Secondary: Secondary is the first multiboot installation location. It installs to the

system partition

. This is a good spot for installing a second ROM because it doesn't take any space away from the internal storage.

Multi-slots: There are 3 multislots: multi-slot-1, multi-slot-2, multi-slot-3. These install to the

cache partition

. This is specifically for devices, like the Galaxy S4, that have a massive cache partition.

Data-slots: There can be an unlimited number of data slots. These install to the

data partition

and eat up space on the internal storage. This is useful for devices where the system partition is nearly full and the cache partition is tiny. These slots are named "data-slot-[id]", where "id" is something you provide in the app.

Extsd-slots: There can be an unlimited number of Extsd slots. These install to the

external sd partition

and eat up space on the external storage. This is useful for devices where the system partition is nearly full and the cache partition is tiny and your data partition is getting full. These slots are named "extsd-slot-[id]", where "id" is something you provide in the app.

With that said, let's get to the "how to"!

First, boot into your primary ROM and install the Dual Boot Patcher app

Open the app and go to "Roms" in the navigation drawer. It will ask if you want to set the kernel. Make sure that you do.

Go to "Patch zip file" in the navigation drawer and patch the ROM or zip you want to install. You can select one of the installation locations described above.

There are two ways of flashing the patched zip file. You can either flash it normally from recovery or flash it using the in-app flashing feature. Both methods are explained below.

Flashing from recovery

To flash from recovery, just flash the patched zip file like you would for any other zip. Nice and simple.

In-app flashing

To use in-app flashing, go to "Roms" in the navigation drawer, tap the floating button on the bottom right, and add the zips you want to install. You can queue multiple zips and they will all be flashed in one go. Once you've added all the zips you want to flash, click the check mark in the action bar and they will be flashed right away.

A normal backup from the custom recovery will literally backup every ROM you have installed so think about this before making a backup.

App and data sharing

DualBootPatcher got support for sharing apps (deprecated) and their data across ROMs. Maybe sharing is somewhat of a misleading term. The feature actually makes Android load the shared apps and data from a centralized location, /data/multiboot/_appsharing. So you're not sharing apps from one ROM to another per se. The ROMs are just loading the apps from one shared location. Let me make this clearer with an analogy.

Think of the people in a company office as ROMs. You want to share with your coworkers some documents (apps). Instead of telling them to come over to your desk to see those documents (sharing apps from one ROM to another), everyone goes to the conference room to look at the documents together (loading apps from a shared location). That's how app and data sharing is implemented.

To use app sharing, follow these steps in every ROM that you want to use app sharing:

Install the app you want to share

Open DualBootPatcher and go to "App Sharing" in the navigation drawer

Enable individual app sharing

Tap "Manage shared applications" and enable APK/data sharing for the app

Reboot

When you uninstall an app that's shared, it simply becomes unshared for the current ROM. That way, other ROMs are not affected. To continue the analogy above, if you quit your job, you won't shred the documents that everybody else was looking at.

If you unshare an app's data, it will go back to using the data it had before it was shared. In other words, you leave the conference room and go back to work on your own documents at your desk.

How do I...?

Switch the ROM if something doesn't work properly?

If you have TWRP, you can switch manually by tapping Install -> Images (bottom right) -> Go to /sdcard/MultiBoot/[Your ROM]/ -> flash boot.img.​

I installed a new rom and want to switch to it?

Open app, select ROMs, then select the rom you want to switch to. When the switch is successful, reboot.​

Wipe /cache, /data, /system, or dalvik-cache?

The easiest way is to do it from the app while booted in another ROM. Just go to "Roms" in the navigation drawer, tap the 3 dots options menu for the ROM you want to wipe, and tap "Wipe ROM".

NOTE: Don't use the recovery's built-in wiping abilities as that may delete non-primary ROMs!​

Update the primary ROM?

Patch the zip for primary and flash it. The "primary" installation target is designed so that other ROMs won't be affected when you want to flash something for the primary ROM.​

Update a non-primary ROM?

Patch and flash the zip exactly like how you did it the first time.​

Flash a mod or custom kernel for the primary ROM?

Patch it for primary before flashing. If the zip does not wipe /cache, it is also safe to flash it directly.​

Flash a mod or custom kernel for a non-primary ROM?

Just patch and flash it :)​

WATCH THESE HOW-TO VIDEOS:

Credits to [MENTION=5863839]superbass311[/MENTION] for making these videos.

It will demonstrate how to use this app effectively. If you read the instructions and still can't figure it out then this will be very helpful to you!

How to install Multi Boot Patcher:

[YOUTUBE]atewLErpcH8[/YOUTUBE]

How to flash another ROM with Multi Boot Patcher:

[YOUTUBE]cSyq7az7b1k[/YOUTUBE]

How to flash Xposed with Multi Boot Patcher:

[YOUTUBE]t7VrUWjxFig[/YOUTUBE]

How to share apps with Multi Boot Patcher:

[YOUTUBE]hPV2PweD2uw[/YOUTUBE]

Original Source code:

DualBootPatcher: https://github.com/chenxiaolong/DualBootPatcher

DualBootUtilities: https://github.com/chenxiaolong/DualBootZips

Build instructions: https://github.com/chenxiaolong/DualBootPatcher/tree/master/docs

Contributors

chenxiaolong, SHM

Version Information

Status: Testing

Continuous Integration Builds: https://snapshots.noobdev.io/

Created 2015-10-11

Last Updated 2015-11-07