[PATCHER][APP][OFFICIAL] Dualboot/Multiboot For Xiaomi Mi 6 (sagit)

Status
Not open for further replies.
Search This thread

yshalsager

Recognized Developer
http%3A%2F%2Fs9.postimg.org%2Fqeunc9gkf%2Fic_launcher_web.png
I am proud to present the first dual boot project for Xiaomi Mi 6 (sagit). This will allow any number of ROMs to be installed at the same time. It works by patching the secondary ROM's installation scripts and boot image to load the ROM files from an alternate location (/system/multiboot, /cache/multiboot, and /data/multiboot). Because of the way this is implemented, no changes to the primary ROM are necessary :D

What is DualBootPatcher?
DualBootPatcher is an open-source app that allows multiple ROMs to be installed on a single Android device. It does its best to work with existing code and does not require explicit support from ROMs. There are currently 200+ supported devices and their variations.

Information:
I have managed to support for Xiaomi Mi 6 (sagit) to the DualBootPatcher App, I am not the creator, just the supporter.
It's awesome and useful for testing out roms or if you want, switching ROMS.

Disclaimer:
Code:
Your warranty is now void.
I am not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed. Please do some research if you have any concerns about features included in this ROM before flashing it! YOU are choosing to make these modifications, and if you point the finger at me for messing up your device, I will laugh at you. Hard. A lot.

Requirements:
1. A Custom Recovery (TWRP)
2. A ROM :D
3. Dual Boot Patcher app and the DualBootUtilities.zip from the download section below.

What does the app do ?:
It patches...
  • 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 the secondary ROM

What's supported ?
Except Toaster and Alarm clocks pretty much everything is supported.

How to use the App?
- Download, install and open the app.
- Swipe to the right to open the menu. Click "ROMS". Now if this is the first time you use it, it will ask you if you want to set kernel. Do so!
- After it has finished go to ROM Settings (primary ROM 3 dot menu) and select Update Ramdisk. It will update it and will ask you to reboot. Press Reboot Now, or Reboot later.
- Now Download any ROM you like and open the app again and open the menu and open Patch Zip File from the menu. Ensure that your Device is set to "sagit" and under Partition configuration select secondary (will install 2nd ROM in /system) or data slot.
- Click continue and select where to save the patched file.
- You should see the file is being put in "Queue". Just click the confirm button to the upper right.
Note: If you want to go back, just swipe the ROM in queue to right and start over.
- The app will patch the zip. When done, go back to "ROMs".
- Click "Flash zip files" (the big pink button on the lower right). Click the pink plus button to add your previously patched zip file.
- Locate the file you have patched in step 7. Unless you have changed the name there, it should be something like ROM_name_partition_config_ID.zip (like lineage-14.1-20170702-UNOFFICIAL-sagit.zip_dual).
- Click on that file and choose "Keep location". Now confirm the flash with the button on the upper right side.
Note: You can also install the patched zip files in recovery.
- It will now open the terminal and begin flashing the file. This requires some patience. After it has flashed the file you'll see success message in green.
- Now click back and you should see your newly installed ROM along with the Primary ROM.
Note: You can find more options by clicking on the three buttons on each ROM.
- Now reboot and wait till finishing 2nd ROM first boot. install DualBootPatcher apk so you can easily switch ROMs, there is another way to change ROMs: flash DualBootUtilities.zip and switch ROM manually.
Note: Using Bootui:
- Open app then select settings and press install (update) bootui. then Swipe to the right to open the menu. Click "ROMS" again and open secondary ROM Settings) and select Update Ramdisk, Now you can change ROMs simply using boot ui (something like grub bootloader but it works like twrp)

Partitions Configurations:
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.
  • Dual: Dual/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 card, which is useful as it keeps the ROMs off of the internal storage. Note that the ROM's data files are still stored on the data partition.

How to boot to another ROM ?
This is simple ... There is no reboot to primary, secondary or whatever. So all you have to do is:
1) Go to ROMs section of the App.
2) Click on the ROM you want to boot to. You should see "Switching ROM" message. After few seconds, you should see a report message saying that "ROM successfully switched".
3) Now just do a normal reboot of your device. See the magic! It should boot to the ROM you have switched on step 2.
Note: You can find more options by selecting the three buttons on each ROMs (like creating reboot widgets for directly rebooting to specific rom).
You also need to install the App to all of the ROMs you install. Otherwise, you want be able to boot to other ROMs!

Apps and Data sharing:
DualBootPatcher very recently got support for sharing apps 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: (doesn't work with JB ROMs)
  • 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 become 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.

Other How to ?
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".
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 :)

Downloads:
Cheers ! we are officially supported :D

Note: You can download any version since "9.2.0.r201.ge0c23176"

Screenshots:

Sources:
DualBootPatcher: https://github.com/chenxiaolong/DualBootPatcher
DualBootUtilities: https://github.com/chenxiaolong/DualBootZips
Build instructions: https://github.com/chenxiaolong/DualBootPatcher/tree/master/docs
Xiaomi Mi 6 (sagit) Support: https://github.com/chenxiaolong/DualBootPatcher/pull/639
Known issues:
- You tell me :D !

Credits:
@chenxiaolong for the awesome DualBootPatcher.
@androidlover5842 for helping me always
@dennis46419 for testing and screenshots

XDA:DevDB Information
[PATCHER][APP][OFFICIAL] Dualboot/Multiboot For Xiaomi Mi 6 (sagit), Tool/Utility for the Xiaomi Mi 6

Contributors
yshalsager, androidlover5842, Ahmed Hady, chenxiaolong
Source Code: https://github.com/chenxiaolong/DualBootPatcher


Version Information
Status: Beta
Current Stable Version: 9.2.0.r201.ge0c23176
Stable Release Date: 2017-07-06
Current Beta Version: Build 2
Beta Release Date: 2017-07-03

Created 2017-07-04
Last Updated 2017-07-07
 

Attachments

  • photo5393595320610433024.jpg
    photo5393595320610433024.jpg
    76.5 KB · Views: 15,181
  • photo5393595320610433022.jpg
    photo5393595320610433022.jpg
    61.3 KB · Views: 14,779
  • photo5393595320610433023.jpg
    photo5393595320610433023.jpg
    58.1 KB · Views: 14,496
  • photo5395847120424118251.jpg
    photo5395847120424118251.jpg
    25.8 KB · Views: 14,028
  • photo5395847120424118258.jpg
    photo5395847120424118258.jpg
    143.1 KB · Views: 14,023
  • photo5395847120424118259.jpg
    photo5395847120424118259.jpg
    33.1 KB · Views: 13,934
  • photo5402417067472299976.jpg
    photo5402417067472299976.jpg
    45.6 KB · Views: 13,631

yshalsager

Recognized Developer
Notes

1- If flashing Custom ROM Fail (like LOS 14.1):
you have to edit "updater-script" and remove assert lines like:
Code:
assert(getprop("ro.product.device") == "sagit" || getprop("ro.build.product") == "sagit" || abort("E3004: This package is for device: sagit; this device is " + getprop("ro.product.device") + "."););
assert(sagit.verify_trustzone("TZ.BF.4.0.6-00122") == "1");
ui_print("Target: Xiaomi/lineage_sagit/sagit:7.1.2/NJH47B/8341297e34:userdebug/test-keys");
ifelse(is_mounted("/system"), unmount("/system"));
2- If you want to use MIUI as secondary:
- remove emmc_appsboot.mbn of firmware-update folder
- modify the updater-script:
- remove these lines
Code:
package_extract_file("META-INF/com/miui/miui_update", "/cache/miui_update");
set_metadata("/cache/miui_update", "uid", 0, "gid", 0, "mode", 0555, "capabilities", 0x0);
run_program("/cache/miui_update");
delete("/cache/miui_update");
show_progress(0.600000, 120);
ui_print("Patching system image unconditionally...");
- and these
Code:
package_extract_file("firmware-update/emmc_appsboot.mbn", "/dev/block/bootdevice/by-name/aboot");
package_extract_file("firmware-update/emmc_appsboot.mbn", "/dev/block/bootdevice/by-name/abootbak");
- Delete files from miui_update folder in META-INF\com\miui
- and flash supersu or magisk after ROM to disable dm-verify
 
Last edited:

LanzoThunder

Member
Mar 17, 2015
18
6
Everything works so far.
I installed LOS in a data-slot and the dual boot works so good.
The only problem that I found was that if I put a pattern lock in LOS, it'll probably overwrite the one in MIUI, so when i booted MIUI again, my pattern lock was not working. Had to delete manually every *.key file in /data/system
 

dennis46419

Senior Member
Dec 5, 2010
255
71
Everything works so far.
I installed LOS in a data-slot and the dual boot works so good.
The only problem that I found was that if I put a pattern lock in LOS, it'll probably overwrite the one in MIUI, so when i booted MIUI again, my pattern lock was not working. Had to delete manually every *.key file in /data/system

what is your primary rom? and u use magisk or su?
my second rom is always decrypt so it useless.

thanks for your answer
 

ichanz

Senior Member
Dec 1, 2004
57
0
any where
1- If flashing Custom ROM Fail (like LOS 14.1):
you have to edit "updater-script" and remove assert lines like:
Code:
assert(getprop("ro.product.device") == "sagit" || getprop("ro.build.product") == "sagit" || abort("E3004: This package is for device: sagit; this device is " + getprop("ro.product.device") + "."););
assert(sagit.verify_trustzone("TZ.BF.4.0.6-00122") == "1");
ui_print("Target: Xiaomi/lineage_sagit/sagit:7.1.2/NJH47B/8341297e34:userdebug/test-keys");
ifelse(is_mounted("/system"), unmount("/system"));
2- If you want to use MIUI as secondary:
- remove emmc_appsboot.mbn of firmware-update folder
- modify the updater-script:
- remove these lines
Code:
package_extract_file("META-INF/com/miui/miui_update", "/cache/miui_update");
set_metadata("/cache/miui_update", "uid", 0, "gid", 0, "mode", 0555, "capabilities", 0x0);
run_program("/cache/miui_update");
delete("/cache/miui_update");
show_progress(0.600000, 120);
ui_print("Patching system image unconditionally...");
- and these
Code:
package_extract_file("firmware-update/emmc_appsboot.mbn", "/dev/block/bootdevice/by-name/aboot");
package_extract_file("firmware-update/emmc_appsboot.mbn", "/dev/block/bootdevice/by-name/abootbak");
- Delete files from miui_update folder in META-INF\com\miui
- and flash supersu or magisk after ROM to disable dm-verify

Newbie questions.. how can i do no 1 from phone, i unable install lineage to dualboot
 
Last edited:

xkim toino

Member
Apr 25, 2015
11
3
I don't know why but when I try to patch a zip file it won't let me. It says go to settings / installed apps but I've gone already and it's everything with the permissions on. My root method is magisk as I couldn't get root with Ssu. The program doesn't appear in magisk list in the #superuser section...

Even if i go to settings in the dualboot patcher and try to change backup directory it won't let me.
 

dennis46419

Senior Member
Dec 5, 2010
255
71
I don't know why but when I try to patch a zip file it won't let me. It says go to settings / installed apps but I've gone already and it's everything with the permissions on. My root method is magisk as I couldn't get root with Ssu. The program doesn't appear in magisk list in the #superuser section...

Even if i go to settings in the dualboot patcher and try to change backup directory it won't let me.

Go to settings installed apps, enable data see screenshots

and try again. every time recommend if u want flash or use dpt
 
Last edited:

Asce1062

Senior Member
Jun 16, 2012
357
584
Nairobi
How long should the reboot after update ramdisk step last ?

I think its stuck :(

I have this problem too

I'm guessing both of you you are using either China stable/dev or global stable/dev. What causes a boot loop is the encrypted firmware. Unfortunately I have not found a way around this.
To avoid this error you will have to flash one of the following ROMs (sorted by descending alphabetical order):
  1. EPIC ROM
  2. globeROM (My personal favourite)
  3. Multirom
  4. Xiaomi.eu

PS: Remember when flashing any of the above ROMs coming from either China stable/dev or global stable/dev you have to wipe DATA i.e USERDATA on top of wiping the usual stuff when flashing a ROM.

NB : You will get help faster if you join the MI 6 telegram group
 
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 18
    http%3A%2F%2Fs9.postimg.org%2Fqeunc9gkf%2Fic_launcher_web.png
    I am proud to present the first dual boot project for Xiaomi Mi 6 (sagit). This will allow any number of ROMs to be installed at the same time. It works by patching the secondary ROM's installation scripts and boot image to load the ROM files from an alternate location (/system/multiboot, /cache/multiboot, and /data/multiboot). Because of the way this is implemented, no changes to the primary ROM are necessary :D

    What is DualBootPatcher?
    DualBootPatcher is an open-source app that allows multiple ROMs to be installed on a single Android device. It does its best to work with existing code and does not require explicit support from ROMs. There are currently 200+ supported devices and their variations.

    Information:
    I have managed to support for Xiaomi Mi 6 (sagit) to the DualBootPatcher App, I am not the creator, just the supporter.
    It's awesome and useful for testing out roms or if you want, switching ROMS.

    Disclaimer:
    Code:
    Your warranty is now void.
    I am not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed. Please do some research if you have any concerns about features included in this ROM before flashing it! YOU are choosing to make these modifications, and if you point the finger at me for messing up your device, I will laugh at you. Hard. A lot.

    Requirements:
    1. A Custom Recovery (TWRP)
    2. A ROM :D
    3. Dual Boot Patcher app and the DualBootUtilities.zip from the download section below.

    What does the app do ?:
    It patches...
    • 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 the secondary ROM

    What's supported ?
    Except Toaster and Alarm clocks pretty much everything is supported.

    How to use the App?
    - Download, install and open the app.
    - Swipe to the right to open the menu. Click "ROMS". Now if this is the first time you use it, it will ask you if you want to set kernel. Do so!
    - After it has finished go to ROM Settings (primary ROM 3 dot menu) and select Update Ramdisk. It will update it and will ask you to reboot. Press Reboot Now, or Reboot later.
    - Now Download any ROM you like and open the app again and open the menu and open Patch Zip File from the menu. Ensure that your Device is set to "sagit" and under Partition configuration select secondary (will install 2nd ROM in /system) or data slot.
    - Click continue and select where to save the patched file.
    - You should see the file is being put in "Queue". Just click the confirm button to the upper right.
    Note: If you want to go back, just swipe the ROM in queue to right and start over.
    - The app will patch the zip. When done, go back to "ROMs".
    - Click "Flash zip files" (the big pink button on the lower right). Click the pink plus button to add your previously patched zip file.
    - Locate the file you have patched in step 7. Unless you have changed the name there, it should be something like ROM_name_partition_config_ID.zip (like lineage-14.1-20170702-UNOFFICIAL-sagit.zip_dual).
    - Click on that file and choose "Keep location". Now confirm the flash with the button on the upper right side.
    Note: You can also install the patched zip files in recovery.
    - It will now open the terminal and begin flashing the file. This requires some patience. After it has flashed the file you'll see success message in green.
    - Now click back and you should see your newly installed ROM along with the Primary ROM.
    Note: You can find more options by clicking on the three buttons on each ROM.
    - Now reboot and wait till finishing 2nd ROM first boot. install DualBootPatcher apk so you can easily switch ROMs, there is another way to change ROMs: flash DualBootUtilities.zip and switch ROM manually.
    Note: Using Bootui:
    - Open app then select settings and press install (update) bootui. then Swipe to the right to open the menu. Click "ROMS" again and open secondary ROM Settings) and select Update Ramdisk, Now you can change ROMs simply using boot ui (something like grub bootloader but it works like twrp)

    Partitions Configurations:
    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.
    • Dual: Dual/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 card, which is useful as it keeps the ROMs off of the internal storage. Note that the ROM's data files are still stored on the data partition.

    How to boot to another ROM ?
    This is simple ... There is no reboot to primary, secondary or whatever. So all you have to do is:
    1) Go to ROMs section of the App.
    2) Click on the ROM you want to boot to. You should see "Switching ROM" message. After few seconds, you should see a report message saying that "ROM successfully switched".
    3) Now just do a normal reboot of your device. See the magic! It should boot to the ROM you have switched on step 2.
    Note: You can find more options by selecting the three buttons on each ROMs (like creating reboot widgets for directly rebooting to specific rom).
    You also need to install the App to all of the ROMs you install. Otherwise, you want be able to boot to other ROMs!

    Apps and Data sharing:
    DualBootPatcher very recently got support for sharing apps 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: (doesn't work with JB ROMs)
    • 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 become 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.

    Other How to ?
    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".
    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 :)

    Downloads:
    Cheers ! we are officially supported :D

    Note: You can download any version since "9.2.0.r201.ge0c23176"

    Screenshots:

    Sources:
    DualBootPatcher: https://github.com/chenxiaolong/DualBootPatcher
    DualBootUtilities: https://github.com/chenxiaolong/DualBootZips
    Build instructions: https://github.com/chenxiaolong/DualBootPatcher/tree/master/docs
    Xiaomi Mi 6 (sagit) Support: https://github.com/chenxiaolong/DualBootPatcher/pull/639
    Known issues:
    - You tell me :D !

    Credits:
    @chenxiaolong for the awesome DualBootPatcher.
    @androidlover5842 for helping me always
    @dennis46419 for testing and screenshots

    XDA:DevDB Information
    [PATCHER][APP][OFFICIAL] Dualboot/Multiboot For Xiaomi Mi 6 (sagit), Tool/Utility for the Xiaomi Mi 6

    Contributors
    yshalsager, androidlover5842, Ahmed Hady, chenxiaolong
    Source Code: https://github.com/chenxiaolong/DualBootPatcher


    Version Information
    Status: Beta
    Current Stable Version: 9.2.0.r201.ge0c23176
    Stable Release Date: 2017-07-06
    Current Beta Version: Build 2
    Beta Release Date: 2017-07-03

    Created 2017-07-04
    Last Updated 2017-07-07
    6
    Notes

    1- If flashing Custom ROM Fail (like LOS 14.1):
    you have to edit "updater-script" and remove assert lines like:
    Code:
    assert(getprop("ro.product.device") == "sagit" || getprop("ro.build.product") == "sagit" || abort("E3004: This package is for device: sagit; this device is " + getprop("ro.product.device") + "."););
    assert(sagit.verify_trustzone("TZ.BF.4.0.6-00122") == "1");
    ui_print("Target: Xiaomi/lineage_sagit/sagit:7.1.2/NJH47B/8341297e34:userdebug/test-keys");
    ifelse(is_mounted("/system"), unmount("/system"));
    2- If you want to use MIUI as secondary:
    - remove emmc_appsboot.mbn of firmware-update folder
    - modify the updater-script:
    - remove these lines
    Code:
    package_extract_file("META-INF/com/miui/miui_update", "/cache/miui_update");
    set_metadata("/cache/miui_update", "uid", 0, "gid", 0, "mode", 0555, "capabilities", 0x0);
    run_program("/cache/miui_update");
    delete("/cache/miui_update");
    show_progress(0.600000, 120);
    ui_print("Patching system image unconditionally...");
    - and these
    Code:
    package_extract_file("firmware-update/emmc_appsboot.mbn", "/dev/block/bootdevice/by-name/aboot");
    package_extract_file("firmware-update/emmc_appsboot.mbn", "/dev/block/bootdevice/by-name/abootbak");
    - Delete files from miui_update folder in META-INF\com\miui
    - and flash supersu or magisk after ROM to disable dm-verify
    6
    We are Officially Supported !
    Don't forget to say thanks to @chenxiaolong
    https://github.com/chenxiaolong/DualBootPatcher/pull/639
    4
    Changelogs:

    - 04/07/2017
    Initial Release :D
    - 07/07/2017
    We are Officially Supported, Pull Request Here