• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[RECOVERY][DUALBOOT][MAGISK][3.3.1-79][Unified]Unofficial TWRP for OnePlus 7/7 Pro/5G

Search This thread

vladvlad12

Senior Member
May 27, 2020
127
26
25
Bucharest
Installed OxygenOS on both slots, one not rooted, one with root, and on routed one added kali nethunter.

Seems to work fine for now.
 

Wishmasterflo

Senior Member
Nov 21, 2018
1,021
517
Stockholm
OnePlus 8T
hi there, anyone tried dual booting AOKP A11 rom?

Hi!
I guess it is because for Android 11 this Dualboot TWRP needs to be adjusted to detect Android 11 ROMs as with Android 11 some system files for which the Dualboot is searching for are in a different folder as on Android 10.
I unfortunately dont have a Oneplus 7 anymore now.
Having a Oneplus 6t now and have adjusted this Dualboot to work with the Oneplus 6t as well and it can boot both Android 10 and Android 11 now! Still not everything is 100% working on A11 but at least it is booting!
 

invernomut0

Senior Member
Nov 30, 2019
76
54
Milan
Hi!
I guess it is because for Android 11 this Dualboot TWRP needs to be adjusted to detect Android 11 ROMs as with Android 11 some system files for which the Dualboot is searching for are in a different folder as on Android 10.
I unfortunately dont have a Oneplus 7 anymore now.
Having a Oneplus 6t now and have adjusted this Dualboot to work with the Oneplus 6t as well and it can boot both Android 10 and Android 11 now! Still not everything is 100% working on A11 but at least it is booting!

Great news!
could you please share the changes you made? (Changes related to boot android 11 I mean:))

thanks!
 
Last edited:

invernomut0

Senior Member
Nov 30, 2019
76
54
Milan
The path for the init.rc file is different in Android 11. So that needs to be adjusted in the script.

Android 10: /system_root/init.rc
Android 11: /system/etc/init/hw/init.rc

Thanks a lot for sharing this info!

I modified the script in this way:

PHP:
    if ! $KEEPVERITY; then
      if [ -f "/system/etc/init/hw/init.rc" ]; then
        ui_print "- Android 11 found - using new path for init.rc"
        rm -rf /system_root/datacommon /system_root/init.mount_datacommon.sh /system_root/init.locksettings_dualboot.sh
        [ "$(grep '# Zackptg5-DualBoot' /system/etc/init/hw/init.rc)" ] && sed -i -e "/# Zackptg5-DualBootMod/,/init.mount_datacommon.sh/d" -e "$d" /system/etc/init/hw/init.rc
        while true; do 
          [ "$(tail -n1 /system/etc/init/hw/init.rc)" ] && break || sed -i '$d' /system/etc/init/hw/init.rc
        done
      else
        ui_print "- Android 10 found - using standard path for init.rc"
        rm -rf /system_root/datacommon /system_root/init.mount_datacommon.sh /system_root/init.locksettings_dualboot.sh
        [ "$(grep '# Zackptg5-DualBoot' /system_root/init.rc)" ] && sed -i -e "/# Zackptg5-DualBootMod/,/init.mount_datacommon.sh/d" -e "$d" /system_root/init.rc
        while true; do 
          [ "$(tail -n1 /system_root/init.rc)" ] && break || sed -i '$d' /system_root/init.rc
        done
      fi

and

PHP:
        if [ "$layout" == "a/b/c" ]; then
          ui_print "  Installing commondata mount script"
          magiskpolicy --load $file --save $file "allow init media_rw_data_file dir mounton" #"allow fsck block_device blk_file { ioctl read write getattr lock append map open }"
          mkdir /system_root/datacommon 2>/dev/null
          set_perm /system_root/datacommon media_rw media_rw 0771 u:object_r:media_rw_data_file:s0
          cp -f $tmp/init.mount_datacommon.sh /system_root/init.mount_datacommon.sh
          set_perm /system_root/init.mount_datacommon.sh 0 2000 0755 u:object_r:shell_exec:s0
          if [ -f "/system/etc/init/hw/init.rc" ]; then
            ui_print "- Android 11 found - using new path for init.rc"
            [ "$(grep '# Zackptg5-DualBootMod' /system/etc/init/hw/init.rc)" ] || echo -ne "\n# Zackptg5-DualBootMod" >> /system/etc/init/hw/init.rc
            echo -e "\non property:sys.boot_completed=1\n    exec_background u:r:$context:s0 -- /init.mount_datacommon.sh\n" >> /system/etc/init/hw/init.rc
          else
            ui_print "- Android 10 found - using standard path for init.rc"
            [ "$(grep '# Zackptg5-DualBootMod' /system_root/init.rc)" ] || echo -ne "\n# Zackptg5-DualBootMod" >> /system_root/init.rc
            echo -e "\non property:sys.boot_completed=1\n    exec_background u:r:$context:s0 -- /init.mount_datacommon.sh\n" >> /system_root/init.rc
          fi
        fi

hope it's correct :)
 

eyespunker

Senior Member
Jan 16, 2009
180
93
The Beach
Ok this is a file that seems to work, I am posting it Here
Steps taken as per instructions used on Telegram in the Kang11 rom chat
Rohit Padmin
a user
Oct 16, 2020 12:52:22 PM
Came from OOS 10 with Dualboot TWRP
1.Flash Kang11 in inactive slot,,format data inactive slot better
2.Flash original TWRP 3.4.0.0
3.Flash Magisk 21.zip
4.Reboot to Recovery
5.Flash DualbootA11 ( i used OTG storage ) it will stuck when patching inactive slot,,nevermind,just hard reboot ( power+Volume up)
6.Enter Recovery ( power + volume down )
7.Flash Magisk A11.zip ( i use otg storage )
8.Wipe cache and reboot
9.Play with Kang11 while,,
10.Reboot to recovery
11.Change to inactive slot,,Reboot recovery
12.Flash Dualboot TWRP for android 11,,it will stuck when patching inactive slot,nevermind just hard reboot ( power +volume up)
14.hit power button,,enjoy
 

invernomut0

Senior Member
Nov 30, 2019
76
54
Milan
Hi guys,
here you can find the Andorid 10 and Andorid 11 compatible version. It still in alpha stage.

[url]https://github.com/Invernomut0/TWRP-DualBoot-Guac-Unified/releases/tag/A11-0.2[/URL]

Please report problems.

FLASH PROCEDURE:
Example (starting point)
Slot A A10 Rom
Slot B A10 Rom

1 - Flash from slot A OOS, A11 rom
2 - Flash Orangefox-DualBoot-Guac-Unified-A11-V0.2.zip
3 - Reboot to recovery (Now you are in slot B automatically)
4 - Format data
5 - Flash Orangefox-DualBoot-Guac-Unified-A11-V0.2.zip
6 - Flash A11 Magisk zip ([url]https://forum.xda-developers.com/attachment.php?attachmentid=5113849&d=1602473421[/URL])
7 - Reboot to system

Ending point
Slot A A10 rom
Slot B A11 rom

Now you should have a working A10 rom on slot A and a working A11 rom on slot B.
Please report any problems.

Enjoy!
 
Last edited:

Wishmasterflo

Senior Member
Nov 21, 2018
1,021
517
Stockholm
OnePlus 8T
Hi guys,
here you can find the Andorid 10 and Andorid 11 compatible version. It still in alpha stage.

https://github.com/Invernomut0/TWRP-DualBoot-Guac-Unified/releases/tag/A11-0.2

Please report problems.

FLASH PROCEDURE:
Example:
Slot A A10 Rom
Slot B A10 Rom

1 - Flash from slot A OOS, A11 rom
2 - Flash Orangefox-DualBoot-Guac-Unified-A11-V0.2.zip
3 - Reboot to recovery (Now you are in slot B automatically)
4 - Format data
5 - Flash Orangefox-DualBoot-Guac-Unified-A11-V0.2.zip
6 - Flash A11 Magisk zip (https://forum.xda-developers.com/attachment.php?attachmentid=5113849&d=1602473421)
7 - Reboot to system

Now you should have a working A10 rom on slot A and a working A11 rom on slot B.
Please report any problems.

Enjoy!

Ahh great. You build it with Orangefox now. Cool. :)
 

Wishmasterflo

Senior Member
Nov 21, 2018
1,021
517
Stockholm
OnePlus 8T
Yeah, thanks to your info!
Now I'm working to automatic install the correct magisk version during slot flash (V21 for a11 and V20.4 for a10).

Ahhh great. That is cool. For the Oneplus 6 series I had to redo/adjust some other things to get everyrhing working. Also I re-did how the Commondata is mounted with a Magisk Bootscript because the other method how it implemented for this Oneplus 7 series I did not get to work at all. Also I had ro adjust a few more things in the script to have everything as it should because on the Oneplus 6 we dont have a Metadata partition from the beginning.
 

invernomut0

Senior Member
Nov 30, 2019
76
54
Milan
Ahhh great. That is cool. For the Oneplus 6 series I had to redo/adjust some other things to get everyrhing working. Also I re-did how the Commondata is mounted with a Magisk Bootscript because the other method how it implemented for this Oneplus 7 series I did not get to work at all. Also I had ro adjust a few more things in the script to have everything as it should because on the Oneplus 6 we dont have a Metadata partition from the beginning.

WOW! a lot of work! I made a very little mod :)
Do you think is it possibile to merge the two project? A mod for OP6 and OP7 unified?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 73
    If you want to make something like this for your device, check out this guide here

    Since I no longer have an OP 7 series device, this mod is now deprecated and won't be receiving any more updates. @invernomut0 has made a continuation of this mod using orangefox recovery. Check it out here!

    Team Win Recovery Project 3.x, or twrp3 for short, is a custom recovery built with ease of use and customization in mind. Its a fully touch driven user interface no more volume rocker or power buttons to mash. The GUI is also fully XML driven and completely theme-able. You can change just about every aspect of the look and feel.

    Code:
    #include <std_disclaimer.h>
    /*
     *
     * We are 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 us for messing up your device, we will laugh at you.
     *
     */
    Compatibility
    This has only been tested by me on Oxygen OS Stable - Android Q.

    Disclaimer
    This is a DANGEROUS mod. Anything involving repartitioning is. If you fail to read and bad things happen, that's on you. Although I thoroughly tested this (managed to brick my phone once), there's always the possibility that something could go wrong with the worst case scenario resulting in a brick.
    YOU'VE BEEN WARNED - Use at your own risk

    What is this?
    This is @mauronofrio's TWRP (see official thread here) that's been modified for true dual booting by splitting userdata into a/b slots (also does the same for metadata for encryption support). The installer script repartitions userdata for dualboot or stock based on your input.

    Limitations
    See the section in the github readme. MAKE SURE YOU READ THIS!

    Features:
    • Same as mauronofrio's TWRP
    • Can choose between stock layout, a/b userdata, or a/b/c userdata where 'c' is a common data partition that'll show up in both roms - it's quite handy
    • Option to choose between ext4 and f2fs
    • Disables verity - fstabs are modified for dual boot and so this is a must unless you choose stock layout in which case it's optional
    • Option to disable forced encryption
    • Option to install magisk

    Common Data
    I recommend the a/b/c layout which includes this common data partition
    • If you choose a/b/c layout - you'll have a/b userdata, but you'll also get a 3rd userdata partition I call 'Common Data'
    • The name 'Common Data' gives away its purpose - to store files that you'll access on both slots/roms. So stuff like zips, pictures, music, TWRP backups, etc.
    • In TWRP, this shows up as another storage option for backup/restore and on your pc as well - your phone will have 'Common Storage' and 'Internal Storage'
    • In order to be accessible when booted, some parts of the system are modified so that the it'll be accessible WITHOUT root by the following mechanisms:
      - The common data partition is mounted to /sdcard/CommonData
      - .nomedia file is placed in CommonData so files in it won't be picked up twice if you decide to mount over internal storage as outlined below
      - Furthermore, if your use case is like mine where my music files are in common data, you can make 'mounts.txt' file in /datacommon containing a list of every FOLDER to mount directly over top of sdcard. So for example:
      /datacommon/Music -> /sdcard/Music
      + This of course mounts over anything there (overwrites it for as long as it's mounted) so make sure that you don't have the same folder in both datacommon and regular data
      + Note that there are 3 exceptions to this folder mounting rule:
      1) All - if this is the FIRST line, ALL folders in datacommon will be mounted
      2 )Android
      3) lost+found
      + The reasoning should be obvious - lost+found isn't something you should need to mess with and Android is for regular data partition only - that's OS specific and should be on separate slots
      + Note that you should have 1 folder listed on every line, for example:
      Code:
      DCIM
      Music
      Pictures
      ViPER4AndroidFX

    Flashing Instructions
    • You MUST be booted into TWRP already when flashing this zip. You can grab a bootable twrp img from here
    • Since this modifies data - the zip CANNOT be on sdcard or data at all UNLESS you do not want to repartition/format
      - If you flash from data, the zip will copy itself to /tmp and instruct you to flash it from there OR you can just install twrp/magisk/disver-fec
      - You could do the above or copy it to a place like /dev or /tmp and flash it from there
      - Alternatively, you can adb sideload it
    • Read through ALL the prompts - there's lots of options :)
    • Note that if you change partition layout, THIS WILL WIPE ALL DATA INCLUDING INTERNAL STORAGE

    How to Flash Roms - If you're NOT stock layout
    • Nothing changes here except ONLY FLASH IN TWRP
      - Roms always flash to the opposite slot. Keep that in mind and you'll be fine
      - So don't take an OTA while booted - boot into twrp, switch slots, reboot into twrp, flash rom
    • Normal flash procedure:
      1) Boot into twrp
      2) reboot into twrp selecting slot you do NOT want rom installed to
      3) Flash rom
      4) Flash this zip
      5) Reboot into twrp
      6) Flash everything else

    Help! I Can't Boot!
    • Usually this is because you switched roms without formatting data first. This should be flashing 101 but we all forget sometimes. Plus this slot stuff can get confusing
    • If it only happens with a/b/c and not any other layout, there's a good chance it's selinux related. Try setting selinux to permissive at kernel level with this mod(source here). If this doesn't fix it, it could be because selinux can't be set to enforcing even with the mod depending on the rom

    How to Manually Repartition Back to Stock
    In the event any step in the repartioning fails, the entire installer aborts. The good news is that this prevents a potential brick. The bad is that you need to manually revert back. See the README on github for the procedure. Note that if the install went fine and you want to switch back to stock later, just flash the installer again and choose stock layout

    Download

    Source Code

    Credits
    • Mauronofrio
    • Teamwin
    • CosmicDan
    • TopJohnWu
    16
    Very ****ing badass. ?
    7
    Dualboot TWRP with updated TWRP-3.4.0-0

    I have uploaded the Dualboot TWRP with updated TWRP-3.4.0-0 here.
    7
    I succesfully manage dualboot OOS Beta 11 and Evolution 4.1 ,,heres what i did :
    1.Reboot TWRP >Format Data
    2.Reboot TWRP > Flash original TWRP 79
    3.Reboot TWRP > Flash Dualboot TWRP ( sideload ) - choose a.b.c layout -disable.force encryption
    4.Reboot TWRP (dualboot now) > Flash OOS Beta 11 >Flash Dualboot TWRP
    5.Reboot TWRP > Flash OOS Beta 11 again -
    > Flash Dualboot TWRP
    6.Reboot TWRP > Flash Evolution 4.1-> Flash Dualboot TWRP
    7.Reboot to System,enjoy Dual Boot,,its Awesome!!

    Oneplus 7 Pro 256 gb
    7
    v4 is finally here! There's actually quite the extensive changelog:
    * Add mount all option for datacommon mounts.txt
    * Redid how commondata was mounted - fixed issues with lots of roms like AOSPA
    * Magisk made optional for commondata - it is still needed for some roms though (like oos)
    * Made other vars slot selectable
    * Storage size detection fix
    * Misc fixes/improvements
    * Updated to magisk 20.4

    Download is in github releases like always :D

    Edit: Reuploaded v4 - needed to make partition size detection more robust