How To Guide [GUIDE] How to unbrick your Nord N200 5G (ALL VARIANTS) or switch bootable slot (REQUIRES UNLOCKED BOOTLOADER)

Search This thread

Travisholt92

Senior Member
Jun 28, 2012
1,312
1,188
30
Fort Wayne, Indiana
Honor 6X
OnePlus 6T
I've seen alooot of issues lately of people "bricking" their Nord N200's without a method of unbricking (at the time of writing, only T-Mobile variant has MSMTool)

I've noticed a reoccurring theme. i myself am guilty of doing it and not realizing what went wrong.

It's one of two things:

1. If the device fails to boot "7" times in a row or encounters a hard panic, it will wipe the metadata partition (the decryption key for data/user storage) and may also switch to the alternate slot automatically.

If your device switches slots on it's own, your userdata is gone.. without a decryption key, there is no getting it back (without a very powerful computer and probably years to brute force decrypt)

You will not be able to boot again until you are on the correct slot (dictated by your super partition and other A/B partitions needing to be up to date)

When back on the proper slot, while in fastboot run:
fastboot -w

This will wipe userdata and metadata partitions to allow metadata to be regenerated upon first boot.

Either "fastboot reboot recovery" or use the keys to select reboot recovery. And "wipe everything"

After this you should be bootable. If not...




2. When attempting to prepare the system for flashing GSI, we humans are messing up :eek: surprise surpise.

The issue most specifically stems from the dynamic partition located at /dev/block/by-name/super

this partition actually contains 5 resizable partitions : (i've seen up to 7 on this device including -cow (copy-on-write)
system // system_a/system_b //
system_ext // system_ext_a/system_ext_b //
product // product_a/product_b //
vendor // vendor_a/vendor_b //
odm // odm_a/odm_b //

if on you are running stock and your stock is running on slot b for example, your dynamic partition layout is as follows:
system_b
system_ext_b
product_b
vendor_b
odm_b

the issue lies when we go to flash a GSI and start using the commands:
fastboot delete-logical-parition
fastboot create-logical-parition

i myself have done:
fastboot create-logical-partition system 0
this is wrong. it needs a target slot specified, you will have no issues creating the partition or flashing, but it will most likely fail to boot.

correct usage would be:
fastboot create-logical-partition system_b 0 // or use the size values provided by fastboot getvar all as shown in my example of how to switch slots/unbrick below


Prerequisites:

1. stock firmware package or complete dump of all of these FROM THE SAME SOFTWARE VERSION
I have a T-Mobile variant, but for this proof of concept i used the unbranded NA Software provided here https://www.oneplus.com/support/softwareupgrade/details?code=PM1630638351161

Required Partition Images:
system.img
system_ext.img
product.img
vendor.img
odm.img
boot.img
vendor_boot.img
dtbo.img
uefisecapp.img
imagefv.img
abl.img
core_nhlos.img
qupfw.img
keymaster.img
hyp.img
dsp.img
devcfg.img
bluetooth.img
logo.img
tz.img
xbl.img
xbl_config.img
featenabler.img
modem.img
rpm.img
oplusstanvbk.img
vbmeta.img
vbmeta_system.img


If you're on T-Mobile just use the MSMTool unless you prefer the unbranded software.

2. Fastboot Enhanced from this thread https://forum.xda-developers.com/t/...enhance-payload-dumper-image-flasher.4310553/
( Or if on Linux, find yourself some knowledge on how to use a payload dumper to extract these images from the stock firmware package )

ALL of the partitions listed above that are NOT the 5 in the dynamic partition have BOTH slots A and B on your phone, you can flash all of these packages to both slots and pick either slot A or slot B when you repartition your super partition.

IT IS THE SUPER PARTITION THAT DECIDES WHICH SLOT GETS TO BOOT
(it is in bold because this is the cause of most "bricks" and vbmeta but more on that in a minute)


How to recreate a usable/bootable super partition:

1: identify which of your slots is capable of booting into stock recovery/fastbootd

If you can't boot stock recovery or fastbootd
flash these stock partitions:
dtbo
boot
vendor_boot
to both slots (_a and _b) on all 3
and these
fastboot --disable-verity --disable-verification flash vbmeta_a vbmeta.img
fastboot --disable-verity --disable-verification flash vbmeta_b vbmeta.img
fastboot --disable-verity --disable-verification flash vbmeta_system_a vbmeta_system.img
fastboot --disable-verity --disable-verification flash vbmeta_system_b vbmeta_system.img

Then try again to see which slot is bootable, if neither you lost too much in your super partition that is needed to run recovery, grab a backup of a super.img from someone on here and fastboot flash super super.img, depending on which slot that super.img is meant for, that will be the slot you will need to be on to proceed with the rest of the fixing

2. Boot into Fastbootd ( fastboot reboot fastboot )
Delete EVERYTHING from the super parition.
even if you don't remember making it, dont skip any of these lines just ignore the errors it spits out
fastboot delete-logical-partition system_a
fastboot delete-logical-partition system_b
fastboot delete-logical-partition system
fastboot delete-logical-partition system_ext_a
fastboot delete-logical-partition system_ext_b
fastboot delete-logical-partition system_ext
fastboot delete-logical-partition product_a
fastboot delete-logical-partition product_b
fastboot delete-logical-partition product
fastboot delete-logical-partition vendor_a
fastboot delete-logical-partition vendor_b
fastboot delete-logical-partition vendor
fastboot delete-logical-partition odm_a
fastboot delete-logical-partition odm_b
fastboot delete-logical-partition odm

Now let's recreated something useable. For Stock version 11.0.5.0 N/A my super image used these sizes (obtained by fastboot getvar all )
For my slot B to Slot A proof of concept i used this for slot A:
fastboot create-logical-partition system_a 0x5AFDC000
fastboot create-logical-partition system_ext_a 0x4B7B3000
fastboot create-logical-partition product_a 0x7338A000
fastboot create-logical-partition vendor_a 0x3EC8D000
fastboot create-logical-partition odm_a 0x37E9000

And for a "bricked" user wanting to stay with slot B they used:
fastboot create-logical-partition system_b 0x5AFDC000
fastboot create-logical-partition system_ext_b 0x4B7B3000
fastboot create-logical-partition product_b 0x7338A000
fastboot create-logical-partition vendor_b 0x3EC8D000
fastboot create-logical-partition odm_b 0x37E9000

Depending on which you choose to create, you can now set your desired slot with
fastboot set_active a
or
fastboot set_active b

then use Fastboot Enhanced to flash either the entire payload bin, or flash each to each _a or _b partition from the long list above one by one.

DO NOT LEAVE FASTBOOTD UNTIL YOU'VE FLASHED ALL OF THESE PARTITIONS (NOT JUST THE 5!) OR YOU MAY BE UNABLE TO GET BACK TO FASTBOOTD!!!
Flashing a payload.bin (.zip) in fastboot enhanced will flash to whatever slot is currently active and it monitors which slot is active.




Last is for vbmeta

If you flash any sort of modified boot image (magisk rooted), gsi, or any sort of image that is not stock, you need to flash the stock vbmeta and vbmeta_system with --disable-verity and --disable-verification or you won't be able to do much if anything at all.

in either fastboot or fastbootd:
fastboot —disable-verity —disable-verification flash vbmeta_a vbmeta.img
fastboot —disable-verity —disable-verification flash vbmeta_b vbmeta.img
fastboot —disable-verity —disable-verification flash vbmeta_system_a vbmeta_system.img
fastboot —disable-verity —disable-verification flash vbmeta_system_b vbmeta_system.img

these are very important if you flash files that are not originally from that specific build version/variant

Happy flashing to you all :) Hopefully this helps some people.
 

Attachments

  • how-to-use-Fastboot-Enhanced-to-switch-slots-and-unbrick-Nord-N200.png
    how-to-use-Fastboot-Enhanced-to-switch-slots-and-unbrick-Nord-N200.png
    349.2 KB · Views: 279
Last edited:

Travisholt92

Senior Member
Jun 28, 2012
1,312
1,188
30
Fort Wayne, Indiana
Honor 6X
OnePlus 6T
It surprises me there are no success stories commented.
There was a user in the telegram chat that was waiting (for a few days) to be able to send their device back to OnePlus. I let others try to come up with solution for a few days before i took the time to dive into the issue myself.

Immediately upon following this tutorial, they had restored functionality of slot B on their device and avoided sending the device to OnePlus to fix.

As a proof of concept I updated slot A and recreated the super.img for slot A and could easily go back to slot B by flashing my backup super.img(which was for slot B) and switching active slot back to slot B. So made this guide for them to restore proper setup of the super partition.

I hope this guide can help others as well.
 

PopCaps1996

Account currently disabled
Sep 24, 2019
103
40
26
OnePlus Nord N10 5G
OnePlus Nord N200 5G
Says the guy that gave the advice of wiping the super partition which is guaranteed to make sure you cannot get into recovery or fastbootD. Why don't you go ahead and get on somewhere before a moderator comes along and just removes you from the site entirely
Know your facts
n ask the guy I helped....


he is the one who corrupted his super partition with @Travisholt92 BS twrp. (As stated by the guy I help himself)
B4 I even touched his sh*t.

I Spent 8+hrs remote desktoping with him last night. He seemed happy when I left the chat
 
I need to remove the ability to wipe the super partition. Don't blame my software for a user error just because you can't use it while running Android 12 GSI. It doesn't work on any device. On Android 11, my twrp works as intended.
Honestly I think it would be best to make it to where you can only wipe user data, since apparently we have to baby the end users
 
  • Love
Reactions: PopCaps1996

Timmmmaaahh!

Senior Moderator
Staff member
Sep 11, 2012
5,817
1
14,476
Bruges
OnePlus One
OnePlus 6T
Thread Cleaned (again)├┤We really need to stop throwing moderators towards this place and we need your help to make that happen. Please be nice to one another. There's plenty of misery going on out there as it is. This forum is about our shared passion for tech dammit, let's show some love. Or at least get us involved so we can spread some love before things get heated. Thank you for listening, keep an open mind and have a great weekend.├┤Timmy├┤Forum Moderator├
 

Travisholt92

Senior Member
Jun 28, 2012
1,312
1,188
30
Fort Wayne, Indiana
Honor 6X
OnePlus 6T
Thread Cleaned (again)├┤We really need to stop throwing moderators towards this place and we need your help to make that happen. Please be nice to one another. There's plenty of misery going on out there as it is. This forum is about our shared passion for tech dammit, let's show some love. Or at least get us involved so we can spread some love before things get heated. Thank you for listening, keep an open mind and have a great weekend.├┤Timmy├┤Forum Moderator├
We resolved this disagreement outside of XDA to avoid this from happening in the future and to prevent the other party from getting themselves banned as they are a productive member of the community. I personally didn't want to see that happen over me. Issue resolved 🙂 sorry for wasting your time
 

88bbraj

Member
Jun 29, 2014
5
1
So ... I followed the steps in the OP and now the phone won't boot. Here's what I did:

1. Unpacked T-Mobile OTA payload.bin
2. Rebooted into fastbootd
3. Executed the following commands:

fastboot=/usr/local/bin/fastboot $fastboot -w $fastboot flash boot_a boot.img $fastboot flash boot_b boot.img $fastboot flash dtbo_a dtbo.img $fastboot flash dtbo_b dtbo.img $fastboot flash modem_a modem.img $fastboot flash modem_b modem.img $fastboot flash oplusstanvbk_a oplusstanvbk.img $fastboot flash oplusstanvbk_b oplusstanvbk.img $fastboot --disable-verity --disable-verification flash vbmeta_a vbmeta.img $fastboot --disable-verity --disable-verification flash vbmeta_b vbmeta.img $fastboot --disable-verity --disable-verification flash vbmeta_system_a vbmeta_system.img $fastboot --disable-verity --disable-verification flash vbmeta_system_b vbmeta_system.img $fastboot flash abl_a abl.img $fastboot flash abl_b abl.img $fastboot flash bluetooth_a bluetooth.img $fastboot flash bluetooth_b bluetooth.img $fastboot flash devcfg_a devcfg.img $fastboot flash devcfg_b devcfg.img $fastboot flash dsp_a dsp.img $fastboot flash dsp_b dsp.img $fastboot flash featenabler_a featenabler.img $fastboot flash featenabler_b featenabler.img $fastboot flash hyp_a hyp.img $fastboot flash hyp_b hyp.img $fastboot flash imagefv_a imagefv.img $fastboot flash imagefv_b imagefv.img $fastboot flash keymaster_a keymaster.img $fastboot flash keymaster_b keymaster.img $fastboot flash logo_a logo.img $fastboot flash logo_b logo.img $fastboot flash odm odm.img $fastboot flash qupfw_a qupfw.img $fastboot flash qupfw_b qupfw.img $fastboot flash tz_a tz.img $fastboot flash tz_b tz.img $fastboot flash uefisecapp_a uefisecapp.img $fastboot flash uefisecapp_b uefisecapp.img $fastboot flash xbl_a xbl.img $fastboot flash xbl_b xbl.img $fastboot flash xbl_config_a xbl_config.img $fastboot flash xbl_config_b xbl_config.img $fastboot flash system system.img $fastboot flash vendor vendor.img $fastboot flash product product.img $fastboot flash core_nhlos_a core_nhlos.img $fastboot flash core_nhlos_b core_nhlos.img $fastboot flash rpm_a rpm.img $fastboot flash rpm_b rpm.img $fastboot flash system_ext system_ext.img $fastboot flash vendor_boot_a vendor_boot.img $fastboot flash vendor_boot_b vendor_boot.img

Then rebooted into recovery the phone stayed dead. Any idea what went wrong and what to do next?
 

88bbraj

Member
Jun 29, 2014
5
1
So ... I followed the steps in the OP and now the phone won't boot. Here's what I did:

1. Unpacked T-Mobile OTA payload.bin
2. Rebooted into fastbootd
3. Executed the following commands:

Then rebooted into recovery the phone stayed dead. Any idea what went wrong and what to do next?
Unbricked it using the MSMDownloadTools. The phone rebooted into OxygenOS and installed the newest update automatically. I intend to unlock the bootloader again and root the device, so if you can spot where I made a mistake in that list of commands you'll save me some trouble the next time I need to update.
 

Travisholt92

Senior Member
Jun 28, 2012
1,312
1,188
30
Fort Wayne, Indiana
Honor 6X
OnePlus 6T
It's very clear that you skipped the step of identifying current dynamic partitions using fastboot enhanced/payload dumper (which would have told you which slot was bootable, which slot to recreate, and would have helped you in identifying partition layout mistakes). Next time I advise taking a screenshot on a computer of the partition layout. but the MSM tool is the easiest unbrick method for Metro/T-Mobile devices

Also sorry for the delayed response, the server went down for maintenance about 20 minutes after you posted 😂

But I'm glad you got it sorted out 👍
Unbricked it using the MSMDownloadTools. The phone rebooted into OxygenOS and installed the newest update automatically. I intend to unlock the bootloader again and root the device, so if you can spot where I made a mistake in that list of commands you'll save me some trouble the next time I need to update.
 

88bbraj

Member
Jun 29, 2014
5
1
It's very clear that you skipped the step of identifying current dynamic partitions using fastboot enhanced/payload dumper (which would have told you which slot was bootable, which slot to recreate, and would have helped you in identifying partition layout mistakes).
Your OP reads like that's only necessary for people with soft-bricked phones. Mine wasn't. I was trying to flash the newest OTA update onto a working, rooted TMO-branded phone. I checked which slot was active fastboot getvar active-slot and did not flash both _a and _b slots for the dynamic partitions.

I now have a working, TMO-branded phone with the newest OTA update installed, but I've read that rooted and bootloader-unlocked phones do not get OTA updates automatically. Is a subset of your OP's steps not the proper way to flash the new OTA payload in the future?

Thanks for clarifying.
 

Travisholt92

Senior Member
Jun 28, 2012
1,312
1,188
30
Fort Wayne, Indiana
Honor 6X
OnePlus 6T
Im honestly not sure. My mind doesn't care about stock on the N200 until Android 12 to be honest lol. Awaiting to build a Ryzen based PC to start compiling custom ROMs again. I know the n200 trees are nearly stable enough for daily driver usage. But I don't have a system worthy of compiling in less than 12 hours at the moment.

Better software will come soon enough, you won't have to deal with stock for much longer.
Your OP reads like that's only necessary for people with soft-bricked phones. Mine wasn't. I was trying to flash the newest OTA update onto a working, rooted TMO-branded phone. I checked which slot was active fastboot getvar active-slot and did not flash both _a and _b slots for the dynamic partitions.

I now have a working, TMO-branded phone with the newest OTA update installed, but I've read that rooted and bootloader-unlocked phones do not get OTA updates automatically. Is a subset of your OP's steps not the proper way to flash the new OTA payload in the future?

Thanks for clarifying.
 

88bbraj

Member
Jun 29, 2014
5
1
Im honestly not sure. My mind doesn't care about stock on the N200 until Android 12 to be honest lol. Awaiting to build a Ryzen based PC to start compiling custom ROMs again. I know the n200 trees are nearly stable enough for daily driver usage. But I don't have a system worthy of compiling in less than 12 hours at the moment.

Better software will come soon enough, you won't have to deal with stock for much longer.
I didn't like the stock global N200. TMO fixes a few niggling issues (global doesn't recognize the CPU version, as an example), but global certainly makes the updating process simpler.

Anyway, I gleaned a lot of information from various posts of yours on this website which were useful, so thanks.
 
  • Like
Reactions: Travisholt92

no_el

New member
May 23, 2022
2
0
@Travisholt92 I get an error from fastboot when I try to delete/create the partitions.
fastboot create-logical-partition system_a 0 Creating 'system_a' FAILED (remote: 'unknown command') fastboot: error: Command failed

I'm using fastboot version 28.0.2-debian. Any ideas why I can't recreate some of these partitions?
 

Travisholt92

Senior Member
Jun 28, 2012
1,312
1,188
30
Fort Wayne, Indiana
Honor 6X
OnePlus 6T
@Travisholt92 I get an error from fastboot when I try to delete/create the partitions.
fastboot create-logical-partition system_a 0 Creating 'system_a' FAILED (remote: 'unknown command') fastboot: error: Command failed

I'm using fastboot version 28.0.2-debian. Any ideas why I can't recreate some of these partitions?
You're using an outdated version of fastboot that doesn't support the required commands. Update to the latest version of Fastboot from the Google sdk


This is when they added the command.

33.0.1 is the latest and the download link is at the top of the page linked in this comment. 👍
 

drfsupercenter

Senior Member
Aug 21, 2010
84
14
Hey guys,

I am trying to update my N200 to the newest OxygenOS, because it keeps nagging me to if I don't.

The first thing I tried was to re-flash the stock boot.img from the extracted OTA (which replaced Magisk with the stock recovery, too) - but still kept getting an installation error.

So I followed the steps above, and flashed *that* payload.bin with the Fastboot Enhanced tool - but it keeps boot-looping me back to fastboot mode. I think the partitions have changed sizes or something, and there's a message saying there were unknown partitions in the payload.bin too.

So for now, I'm flashing back to "OnePlusN200Oxygen_10.O.11_OTA_011_all_2203021426_2dd4f42a2d0545a3" and restoring my TWRP backup (which includes a "super" partition, but of that build), but if anybody can advise how I can update it to the DE2117_11_C.15 build, that would be great.

Hopefully there is a way to do it without erasing data. Usually for other phones I just unroot, install OTA, then re-root. But it seems trickier with the partition size nonsense going on here.

Edit: OnePlus download site hasn't updated the links yet, but there was a full OTA posted on XDA a few days ago, link here.
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    Link is currently broken. Could someone provide the unlocked variant again?
    The website linked has been down for a few days now...
    These are Hosted on Android File Host and will stick around:

    DE2118 OnePlus N200 msmtool for US T-Mobile/MetroPCS carrier tainted firmware

    OR

    DE2117AA OnePlus N200 msmtool for Intl. modem version
    If you recover a US OEM phone with this tool, You will restore the phone, BUT the modem will not function correctly and calls/texts will not work! You will then need to cross flash to DE2117 OEM US firmware to get the proper modem files.

    There is no DE2117 US OEM msmtool released that I'm aware of at this time.
  • 6
    Moderator Information

    Hello,
    I have to remove some off topic posts from this thread. Please post your comment following XDA rules. No finger pointing without proofs, neither calling names. Just be civil in the discussion.

    Thanks.

    Jerry
    5
    I've seen alooot of issues lately of people "bricking" their Nord N200's without a method of unbricking (at the time of writing, only T-Mobile variant has MSMTool)

    I've noticed a reoccurring theme. i myself am guilty of doing it and not realizing what went wrong.

    It's one of two things:

    1. If the device fails to boot "7" times in a row or encounters a hard panic, it will wipe the metadata partition (the decryption key for data/user storage) and may also switch to the alternate slot automatically.

    If your device switches slots on it's own, your userdata is gone.. without a decryption key, there is no getting it back (without a very powerful computer and probably years to brute force decrypt)

    You will not be able to boot again until you are on the correct slot (dictated by your super partition and other A/B partitions needing to be up to date)

    When back on the proper slot, while in fastboot run:
    fastboot -w

    This will wipe userdata and metadata partitions to allow metadata to be regenerated upon first boot.

    Either "fastboot reboot recovery" or use the keys to select reboot recovery. And "wipe everything"

    After this you should be bootable. If not...




    2. When attempting to prepare the system for flashing GSI, we humans are messing up :eek: surprise surpise.

    The issue most specifically stems from the dynamic partition located at /dev/block/by-name/super

    this partition actually contains 5 resizable partitions : (i've seen up to 7 on this device including -cow (copy-on-write)
    system // system_a/system_b //
    system_ext // system_ext_a/system_ext_b //
    product // product_a/product_b //
    vendor // vendor_a/vendor_b //
    odm // odm_a/odm_b //

    if on you are running stock and your stock is running on slot b for example, your dynamic partition layout is as follows:
    system_b
    system_ext_b
    product_b
    vendor_b
    odm_b

    the issue lies when we go to flash a GSI and start using the commands:
    fastboot delete-logical-parition
    fastboot create-logical-parition

    i myself have done:
    fastboot create-logical-partition system 0
    this is wrong. it needs a target slot specified, you will have no issues creating the partition or flashing, but it will most likely fail to boot.

    correct usage would be:
    fastboot create-logical-partition system_b 0 // or use the size values provided by fastboot getvar all as shown in my example of how to switch slots/unbrick below


    Prerequisites:

    1. stock firmware package or complete dump of all of these FROM THE SAME SOFTWARE VERSION
    I have a T-Mobile variant, but for this proof of concept i used the unbranded NA Software provided here https://www.oneplus.com/support/softwareupgrade/details?code=PM1630638351161

    Required Partition Images:
    system.img
    system_ext.img
    product.img
    vendor.img
    odm.img
    boot.img
    vendor_boot.img
    dtbo.img
    uefisecapp.img
    imagefv.img
    abl.img
    core_nhlos.img
    qupfw.img
    keymaster.img
    hyp.img
    dsp.img
    devcfg.img
    bluetooth.img
    logo.img
    tz.img
    xbl.img
    xbl_config.img
    featenabler.img
    modem.img
    rpm.img
    oplusstanvbk.img
    vbmeta.img
    vbmeta_system.img


    If you're on T-Mobile just use the MSMTool unless you prefer the unbranded software.

    2. Fastboot Enhanced from this thread https://forum.xda-developers.com/t/...enhance-payload-dumper-image-flasher.4310553/
    ( Or if on Linux, find yourself some knowledge on how to use a payload dumper to extract these images from the stock firmware package )

    ALL of the partitions listed above that are NOT the 5 in the dynamic partition have BOTH slots A and B on your phone, you can flash all of these packages to both slots and pick either slot A or slot B when you repartition your super partition.

    IT IS THE SUPER PARTITION THAT DECIDES WHICH SLOT GETS TO BOOT
    (it is in bold because this is the cause of most "bricks" and vbmeta but more on that in a minute)


    How to recreate a usable/bootable super partition:

    1: identify which of your slots is capable of booting into stock recovery/fastbootd

    If you can't boot stock recovery or fastbootd
    flash these stock partitions:
    dtbo
    boot
    vendor_boot
    to both slots (_a and _b) on all 3
    and these
    fastboot --disable-verity --disable-verification flash vbmeta_a vbmeta.img
    fastboot --disable-verity --disable-verification flash vbmeta_b vbmeta.img
    fastboot --disable-verity --disable-verification flash vbmeta_system_a vbmeta_system.img
    fastboot --disable-verity --disable-verification flash vbmeta_system_b vbmeta_system.img

    Then try again to see which slot is bootable, if neither you lost too much in your super partition that is needed to run recovery, grab a backup of a super.img from someone on here and fastboot flash super super.img, depending on which slot that super.img is meant for, that will be the slot you will need to be on to proceed with the rest of the fixing

    2. Boot into Fastbootd ( fastboot reboot fastboot )
    Delete EVERYTHING from the super parition.
    even if you don't remember making it, dont skip any of these lines just ignore the errors it spits out
    fastboot delete-logical-partition system_a
    fastboot delete-logical-partition system_b
    fastboot delete-logical-partition system
    fastboot delete-logical-partition system_ext_a
    fastboot delete-logical-partition system_ext_b
    fastboot delete-logical-partition system_ext
    fastboot delete-logical-partition product_a
    fastboot delete-logical-partition product_b
    fastboot delete-logical-partition product
    fastboot delete-logical-partition vendor_a
    fastboot delete-logical-partition vendor_b
    fastboot delete-logical-partition vendor
    fastboot delete-logical-partition odm_a
    fastboot delete-logical-partition odm_b
    fastboot delete-logical-partition odm

    Now let's recreated something useable. For Stock version 11.0.5.0 N/A my super image used these sizes (obtained by fastboot getvar all )
    For my slot B to Slot A proof of concept i used this for slot A:
    fastboot create-logical-partition system_a 0x5AFDC000
    fastboot create-logical-partition system_ext_a 0x4B7B3000
    fastboot create-logical-partition product_a 0x7338A000
    fastboot create-logical-partition vendor_a 0x3EC8D000
    fastboot create-logical-partition odm_a 0x37E9000

    And for a "bricked" user wanting to stay with slot B they used:
    fastboot create-logical-partition system_b 0x5AFDC000
    fastboot create-logical-partition system_ext_b 0x4B7B3000
    fastboot create-logical-partition product_b 0x7338A000
    fastboot create-logical-partition vendor_b 0x3EC8D000
    fastboot create-logical-partition odm_b 0x37E9000

    Depending on which you choose to create, you can now set your desired slot with
    fastboot set_active a
    or
    fastboot set_active b

    then use Fastboot Enhanced to flash either the entire payload bin, or flash each to each _a or _b partition from the long list above one by one.

    DO NOT LEAVE FASTBOOTD UNTIL YOU'VE FLASHED ALL OF THESE PARTITIONS (NOT JUST THE 5!) OR YOU MAY BE UNABLE TO GET BACK TO FASTBOOTD!!!
    Flashing a payload.bin (.zip) in fastboot enhanced will flash to whatever slot is currently active and it monitors which slot is active.




    Last is for vbmeta

    If you flash any sort of modified boot image (magisk rooted), gsi, or any sort of image that is not stock, you need to flash the stock vbmeta and vbmeta_system with --disable-verity and --disable-verification or you won't be able to do much if anything at all.

    in either fastboot or fastbootd:
    fastboot —disable-verity —disable-verification flash vbmeta_a vbmeta.img
    fastboot —disable-verity —disable-verification flash vbmeta_b vbmeta.img
    fastboot —disable-verity —disable-verification flash vbmeta_system_a vbmeta_system.img
    fastboot —disable-verity —disable-verification flash vbmeta_system_b vbmeta_system.img

    these are very important if you flash files that are not originally from that specific build version/variant

    Happy flashing to you all :) Hopefully this helps some people.
    5
    Thread Cleaned (again)├┤We really need to stop throwing moderators towards this place and we need your help to make that happen. Please be nice to one another. There's plenty of misery going on out there as it is. This forum is about our shared passion for tech dammit, let's show some love. Or at least get us involved so we can spread some love before things get heated. Thank you for listening, keep an open mind and have a great weekend.├┤Timmy├┤Forum Moderator├
    We resolved this disagreement outside of XDA to avoid this from happening in the future and to prevent the other party from getting themselves banned as they are a productive member of the community. I personally didn't want to see that happen over me. Issue resolved 🙂 sorry for wasting your time
    3
    It surprises me there are no success stories commented.
    There was a user in the telegram chat that was waiting (for a few days) to be able to send their device back to OnePlus. I let others try to come up with solution for a few days before i took the time to dive into the issue myself.

    Immediately upon following this tutorial, they had restored functionality of slot B on their device and avoided sending the device to OnePlus to fix.

    As a proof of concept I updated slot A and recreated the super.img for slot A and could easily go back to slot B by flashing my backup super.img(which was for slot B) and switching active slot back to slot B. So made this guide for them to restore proper setup of the super partition.

    I hope this guide can help others as well.
    3
    Thread Cleaned (again)├┤We really need to stop throwing moderators towards this place and we need your help to make that happen. Please be nice to one another. There's plenty of misery going on out there as it is. This forum is about our shared passion for tech dammit, let's show some love. Or at least get us involved so we can spread some love before things get heated. Thank you for listening, keep an open mind and have a great weekend.├┤Timmy├┤Forum Moderator├