Development [STOCK][FULL-ROM] OxygenOS_11.3_A.20 EU DN2103 | Unbrick guide

Search This thread

jis251

Senior Member
Aug 2, 2013
180
49
This rom does not overwrite userdata. But I highly suggest to do a backup first anyway.

The most straight forward fix you could try before re-flashing the whole rom though, is to flash back the stock recovery and do a full factory reset (format data) from there.



It's a live USB, a whole OS running from a pendrive (or in a virtual machine if you prefer). You do not use it in windows.
This firmware is for A.12 EU only, I'm not able to confirm any compatibility with A.13.

This rom does not overwrite userdata. But I highly suggest to do a backup first anyway.

The most straight forward fix you could try before re-flashing the whole rom though, is to flash back the stock recovery and do a full factory reset (format data) from there.



It's a live USB, a whole OS running from a pendrive (or in a virtual machine if you prefer). You do not use it in windows.
This firmware is for A.12 EU only, I'm not able to confirm any compatibility with A.13.
HI. My System was "gone". I couldn't do anything. From Stock recovery I couldn't Update online, no network found (wifi). Fastboot told that my bootloader is locked, even I had unlocked it. Stock recovery just came by itself, I didn't restore it. I took my phone to service and they were puzzled what had happened to my phone. I guess they will give me new one. Perhaps hardware is somehow broken. Their best guess was that.
Thanks your advices. I wait service to reply.
This rom does not overwrite userdata. But I highly suggest to do a backup first anyway.

The most straight forward fix you could try before re-flashing the whole rom though, is to flash back the stock recovery and do a full factory reset (format data) from there.



It's a live USB, a whole OS running from a pendrive (or in a virtual machine if you prefer). You do not use it in windows.
This firmware is for A.12 EU only, I'm not able to confirm any compatibility with A.13.
 

pankspoo

Account currently disabled
Jun 27, 2013
1,776
953
in front of ENCHILADA
O my god o my god u all are genuius thanks your help and our alls hardwork finally i cracked booted I can't believe 😂😭😜🤣😁
This will be new innovation for nord 2😊
 

Elaba

Senior Member
Jun 27, 2010
88
16
Today did a 2nd attempt to unlock the bootloader and instal Twrp. So far so good, haven't used the phone yet (pac-man edition) , Hopefully all goes well this time. I remember it probably went wrong the first time after i made a nand backup just after the rooting process . Haven't done a nand backup yet, bit scared to end up the same like before.
 
Last edited:

Zombnombs

Member
Nov 17, 2021
47
12
OnePlus Nord 2 5G
Hi
I used your method to backup my phone, and restore your OxygenOS 11.3 A.12 EU Full Stock. The process went fine, but the phone doesnt boot after that. the phones shows this message:

View attachment 5470935

fastboot flashing unlock shows "fastboot: error: Command failed"
if i want to flash any image or TWRP, i get "FAILED (remote: 'not allowed in locked state')"
fastboot getvar all tells me: (bootloader) unlocked: no
(it was unlocked before restore..?)

should i try your "For locked bootloader:" method? it sounds "funny" :LOL::eek::devilish:
Exact same boat for me as well. The included .bat seemed to work just fine, and then the phone no longer boots and gives the same error. Flashing unlock lets me press the volume up button to select "yes" but errors out, not allowed.

Whilst running the restore option in the .bat I noticed the first half worked flawless, but about halfway through it started running into the "not allowed in locked state" errors, so my theory is that the tool flashes in a LOCKED bootloader about midway through, thus practically interupting itself and half of partitions afterwards cannot be flashed.
That's odd, the rom is already unlocked by itself. I'll see if any others encounter the same issue.

The locked bootloader method should revert it back to unlocked.
Same issue as above here. So for some reason, a locked bootloader got flashed in? Not too sure why but it seems to be happening to multiple people.



Edit:

Okay so, I just followed the "for locked bootloader" steps

Successfully flashed the seccfg.img in the download link to the phone - But the bootloader is still locked.

After connecting back to my windows PC, the "fastboot flashing unlock" command still returns "operation not allowed" and trying to flash files still returns "FAILED (remote: 'not allowed in locked state')

The fastboot command "fastboot getvar all" returns message the message "(bootloader) unlocked: no"

So the bootloader is definitely still locked.

Isn't the most obvious answer to this whole situation (of several people having the same issue), is that the seccfg provided in the OP might be for a locked bootloader? So maybe a good samaritan somewhere with an unlocked bootloader can upload their seccfg, and we can check? Or maybe @Raygen can try reuploading it again? Always good to get a 2nd source so we can eliminate the possibility.
 
Last edited:

Zombnombs

Member
Nov 17, 2021
47
12
OnePlus Nord 2 5G
I am having the exact same issue after restoring (I also had unlocked bootloader before and fastboot says it is locked now). Did you manage to fix it after following the locked bootloader instructions?

i could also flash seccfg.img. But also still locked bootloader.
will try again later this week.

I done all The things also python shown falshing completed still bootloader is showing locked i dont understand what's happening

Exact same boat too! Not sure if you guys have managed a fix yet, but let me know what you guys have tried. It seems like TheWing has found a fix. Which I'm currently trying right now. I have the 12gbram 256gb storage DN2103 EU variant phone on A12.


I also tried the bootloader unlock method (after the broken boot/recovery message) and got the same result, fastboot saying it was still locked. After i messed with mtkclient flashing some images again or trying the proper mtkclient unlock method (from their github page) but no luck.

I managed to fix it today flashing with mtkclient the stock boot, recovery and vbmeta images from latest A12 ota, getting into the recovery and wiping all data, and after that the phone was finally working, and I could unlock the bootloader again and flash magisk and so.

@TheWing Thanks for sharing your fix! Could you perhaps share the vbmeta, boot and recovery images you used to flash the fix? When you say "from the A12 OTA", what do you mean? Do you mean the incremental A11 to A12 update.zip? Could you provide a link to this or point me where i can find it?

If I understand correctly, you solved your bootloop using the mtkclient's ability to flash partitions despite having a locked bootloader; So you basically did a "normal" bootloop fix and managed to correct your phone.

I'm trying it right now but it hasn't seemed to work. Tried using the Recovery/Boot/vbmeta files from my nandroid, but also files from the google drive in the OP's google drive link. Can't seem to get the phone out of it's partitions destroyed message. A link to that OTA12 update file that you mentioned would be extremely helpful.



Question, were you able to boot into recovery prior to these fixes? The recovery.img in the OP's download link seem to work for me! But using it's format data and wipe data function doesn't seem to do anything, and I've tried it a dozen or more times.



Could you also check if these files sizes look right to you? So i know if I'm in the right ballpark.

boot.img: 33,554,432 bytes (32.0 MiB)

All the stock boot images seem to be this exact size, whether it be from my nandroid backups, or the ones provided here on XDA for stock .A12 update. I've tried a bunch but none of them are working so far. I assume they're all identical.

recovery.img: 134,217,728 bytes (128.0MiB)
This is where things get a little confusing for me. The TWRP recovery image from Denniz's TWRP thread is also this exact same size. The supposedly "stock" recovery in the google link in the OP of this thread is also this exact same size.

vbmeta_vendor.img(from download link in this thread) and vbmeta.emmc.win (from nandroid): 8,388,608 bytes (8.00MiB)
Alright this is where I'm getting really confused. There's 2 different file sizes here. I assume you're flashing the ones that are 8 megabytes large? That's the vbmeta partitions in my nandroids, and also the vbmeta included in the OP's download link.
However, there's also teh vb.img file that people use for the "./fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img" command, which is only 4,096 bytes (4KB) large, which I assume is far too small to be what you're flashing.



Could you check these commands for me and see if they look right to you? And if I'm placing them in the correct location in the mtkclient?
"python mtk w boot boot.img"
"python mtk w recovery recovery.img"
"python mtk w vbmeta vbmeta.img"

I renamed files from my nandroid backups from things like "vbmeta.emmc.win" to just "vbmeta.img". I then placed the renamed files into the /opt/mtkclient directory and flashed them using the above commands. The flashes seemed to work fine. Do you think renaming the files, or that .emmc.win files from TWRP backups are incompatible somehow? (like TWRP compresses them funny or something)



Any ideas, file uploads, or file download links that any of you guys have will be appreciated.
 
Last edited:

Zombnombs

Member
Nov 17, 2021
47
12
OnePlus Nord 2 5G
After hours and hours of tinkering, I've not quite fixed the issue, but gotten the phone into a... slightly better state?

Phone now boots to (some kind of stock) recovery, and when trying to boot to system, phone gets stuck in a very short bootloop; Oneplus symbol appears, dispppears, repeats. Not your normal bootloop (which usually looks like 2 white dots spinning around larger red dot and takes longer before it reboots).

Using this stock recovery (which shows Ver1.2 at the bottom)'s Wipe data/Format Data functions do not seem to help at all. Curiously, the language menu on this stock recovery seems to be very different to the stock recovery that came with my phone; The otrder of the languages is different, and it has an extra "online update" option that I've never seen before. Otherwise it's practically the same.

This stock recovery also always prompts some kind of error like saying something along the lines of 'Kindly reminder, please connect inernet to update'. With pretty broken english and a few typo's in the popup. The "update system" button in the recovery doesn't work, as it can't find or access any wifi.

I'm wondering if I'm getting close to a fix here. I can explain steps taken to get here incase it helps others, and if anyone has seen a "short bootloop" like this before and knows how to solve it, please let me know!

Bootloader is still locked fyi, flashing unlock command does not work.

I can still use mtkclient to manually flash in any partitions. Flashing seccfg doesn't seem to help.

Still looking for the stock recovery and stock vbmeta partitions from the OTA A12 update if anyone can help me with those. I don't know where to find the stock OTA A12 update that people keep talking about, as the update.zip from teh incremental A11 to A12 update doesn't seem to be quite right.
 

Raygen

Senior Member
Feb 21, 2014
120
53
Mantova
Exact same boat too! Not sure if you guys have managed a fix yet, but let me know what you guys have tried. It seems like TheWing has found a fix. Which I'm currently trying right now. I have the 12gbram 256gb storage DN2103 EU variant phone on A12.




@TheWing Thanks for sharing your fix! Could you perhaps share the vbmeta, boot and recovery images you used to flash the fix? When you say "from the A12 OTA", what do you mean? Do you mean the incremental A11 to A12 update.zip? Could you provide a link to this or point me where i can find it?

If I understand correctly, you solved your bootloop using the mtkclient's ability to flash partitions despite having a locked bootloader; So you basically did a "normal" bootloop fix and managed to correct your phone.

I'm trying it right now but it hasn't seemed to work. Tried using the Recovery/Boot/vbmeta files from my nandroid, but also files from the google drive in the OP's google drive link. Can't seem to get the phone out of it's partitions destroyed message. A link to that OTA12 update file that you mentioned would be extremely helpful.



Question, were you able to boot into recovery prior to these fixes? The recovery.img in the OP's download link seem to work for me! But using it's format data and wipe data function doesn't seem to do anything, and I've tried it a dozen or more times.



Could you also check if these files sizes look right to you? So i know if I'm in the right ballpark.

boot.img: 33,554,432 bytes (32.0 MiB)

All the stock boot images seem to be this exact size, whether it be from my nandroid backups, or the ones provided here on XDA for stock .A12 update. I've tried a bunch but none of them are working so far. I assume they're all identical.

recovery.img: 134,217,728 bytes (128.0MiB)
This is where things get a little confusing for me. The TWRP recovery image from Denniz's TWRP thread is also this exact same size. The supposedly "stock" recovery in the google link in the OP of this thread is also this exact same size.

vbmeta_vendor.img(from download link in this thread) and vbmeta.emmc.win (from nandroid): 8,388,608 bytes (8.00MiB)
Alright this is where I'm getting really confused. There's 2 different file sizes here. I assume you're flashing the ones that are 8 megabytes large? That's the vbmeta partitions in my nandroids, and also the vbmeta included in the OP's download link.
However, there's also teh vb.img file that people use for the "./fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img" command, which is only 4,096 bytes (4KB) large, which I assume is far too small to be what you're flashing.



Could you check these commands for me and see if they look right to you? And if I'm placing them in the correct location in the mtkclient?
"python mtk w boot boot.img"
"python mtk w recovery recovery.img"
"python mtk w vbmeta vbmeta.img"

I renamed files from my nandroid backups from things like "vbmeta.emmc.win" to just "vbmeta.img". I then placed the renamed files into the /opt/mtkclient directory and flashed them using the above commands. The flashes seemed to work fine. Do you think renaming the files, or that .emmc.win files from TWRP backups are incompatible somehow? (like TWRP compresses them funny or something)



Any ideas, file uploads, or file download links that any of you guys have will be appreciated.

You can find the OTA A.12 zip file here: https://mega.nz/folder/rQhhHQpA#nNHvPlmzBXwPjmaFpuDa2Q

The partition images are extracted directly from the phone memory, so all images have the exact same dimensions of the partitions size on the phone memory, not the "real" size of the data in them.
In practice, they're filled with lot's of zeros at the end to reach all the same size.
Don't worry about it, both files, smaller ones that came in the OTA files, and the 8Mb+ ones extracted with the tool, are exactly the same.

emmc.win files should be just .img files renamed yes. You can renamed them back to .img or even flash them directly like that.

Try to flash just the vbmeta img from the OTA file and see if it works btw.
I'm about to implement @TheWing fix soon this week in the thread.
 
Last edited:
  • Like
Reactions: Zombnombs

Raygen

Senior Member
Feb 21, 2014
120
53
Mantova
After hours and hours of tinkering, I've not quite fixed the issue, but gotten the phone into a... slightly better state?

Phone now boots to (some kind of stock) recovery, and when trying to boot to system, phone gets stuck in a very short bootloop; Oneplus symbol appears, dispppears, repeats. Not your normal bootloop (which usually looks like 2 white dots spinning around larger red dot and takes longer before it reboots).

Using this stock recovery (which shows Ver1.2 at the bottom)'s Wipe data/Format Data functions do not seem to help at all. Curiously, the language menu on this stock recovery seems to be very different to the stock recovery that came with my phone; The otrder of the languages is different, and it has an extra "online update" option that I've never seen before. Otherwise it's practically the same.

This stock recovery also always prompts some kind of error like saying something along the lines of 'Kindly reminder, please connect inernet to update'. With pretty broken english and a few typo's in the popup. The "update system" button in the recovery doesn't work, as it can't find or access any wifi.

I'm wondering if I'm getting close to a fix here. I can explain steps taken to get here incase it helps others, and if anyone has seen a "short bootloop" like this before and knows how to solve it, please let me know!

Bootloader is still locked fyi, flashing unlock command does not work.

I can still use mtkclient to manually flash in any partitions. Flashing seccfg doesn't seem to help.

Still looking for the stock recovery and stock vbmeta partitions from the OTA A12 update if anyone can help me with those. I don't know where to find the stock OTA A12 update that people keep talking about, as the update.zip from teh incremental A11 to A12 update doesn't seem to be quite right.

The stock recovery present inside the stock firmware .zip is the original one directly from the A.12 update.
The differences you've listed from the old recovery are legit, and present in the stock recovery yes.

Never seen those kind of short bootloops, but try to start fresh by reflashing the stock firmware *without* the eccfg partition + flash vbmeta from the OTA file. And see where that gets you.
 
  • Like
Reactions: kkdamion

Zombnombs

Member
Nov 17, 2021
47
12
OnePlus Nord 2 5G

Try to flash just the vbmeta img from the OTA file and see if it works btw.
Hey cheers for the link. Ahhh that explains why all the sizes match. In the OTA 12 file, there are 3 files for vbmeta which are all 4KB in size;

vbmeta.img
vbmeta_system.img
vbmeta_vendor.img

I assume I'll just flash the first one named "vbmeta.img"? What are the other 2?
 
  • Like
Reactions: kkdamion

Raygen

Senior Member
Feb 21, 2014
120
53
Mantova
Hey cheers for the link. Ahhh that explains why all the sizes match. In the OTA 12 file, there are 3 files for vbmeta which are all 4KB in size;

vbmeta.img
vbmeta_system.img
vbmeta_vendor.img

I assume I'll just flash the first one named "vbmeta.img"? What are the other 2?

Yup just the first one is enough. The others two have never been fiddled with, so you already have the stock ones flashed.
 
  • Like
Reactions: kkdamion

Zombnombs

Member
Nov 17, 2021
47
12
OnePlus Nord 2 5G
Took a bit of fiddling around, I think I erased a few partitions by accident (due to following the github page's official instructions for how to unlock bootloader)

Flashing VBmeta from the OTA 12 update file in the mega link above, along with flashing the boot.img and recovery image from the google drive link in the OP should work for most people.

If you're like me and used the "python mtk e cache[and a few other partitions]" command as instructed by the mtkclient's github page's instructions for how to unlock bootloader (which doesn't work for the oneplus nord 2, so don't bother) I found I had to reflash those erased partitions from my nandroid backup as well. Then for some reason, it seems like vbmeta has to be the LAST partition you flash. As I flashed all sorts of other things, and the phone wouldnt boot, until i flashed vbmeta as the most recent one. No idea why that matters though.


Have to step away from my computer but currently the phone seems to boot up just fine, I'm going to leave it at the "welcome setup" screen for now and I'll report back if I see anything unusual.

If anyone else runs in the same issues and got to the fix, just know that if you wiped all partitions, or used someone else's persist.img partition, you'll need to manually flash in the persist image from your own backup or your fingerprint + camera won't work.
 
  • Like
Reactions: kkdamion and Raygen

martinwildi

Member
Dec 11, 2009
11
5
i also had some sort of a victory :).
my device was also stuck (Post#13)
only flashing seccfg.img with the pendrive didnt work, still stuck, and still locked bootloader
i had to flash the correct versions of boot.img, recovery.img and vbmeta.img via mtktools (in my case A.07)
now i can start the phone, it's on the welcome screen
and it seems to have locked bootloader right now.

i have to see later, what i'm doing now :)

@All: thanks for your help!
 

kkdamion

Senior Member
Jul 31, 2011
101
16
@Zombnombs so you managed to get to the "welcome setup" screen. nicely done, so there is some hope for me too.
but first i have to figure out what to do. im not a noob but ive never messed my phone up like this
 

Zombnombs

Member
Nov 17, 2021
47
12
OnePlus Nord 2 5G
@Zombnombs so you managed to get to the "welcome setup" screen. nicely done, so there is some hope for me too.
but first i have to figure out what to do. im not a noob but ive never messed my phone up like this
If you're in the state where your phone won't boot at all, and the bootloader is totally locked; Download the live dvd iso of mtkclient from https://drive.google.com/file/d/1OoGWFSZTqWqwfU35W6UAUwc20CJrK95t/view?usp=sharing and flash it onto a pendrive aka USB stick using Rufus https://rufus.ie/en/

Once you have that, you can use the pendrive/usb stick to boot into a linux operating system which has all the tools you need ready to go. (reboot a computer with the usb stick plugged in, and make sure your computer's boot priority order prioritises booting from USB sticks before your normal SSD/HDD). You should now be running a linux OS on your computer. The password is to log into the OS is "user" as you can find in the documentation at https://github.com/bkerler/mtkclient.

Then I personally used a 2nd USB stick, copied the boot.img and recovery.img from the google drive link in the OP of this thread, and grabbed the vbmeta.img from https://mega.nz/folder/rQhhHQpA#nNHvPlmzBXwPjmaFpuDa2Q, which is the stock A12 vbmeta image. The vbmeta from this thread's google link did not work for me, as it is not stock.

So you should now have 3 files: vbmeta.img, recovery.img, and boot.img. I used a 2nd usb stick for these, as the first USB stick with the linux operating system was being used as a boot drive, but you can use the method the others described as well to get files where you need them.

Any way you do it, get those 3 .img files into the /opt/mtkclient directory (there's a Home shortcut on the left side of the desktop, go to system files, opt, mtkclient and copy the 3 .img files here)

After that, just simply open the mtkclient shortcut on the desktop, and run the commands
"python mtk w boot boot.img"
"python mtk w recovery recovery.img"
"python mtk w vbmeta vbmeta.img"

These commands only work if your files are named exactly "boot.img", "vbmeta.img" and "recovery.img", feel free to rename them if they don't match.

Also be careful as if you're using an american keyboard, the z's and y's of the linux keyboard and swapped. (EU keyboard variant)

After running each command, plug in your phone, and simply hold down all 3 buttons: vol down, vol up, and power. I didn't find it necessary to unplug the phone or do anything fancy; Just hold all 3 buttons and your phone will eventually go into the necessary BROM mode, it might enter recovery, or fastboot mode first, but it will always end up in BROM mode if you just hold the 3 buttons which lets the mtkclient flash your needed partitions.

Make sure you also read the instructions in the OP of this thread, the instructions of how to flash seccfg in the locked bootloader should give you all the information you need that I glossed over.

After you flash all 3 partitions, I personally found that if the phone didn't boot, I just had to flash the stock vbmeta again, even though I'd already flashed it. No idea why.

Afterwards you should have a phone that boots to welcome screen. From there you can do whatever you want.
 
Last edited:
  • Love
Reactions: kkdamion

kkdamion

Senior Member
Jul 31, 2011
101
16
Thank you very much. really nice mate, yesterday is was trying to run a virtual linux system under windows with virtual box.but that didnt worked out like i hoped. but these steps you telling me are golden, its going to save me(and others) some time. als good idea to put the files on a separate usb.
 

kkdamion

Senior Member
Jul 31, 2011
101
16
i got a bootanimation now but its not booting fully and not looping.
flashed mtk boot, recovery, vbmeta and seccfg but still locked state,
and can i use the mtkclient to flash stock A.07 again. because fastboot is still giving locked state
 

Zombnombs

Member
Nov 17, 2021
47
12
OnePlus Nord 2 5G
i got a bootanimation now but its not booting fully and not looping.
flashed mtk boot, recovery, vbmeta and seccfg but still locked state,
and can i use the mtkclient to flash stock A.07 again. because fastboot is still giving locked state
Ah, the boot.img is definitely unique to each version. The ones provided in this OP of this thread are for phone version .A12

Not sure if the recovery or vbmeta is unique to different version, but the boot.img most definitely is. There are stock roms provided by xda community members for each version of the OS, such as here


Grab that stock boot image for A7 and flash that, then try flashing your same vbmeta again afterwards. If you're still bootlooping then you most likely need to find a recovery and/or vbmeta image for A07 as well.

If you read my post above, I also ran into a state where only the oneplus symbol was appearing, but it never progressed into teh 2 white dots rotating around hte red dot animation. Thats what i referred to as my "short bootloop". This animation was fixed by flashing vbmeta again. So that's most likely a symptom, based onmy experience, that you have the wrong vbmeta flashed. If you flashed the vbmeta from the mega link in my reply above (thats the one that worked for me on A12), then it most likely means you need a vbmeta image for A07.

Edit:
The locked state doesn't matter when you have mtkclient; Locked bootloader means the phone won't let you flash partitions normally, but the mtkclient uses a method to bypass that. The idea here is to flash partitions to get the phone to boot normally, and once you can boot the phone up normally, you can unlock the bootloader again by going to the settings app of the functional phone, clicking the version number 7 times > Developer options > allow oem unlocking and enable USB debugging. From there you can repeat steps to root the phone again like you would with a stock phone that you just unboxed.

i also had some sort of a victory :).
my device was also stuck (Post#13)
only flashing seccfg.img with the pendrive didnt work, still stuck, and still locked bootloader
i had to flash the correct versions of boot.img, recovery.img and vbmeta.img via mtktools (in my case A.07)
now i can start the phone, it's on the welcome screen
and it seems to have locked bootloader right now.

i have to see later, what i'm doing now :)

@All: thanks for your help!
@martinwildi also had the same issues in their post as well, and seems to have recovered so we know this method works for A07 too, but as martinwildi mentioned, you need the right versions of the image files.
 
Last edited:
  • Like
Reactions: kkdamion

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    Updated to A.20, and rewritten the thread to use Mtkclient GUI for windows instead of the Live ISO.
    1
    Thanks for all the help, I followed all the instructions here and now I got back my phone with stock firm and flashing locked but now I cant set a lock screen password it just doesnt work. In some desesperate tries to recover the phone I've deleted locksettings.db I dont know if this can be the prob. Can anybody could share persist.img to reflash that partition on my phone? thanks
    The persist partition is unique to your phone only, you cannot flash one from another phone.
    If you didn't make a backup of it, only way is to send it back for warranty.

    I have a problem, I have returned to the EU rom and perfect, when doing the flash lock, now it tells me that it can not boot.
    The problem I have is that to enter fastboot I can only do it from adb (with the phone booted) with the buttons I am not able to enter fastboot (I can only go to recovery).
    What can I do?
    For locking the bootloader you need to have everything stock, vbmeta included, or it will not boot telling you the boot partition is corrupted.

    You should still be able to enter fastboot mode by disconnecting the usb cable (if connected) and hold Power + Vol- at boot.
    If it's not working, try the related guides with Mtkclient.
    1
    Thanks a lot for your awesome Work .

    Had one that didnt want to Update via OTA at all and Google Play Store was crashing permanently.

    After FULL STOCK via MTK all is perfect.

    Thank You really.
  • 11
    /*
    * Your warranty is... still valid!
    * 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 yourself before asking or use anything on this thread.
    * I do not offer private assistance via Telegram or any other social outside XDA.
    */

    OxygenOS 11.3 EU Full Stock Firmwares for the OnePlus Nord 2 DN2103
    A.20

    Specifics:

    • This rom will not overwrite your userdata or metadata partition.
    • This rom will not overwrite your IMEI, sensors calibration data, or bootloader unlock status.
      Since these partitions are not included: seccfg, nvcfg, nvdata, nvram, persist, proinfo, protect1, protect2.
    • These partitions are not included since are present in the super partition: my_*, odm, product, system, vendor.
    • The vbmeta partition is not stock.
    • The vbmeta partition is stock. A vbmeta_patched partition for root users can be found attached to this thread.

    Requirements:


    Instructions:

    1. Download and, install Python, extract Mtkclient, and install UsbDk.
    2. Open a terminal (cmd) inside the extracted Mtkclient folder, and type the command pip3 install -r requirements.txt
    3. After the installation has completed, type the command python mtk_gui to start Mtkclient GUI.
    4. Reboot your phone in BROM mode:
      1. Turn off your phone, and connect the usb cable only to the pc.
      2. After it turns off, connect the usb cable to the phone and immediately press and hold all 3 buttons (Vol+, Vol-, and Power).
      3. The screen of the phone should remain completely black and Mtkclient should find your phone and connect to it. Release all the buttons immediately, as soon as the phone is found.
    5. If the phone won't connect properly, check that's being correctly detected in device manager:
      1. Open Device manager.
      2. While the phone is connected in BROM mode to the pc, search for "MediaTek USB Port" under "Ports (COM and LPT)". If it's not being detected properly, a yellow warning triangle should be visible.
      3. To fix this, right click on it -> Choose "Update driver" -> "Browse my computer for driver software" -> "Let me pick from a list of available drivers on my computer" -> Choose "USB serial device".
      4. Sometimes it likes to revert itself back to "MediaTek USB Port", so leave Device manager open and set it back again as "USB serial device" if it happens.
      5. If Mtkclient freezes, or the phone keeps rebooting itself out of BROM mode, try to reboot the phone into BROM mode again without disconnecting it from the pc, and without closing Mtkclient. (Try to be fast in device manager, before it reboots)
    6. You can now use Mtkclient GUI. (see the guides below)
    7. After you're done flashing, you can exit BROM mode by press and hold Vol+ and Power.
    1. Download and install the Re LiveDVD iso of mtkclient and flash it on a pendrive with Rufus.
    2. Create two new folders named "img" and "img_bak" in the pendrive you just flashed with Rufus, and paste inside /img all the files and images you will need.
    3. Start the mtkclient live usb. The login credentials are "user" for both name and password.
    4. Note! the keyboard is set to german by default in the liveusb. To change it, as soon as you boot up in the desktop, click on the "DE" blue text up on the right.
    5. Copy the whole /img and /img_bak directories into the /opt/mtkclient directory.
    6. Disconnect the phone from the pc, and start the MTK script on the desktop of the live usb.
    7. Write the desired command (see below) and press Enter.
    8. As soon as you press Enter, the script will start searching for an attached phone in BROM mode.
      To reboot your phone in BROM mode:
      1. Turn off your phone, and connect the usb cable only to the pc.
      2. As soon as it turns off, press and hold all 3 buttons (Vol+, Vol-, and Power) and immediately connect the usb cable to the phone side.
      3. The screen of the phone should remain completely black and the script should find your phone and continue with the command. Release all the buttons immediately, as soon as the phone is found.
      4. It is necessary to disconnect the phone, close and reopen the MTK script on the desktop, and reconnect the phone in BROM mode, every time you want to run another command.
    9. To backup any partitions on your phone, use the command python mtk r partition_name_1,partition_name_2,partition_name_3,... img_bak/partition_name_1.img,img_bak/partition_name_2.img,img_bak/partition_name_3.img,.... Example: python mtk r boot,vbmeta,super img_bak/boot.img,img_bak/vbmeta.img,img_bak/super.img. You'll find all your backups inside the /opt/mtkclient/img_bak folder (copy them back to your pendrive to not loose them).
    10. To write all the partitions present in the /img directory to your phone, use the command python mtk wl img. Be sure that the file names have the same name of the partition they're meant to write! Example: The file named "boot.img" <---> Will write the "boot" partition.
    11. Use the command python mtk r preloader img_bak/preloaderdump_backup.bin --parttype=lu1 to backup your preloader partition. You'll find your backup inside the /opt/mtkclient/img_bak folder (copy it back to your pendrive to not loose it).
    12. Use the command python mtk w preloader img/preloaderdump_stock.bin --parttype=lu1 to flash the preloader partition.



    1. If your phone is still not completely fcked up, and even if it is, do a full backup with PartitionsBackupper first + a TWRP backup + Internal storage backup. (better safe than RMA it)
    2. Download the stock firmware .zip, and the latest version of PartitionsBackupper.
    3. Extract both of them in the same directory where adb.exe & fastboot.exe are located (usually the "platform-tools" folder).
    4. Run PartitionsBackupper, choosing the restore option, to flash all partitions with fastboot.
    5. Reboot into the stock recovery and do a full data format before going back messing around. It usually wipes better than TWRP.

    1. Follow this guide only if the command fastboot flashing unlock does not work.
    2. Download and extract the attached seccfg.img unlocked partition.
    3. Download and extract the boot.img, recovery.img, and vbmeta.img from the stock firmware .zip file.
    4. Put all 4 images in a new empty folder, and do not rename the files.
    5. Open Mtkclient (see the guide above).
    6. In the first tab "Read partition(s)": Select the seccfg, boot, recovery, and vbmeta partitions. Click "Read" to backup them up. Save them in a different folder from the one created before.
    7. Now in the second tab "Write partition(s)": Choose "Select from directory" and choose the new folder created before. It should automatically place all 4 images in the correct corresponding partitions. Click "Write" to flash them.
    8. If you're stuck in a bootloop after this, some users have reported that flashing vbmeta a second time fixed it.
    9. You should now have an unlocked bootloader

    This procedure has been successfully tested by an external user.
    1. This guide is useful if your device is not getting recognized via fastboot.
    2. Download and extract the attached preloaderdump_stock.bin image.
    3. Download and extract the boot, recovery, vbmeta, and super images from stock firmware .zip file.
    4. Put the 4 images extracted from the stock firmware, in a new empty folder, and do not rename the files. Do not put the preloader image in this folder.
    5. Open Mtkclient (see the guide above).
    6. In the first tab "Read partition(s)": Select the boot, recovery, vbmeta and super partitions. Click "Read" to backup them up. Save them in a different folder from the one created before.
    7. In the fourth tab "Flash Tools": Choose "Read preloader" to backup it up. Save it in a different folder from the one created before.
    8. Still in the fourth tab "Flash Tools": Choose "Write preloader" and flash the downloaded preloaderdump_stock.bin image.
    9. Last, in the second tab "Write partition(s)": Choose "Select from directory" and choose the new folder created before. It should automatically place all 4 images in the correct corresponding partitions. Click "Write" to flash them.
    10. If you're stuck in a bootloop after this, some users have reported that flashing vbmeta a second time fixed it.
    11. You should now have a working fastboot connnection

    This procedure has been successfully tested by an external user.
    1. This guide is useful as a last resort. If you are not able to restore the stock rom in any other way.
    2. Download the stock firmware and extract the folder inside the .zip file.
    3. Open Mtkclient (see the guide above).
    4. In the first tab "Read partition(s)": Choose "Select all partitions" and click "Read" to backup them up. Save them in a different folder from the one with the stock firmware.
    5. Now in the second tab "Write partition(s)": Choose "Select from directory" and choose the folder with the stock firmware. It should automatically place all the images in the correct corresponding partitions. Click "Write" to flash them.
    6. If you're stuck in a bootloop after this, try flashing the preloader and seccfg partitions following the guides above, and then repeat this procedure a second time.
    7. Your device should hopefully boot now

    Yeah.. Looks like OxygenOS doesn't really like to be rooted. Your phone will occasionally go into a bootloop without any notice or known reason (so far).​
    The cause of this behavior is still unknown to me, if you are able to find any explanation or better solution please post it here!
    The only solution I know so far, is to just format your phone back to stock, and then restore your userdata partition:​
    1. Make a backup of your Internal storage, recovery, boot, vbmeta, and userdata partitions. Both with PartitionBackupper or Mtkclient, what's more handy for you.
    2. Flash the stock firmware on the phone.
    3. Format data with the stock recovery.
    4. Restore your previously backupped partitions and storage.
    5. When booting to system for the first time, it's possible your interface / GUI will be malfunctioning. Just reboot one more time to fix this.
    6. Finally, go into the setting and reset your password / sequence / PIN.

    Thanks to Zombnombs, TheWing, SeBright, Giovix92 for the help!




    DOWNLOAD
    AndroidFileHost
    3
    i also had some sort of a victory :).
    my device was also stuck (Post#13)
    only flashing seccfg.img with the pendrive didnt work, still stuck, and still locked bootloader
    i had to flash the correct versions of boot.img, recovery.img and vbmeta.img via mtktools (in my case A.07)
    now i can start the phone, it's on the welcome screen
    and it seems to have locked bootloader right now.

    i have to see later, what i'm doing now :)

    @All: thanks for your help!
    3
    I've reuploaded the file, please try again
    3
    Are you using windows ? check it in device-manager when you are in "userspace-fastboot" it should report as adb-bootlaoder-interface. If not click on use driver - > adb bootlaoder interface

    Thank you! You beautiful person Kingslayer! It's unbricked!

    Sometimes you overlook the obvious when you're dealing with issues, and for me it was as you said - not installing the device as 'adb bootloader interface' from device manager while in the userspace fastboot. I also started PartitionBakckupper from TWRP as you said so that may have helped as well. But also, as a note for anyone who may face this issue - after it all completed, I received the same red boot error message as earlier, but by booting into fastboot from that screen and reflashing the vbmeta.img from the latest a.16 stock in the OP, it allowed it to boot fine. Is that what you meant at the end there?

    Fingerprint scanner and camera are working fine as well, so the persist is actually still intact too.

    Bloody hell, what a relief. Thank you again man, you saved me the stress of an RMA request I was prepared to make in the morning. And thanks as well Raygen for the tool, once you understand how to actually work it, it does the trick.
    3
    Hey there! Nord 2 5G user and, mostly, developer.
    @Raygen I guess you can add another 'usecase' to the overall guide: managed to hard brick the device. Basically wasn't booting in any mode: fastboot, recovery or whatever; achieved this by flashing boot.img into recovery partition (don't ask me why lol).

    By the way, used your "Locked bootloader" guide with a little modification:
    - I've also added lk & lk2 from my backup, because those apparently are 'damaged' by the previous command (don't ask me how cause I don't have any clue about it).
    - Instead of using
    Bash:
    python mtk wl img
    as you described, I just used a one-liner command based on mtkclient's README:
    Bash:
    python mtk w lk,lk2,boot,recovery,vbmeta lk.img,lk2.img,boot.img,recovery.img,vbmeta.img
    The syntax is the following one:
    Code:
    python mtk w name_1,name_2 name_1.img,name_2.img
    The one-liner command basically flashes everything in one shot, and afterwards, when you disconnect the usb cable and power it on, it *should* boot up. If it doesn't, flash preloader like you did, re-trigger BROM mode and redo that one-liner command.
    Hard bricked intentionally another time to test this out and, at least, have some proofs. :)
    I could attach mines lk & lk2, if needed.

    Hope y'all like it! Cheers!