Oneplus Nord N100 MetroPCS (BE2015) Install Success
-
I finally got my cursed purchase of a cheap OnePlus N100 from Amazon to boot Ubuntu Touch, and I wanted to share the process I needed to go through to get it to work so that others might have faster success where it took me ages.
I bought this phone from Amazon thinking N100 is well supported by Ubuntu Touch so it was a safe bet. Little did I know, the Metro version is a cursed bastard of a phone and by "Unlocked" they mean carrier unlocked so you can activate on other carriers, but the bootloaders on these damn things are locked and unlocking them is cursed. The boot loader was still locked and the "OEM Unlock" option was greyed out. It had MetroPCS unlocking software on it, but that unlocking software just threw an error when I tried to run it and would not function. I tried updating the OS a few times.. nothing. I tried downgrading and nothing. I tried my real phone's sim card to get it mobile data access, but nothing. I tried getting support from the Metro people a few times but they were ultimately useless. By the time I had given up on them, my return window was closed so I was on my own.
Phase 1: Unlocking the Bootloader (Possibly optional):
I tried the oneplus/t-mobile unlock site
https://www.oneplus.com/us/unlock_token but it responded with
"IMEI number has been applied, please check your application records."
which apparently means that someone else generated an unlock code already but since it wasn't me I didn't have it and couldn't get it. I ended up engaging OnePlus support through their "Send us an Email" form on their web site and they came through for me.https://oneplus.custhelp.com/app/ask?&country=us
I had to give them the serial number, imei number and pcba number, and I included the output of "fastboot oem get_unlock_data". Within a few hours I had an unlock code. Lets go OnePlus! Nice job!
Through this whole ordeal, I had been reflashing to OnePlus_Nord_N100_Metro-by-T-Mobile_OxygenOS_10.5.8 using EDL mode to see if I could OEM Unlock from a fresh state, but it wouldn't work. I tried updating to the latest OS and it still wouldn't work. Once I got the unlock code in email and unlocked using "fastboot flash unlock <filename.bin>" I booted up and finally got the OEM Unlocking option to be not greyed out and rebooted into fastboot mode and disabled the bootloader lock "fastboot oem unlock" which factory reset, booted up went through the startup questions again, enabled adb and started the UBports Installer and SUCCESS! Except no.
After this, I could get to the UBports fastboot/recovery program, but the machine would not boot. It simply stayed at the "this device is unlocked and can't be trusted" google message and never went past that. As it turns out, I may have been moments from having a working install at this point but I didn't know what to do so there were many many more hours of work ahead of me. I assumed that my problem was that I was running Metro firmware with OxygenOS 10.5.8, not one of the two supported firmwares (Global 10.5.3 or EU 10.5.2) Onward to phase 2.
Crossflashing to other firmwares:
For those who don't know, if you hold down both volume buttons at boot and go into EDM mode for 10 seconds where you can run the MSMDownloadTool and push a very complete set of ROM data to the phone. You can find various versions of this to unbrick OnePlus phones this way but the N100 has (at least) 3 versions of the phone which won't install each other's firmware. Each phone has a project code associated with it and the MDM tool will only flash firmware that matches that project code. The MetroPCS phone's code is 20880. The uk model is 20883. The Global model is 20881. The interesting thing is there is python software (oppo_decrypt) out there that lets you extract the firmware bundle in the .ops file, change the settings.xml and generate a new .ops file with the same firmware but with different project codes. You can get MSMDownloadTool to upload a different model's firmware to a BE2015 Metro N100 by extracting that phone's .ops file and then changing these settings in the settings.xml to match this phone:
Project="20880"
Version="bengal_14_O.04_201221"
ModelVerifyPrjName="6ccf5913"
ModelVerifyRandom="0S5ul8diroerEa2h"
ModelVerifyHashToken="61D90BD1E63098DEF7424C5FF14EBF097AE1802709F585F05670B2B7B02B31E7"I'm not sure if all of them need to be changed, but those are the only changes I made and the new .ops file worked. I changed the settings.xml, ran "python3 oppo_decrypt\opscrypto.py encrypt <directory>" and it generated a new .ops file based on the contents of the extract folder and poof! I had a MSM download tool that would crossflash my stupid cursed Metro N100 to be a normal N100. Unfortunately, this didn't solve my problem at all. Interestingly though, this may have let me unlock the firmware without talking to OnePlus support, since the non-metro firmwares don't have the same OEM unlocking restriction. I'm unfamiliar with all the details of how that bootloader unlocking works though so I don't know, I may have still needed to get a .bin file from OnePlus. This may have been a complete waste of time, but I'm putting it here since I find it interesting that it was even possible and it was part of my process for getting to the end.
As I said though, it didn't work. I ran through the same process of enabling oem unlocking, unlocking the bootloader which kicked off a factory reset, enabling adb again, and running through the UBports installer, getting SUCCESS, but no I was stuck at the same place where it would boot and hang. I could get into the UBPorts fastboot/recovery tool and I could enable adb, open an adb shell and mount the /system partition and I messed around on the command line and found out the data partition was completely empty. This is where the real OS is supposed to live but nothing was there. After some AFK time thinking I realized that it might just be something dumb like a partition size mismatch and I re-ran the UBPorts installer with the phone in the UBPorts fastboot mode and unselected the option to redo partitioning. IT WORKED! I get the cool UBPorts robot telling me it's installing updates and my new Ubuntu Touch device was soon up and running.
Now.. I suspect I could have done that about 2 days of work earlier when I first got the UBports recovery installed, but I can't go back in time to know. I'm documenting all of this just in case it helps someone else on their journey though this messed up process of cracking these things open and making them do what we want.
-
@dugen What an ordeal! Glad you're finally up and running.
Thanks a lot for showing your work! -
@dugen can u talk to me private im having some issue to my device
1: baseband unknow
if i flash metro official stock rom then got carushdump sw error
and when im dlash one xda ops mod rom this ok write to work but wifi not work.
any solution plz.
nd how i unlock bootloader if my bootloader cant got imei ant all details to got unlock code -
@dugen I'm a little confused with one part of your post. Just to be clear, it won't install Ubutnu Touch with OxygenOS 10.5.8? It looks like I have the exact same phone. I know you talk about the MSMDownloadTool and the phone's code being 20880, but did you get it downgraded to Global 10.5.3 or EU 10.5.2 before it would install? That's the part I'm unclear on.
It's also confusing that it gives the required versions and gives a link to an unbrick tool that ultimately gets you back to OOS 10.5.8.
Just like you, I picked the Nord N100 because it said it was well supported. I feel a little let down that there wasn't some note about the MetroPCS phones NOT BEING WELL SUPPORTED.
Thanks
-
@coderyder Re: your all-caps, the README file for this port does specify that this port works on the EU and Global variants of this phone, and lists carrier-specific variants from the USA as unsupported. Perhaps this could be listed more prominently, on the Devices webpage. But to me it's unclear which American devices work or don't, and how it differs. This was the first I'd heard that the MSM tool wouldn't install firmware from other variants.
AFAIK the USA is the only place with carrier-specific N100 models. Given it's a community project, maybe more users from the USA could sort this out and provide feedback as to how it should be communicated. I don't think we can expect an unpaid porter to get ahold of all the American variants of a phone to test them all.
Hope you're able to get it working!
-
Well that was a special level of hell... But, just as OP stated, using opodecrypt worked. For those with a Metro N100, you can just use this to flash to the global firmware. It is already patched:
https://mega.nz/file/8fhxkQoR#Yt1ZFJMXsY-wuQIhQ7ar8M_E6PN6wB9NixdPYtWzCQA
If you are using a T-mobile N100, you will still need to follow the guide here if it is still locked (T-mobile unlocked devices if requested at the time): The AT&T N100 (very hard to find) came unlocked and is the global model.
https://xdaforums.com/t/flash-global-rom-to-tmobile-metro-w-locked-bootloader.4387517/
You do not need to contact OnePlus for an unlock pin. Converting to the global firmware will allow you to unlock the device. You do have to use the patched msmDownloadtool to do it, or patch it yourself as described above
Once you have it flashed to global, unlock the bootloader, then on reboot enable developer options and use the UT installer. I set the options to repartition as OP did, and it failed. Retried without the partitions option and it worked - with the caveat that I had to run the installer multiple times because the connection to the server kept dropping. That might not happen to you. Also, the UT installer will error out with a message about setting slot A or B, and an error about the filesystem - hit ignore both times and it will still flash the device. Once again, it may take multiple tries to achieve success. But, when it boots, everything works, except VoLTE which I am troubleshooting.
Also, it does not work with a Verizon sim out of the box, but does with T-mobile.
-
I followed the instructions on my metro model BE2015, and it seems to have installed. Now it shows I am on OOS 10.5.5 but how do I now unlock the bootloader?
I follow the instructions from UB Port installer and after trying
"fastboot oem unlock" is just says "< waiting for any device >" and nothing else happens.
The device was connected ok, as it showed the serial number when using "adb devices" command.Is there something I'm missing?
-
@Joko Is the device in fastboot mode, i.e at the bootloader with a bootloader menu or a splash screen that says fastboot mode?
adb devices and the device shows up means it is at the recovery menu.
fastboot devices and it shows a serial means it is at the bootloader.
Ensure you have adb and fastboot installed correctly (Linux) or are using Android platform tools (Windows) with a command prompt opened in that folder.
-
@MrT10001
Ok, I'd previously tried it from Windows 11 and it didn't work for me, but I just tried it from Linux after installing all the ADB Platform tools, and it seems to register.First,
adb reboot bootloader
Which shows it's in fastboot mode on the phone.Then,
fastboot oem unlock
but it gives me:
FAILED (remote: 'Flashing Unlock is not allowed')
fastboot: error: Command failedSo now what do I try?
-
@Joko Boot back into Android and make sure Developer Options is enabled and the bootloader unlock button is enabled.
-
@MrT10001
I enabled Developer Options, however the OEM unlocking option is greyed out.Does this mean I have to go through the ordeal of getting the unlock key from OnePlus?!
-
Ok, so I read around the net and figured it out.
The OEM unlock is greyed out until you add a Google account on the phone. I was concerned about having read from someone else that the auto-updates implemented automatically, but once you activate the developer settings, you can find turn of "Automatic System Updates" then safely connect it to wifi, add a google account and then the OEM unlock becomes clickable. Yay!!!Then I went on to the UBports installer, unchecked the partitioning box, selecting Channel 20.04/stable.
The files downloaded, moved to my device, Some errors showed up on the phone screen when it finished, which I expected, UBports installer told me it was a Success. Then I selected Reboot on the phones options and it seems to have just frozen. I guess it's bricked, cuz it won't even turn off with holding down the power key.
Anyhow, I'll have to see if I can unbrick it, and try again.
-
Ok, Excellent news! I successfully flashed Ubuntu Touch (without any errors) on the Nord N100 Metro MODEL BE2015!
I'm gonna give detailed instructions here on how I did it. You can ask AI or do a Google search to get the finer details of each instruction if needed.
Step (1)
Download the ADB Platform Tools for Windows (This allows Android control from Windows terminal via usb cable), as well as the Qualcomm_HS-USB_QDLoader_9008_Driver for windows (This allows Windows to recognize your Nord N100 when plugged in), install them both.Step (2)
Download the bengalm_14_O.04_201221 mod (This zip contains the MSM Download tool for flashing the .ops Oxygen OS 10.5.5 rom also included, which has been specially patched to work with the Metro MODEL BE2015)Step (3)
Activate Developer Options from your phone by going to Settings -> About Phone, and tap on Build number 7 times.
This makes the Developer Options show up in your system settings.
Find USB Debugging and activate it. Also find and activate OEM Unlock.Step (4)
Start up the MSM Download tool; When Windows Defender try's to stop you, hit 'more info' and continue anyway, choosing user type 'other'.
Now that it's waiting for device, go to the directory where you unzipped the Platform Tools, right click in empty space next to the files and select open in Terminal (In older versions of windows I believe it is Powershell Terminal). Use commands:./adb devices
Shows connected device serial number. (make sure you allow the computer from your phone screen to connect)./reboot bootloader
reboots your Nord N100 into fastboot mode so the MSM Download tool connects. Make sure your Qualcomm drivers are installed for this to work.
As the device shows up in MSM Download tool, hit the Start button, and the rom starts flashing the device.... til it's finished and now OOS 10.5.5 should be on your device.Step (5)
As your new OOS boots up, go through the new device startup, but don't connect it to internet or it'll try to update itself to a newer version, which we DON'T want.
Go to Settings -> About Phone -> tap Build number 7 times to activate Developer Options.
Go to Developer Options -> activate USB Debugging
Also in Developer Options -> Disable Automatic Updates
Now you can connect to Wifi, then go to Settings -> Accounts
Add a Google account to the device.
Now back to Developer Options -> enable OEM Unlocking (This is greyed out if you don't add the Google account)Step (6)
Go to the Platform Tools terminal again with device connected via USB
./reboot bootloader
puts it in fastboot mode
./fastboot oem unlock
brings up a menu on the phone. use volume down key to select unlock bootloader and press the power button to confirm.
Now your user data is erased, and we have to run a loop again, but the bootloader is now unlocked.Step (7)
Phone restart, and going through the new device startup.
Don't connect to the internet yet, or it'll try to update.
Go to Settings -> About Phone -> tap Build number 7 times to activate Developer Options.
Go to Developer Options -> activate USB Debugging
Also in Developer Options -> Disable Automatic Updates
Now you can connect to Wifi, then go to Settings -> Accounts
Add a Google account to the device.
Now back to Developer Options -> enable OEM Unlocking (This is greyed out ALREADY, says OEM is already unlocked), So connecting internet and adding a Google account may be unnecessary here, but that's what I did.Step (8)
Download UBports Installer (0.11.2), I actually did this on my Linux Mint OS, and downloaded the ADB Platform Tools for Linux as well. Not sure if this will make a difference, Tho I'm much more comfortable on Linux. You can try it on Windows tho and may be fine.
Connect your device via USB and use Platform Tools command
./adb devices
boots into fastboot bootloader, which should now show that the bootloader is unlocked.
Run UBports Installer. It should auto-detect your device, saying Billie2 even tho it's Bengal now. Select to install Ubuntu Touch.
It asks you to make sure you have either the OOS 10.5.2 or 10.5.3, but we've now got the 10.5.5 which worked for me, and so I ignored that, and went ahead affirming My device is unlocked.
....next....
I chose Channel 24.04/stable
check all three boxes "Wipe Userdata", "Partitioning", "Bootstrap".
Then hit "OK"
and....
Bing Bam Boom!!! It starts the process of installing showing the status bar and the fancy UBports robot. Just sit back and relax. When it finishes, your phone should automatically boot into your fresh newly installed Ubuntu Touch!!Step (9)
Test out the new operating system.
I found that I couldn't connect to wifi. Thought it mighta been a glitch, but after playing around then powering it off and rebooting, I was able to connect the wifi. So far so good.Good Luck my Ubuntu Mobile Linux friends!
-
@Joko Glad you got it figured out. Installer ran smoothly with no errors, and all hardware working on 10.5.5? Have you tried to activate VoLTE?, and how did that go?
-
@rocket2nfinity
After testing over the past couple days, it seems the sound doesn't work for whatever reason. Also, just today I rebooted the device and now it won't connect to wifi. I enter wifi settings and has the options of "Connect to hidden network" or "Previous networks", but no hotspots come up. I remember this happened when I first installed, but then I rebooted and was able to connect wifi, so I'm not sure why it isn't working now. I rebooted again and same thing. Tried to put in the hotspot details via "Connect to hidden network" but that's not working either.When the wifi was working however, I was able to get Waydroid installed, and installed F-droid app store and some other android apps. All the apps seemed to work, aside from the sound not working. Camera worked tho.
I installed this Ubuntu Touch to be a privacy device, and thus have no intention of ever putting a sim card in it. So I haven't and won't be testing that.