Question Question Regarding Dual-Sim

Search This thread

hypn0ticki11er

New member
May 16, 2015
4
0
Hi everyone,

I purchased a OnePlus 9 Pro directly from the OnePlus website itself while in the US. I was very disappointed to discover that they removed dual-sim support from the NA variant of the device. I travel between two countries for work, and having dual-sim support would be incredibly useful.

I did cheer up, however, when I read some posts saying that the physical pins weren't removed from the device, and that it's likely a software block.

Various people are saying different things, though, so I was hoping to get some clarification.
Is it at all likely that the US variant can get dual-sim support, whether by changing some device props or flashing a different variant's (or custom) ROM?

Thanks in advance for taking the time to answer.
 

craznazn

Senior Member
Nov 12, 2009
463
202
OnePlus 8T
OnePlus 9 Pro
I am trying to determine if there is actually a hardware fuse somewhere that is set for Dual SIM, or if it's purely software, so I need some help from you all. If you are close to the Phoenix, AZ area in the USA, or know anyone who is nearby, and have a Chinese or EU version of the OP9Pro, I would like to borrow the device for a few hours.

If it turns out that nobody lives in the desert, then I would like the help of someone with a Dual SIM enabled device to make a ufs dump via edl and allow me to have a copy of it, roughly 6.5GB. Linux and knowledge of bash required. PM me if available.
 

drozd128

Member
Apr 14, 2021
10
4
I am trying to determine if there is actually a hardware fuse somewhere that is set for Dual SIM, or if it's purely software, so I need some help from you all. If you are close to the Phoenix, AZ area in the USA, or know anyone who is nearby, and have a Chinese or EU version of the OP9Pro, I would like to borrow the device for a few hours.

If it turns out that nobody lives in the desert, then I would like the help of someone with a Dual SIM enabled device to make a ufs dump via edl and allow me to have a copy of it, roughly 6.5GB. Linux and knowledge of bash required. PM me if available.
Not sure what exactly you want to check on SW side, but can't you "just" compare the full OTA zips of different versions?
 

hypn0ticki11er

New member
May 16, 2015
4
0
I am trying to determine if there is actually a hardware fuse somewhere that is set for Dual SIM, or if it's purely software, so I need some help from you all. If you are close to the Phoenix, AZ area in the USA, or know anyone who is nearby, and have a Chinese or EU version of the OP9Pro, I would like to borrow the device for a few hours.

If it turns out that nobody lives in the desert, then I would like the help of someone with a Dual SIM enabled device to make a ufs dump via edl and allow me to have a copy of it, roughly 6.5GB. Linux and knowledge of bash required. PM me if available.
Unfortunately, I'm nowhere near Arizona and only own the US variant, or I'd be more than happy to help.
I do encourage owners of those variants to volunteer a bit of their time to help with this.
 

craznazn

Senior Member
Nov 12, 2009
463
202
OnePlus 8T
OnePlus 9 Pro
Nobody knows, I'm sure I'm not the only one
Not sure what exactly you want to check on SW side, but can't you "just" compare the full OTA zips of different versions?
Nope, you can just flash the EU OTA to US and it obviously won't work. I need more than just the extracted MSM too, I actually need to compare other partitions baked into each device.
 

drozd128

Member
Apr 14, 2021
10
4
Nobody knows, I'm sure I'm not the only one
Nope, you can just flash the EU OTA to US and it obviously won't work. I need more than just the extracted MSM too, I actually need to compare other partitions baked into each device.
I see your idea of dumping the phone to PC, but I don't think you need the dump of the EU phone. You should be able to compare either full OTAs, or your dump with full EU OTA (as far as I remember, there should be everything, boot, kernel, ... but I can be wrong on this, that was my experience with TCL phone 2-3y ago).
Also quick google search brought me this: https://forum.xda-developers.com/t/how-i-achieved-dual-sim-operation-on-rp2.3923159/ I guess, it is worth reading.
EDIT: I'm talking about unpacking and comparing, not flashing.
 

craznazn

Senior Member
Nov 12, 2009
463
202
OnePlus 8T
OnePlus 9 Pro
I see your idea of dumping the phone to PC, but I don't think you need the dump of the EU phone. You should be able to compare either full OTAs, or your dump with full EU OTA (as far as I remember, there should be everything, boot, kernel, ... but I can be wrong on this, that was my experience with TCL phone 2-3y ago).
Also quick google search brought me this: https://forum.xda-developers.com/t/how-i-achieved-dual-sim-operation-on-rp2.3923159/ I guess, it is worth reading.
EDIT: I'm talking about unpacking and comparing, not flashing.
You are operating under the assumption that the OTA has the SW to enable dual sim. If that was the case, flashing a EU rom on US would finish the job already.

To give you an idea of the difference, this is the directory list of the extracted OTA:
Code:
abl.img
aop.img
bluetooth.img
boot.img
cpucp.img
devcfg.img
dsp.img
dtbo.img
featenabler.img
hyp.img
imagefv.img
keymaster.img
modem.img
multiimgoem.img
odm.img
oplus_sec.img
oplusstanvbk.img
product.img
qupfw.img
qweslicstore.img
shrm.img
splash.img
system_ext.img
system.img
tz.img
uefisecapp.img
vbmeta.img
vbmeta_system.img
vbmeta_vendor.img
vendor_boot.img
vendor.img
vm-bootsys.img
xbl_config.img
xbl.img

Now, this is the directory list of an extracted MSM, ignoring folder structure:
Code:
carrier.img
frp.bin
gpt_backup0.bin
gpt_main0.bin
metadata.img
misc.bin
oem_stanvbk.bin
opluslog.img
param.bin
patch0.xml
persist.img
rawprogram0.xml
super.img
userdata.img
vbmeta_system.img
vbmeta_vendor.img
gpt_backup1.bin
gpt_main1.bin
patch1.xml
rawprogram1.xml
xbl_config.elf
xbl.elf
gpt_backup2.bin
gpt_main2.bin
patch2.xml
rawprogram2.xml
engineering_cdt.img
gpt_backup3.bin
gpt_main3.bin
ocdt.bin
patch3.xml
rawprogram3.xml
abl.elf
abl_log.bin
android_log.bin
aop.mbn
apdp.mbn
boot.img
BTFM.bin
cpucp.elf
devcfg.mbn
devinfo.bin
DRIVER.ISO
dspso.bin
dtbo.img
featenabler.mbn
gpt_backup4.bin
gpt_main4.bin
hyp_log.bin
hypvm.mbn
imagefv.elf
kernel_log16M.bin
km41.mbn
logfs_ufs_8mb.bin
mdcompress.mbn
multi_image.mbn
NON-HLOS.bin
oplusreserve2.img
oplus_sec.mbn
patch4.xml
qsee_log.bin
qupv3fw.elf
qweslicstore.bin
rawprogram4.xml
rtice.mbn
sec.elf
shrm.elf
splash.img
spunvm.bin
storsec.mbn
tz.mbn
uefi_sec.mbn
vbmeta.img
vendor_boot.img
vm-bootsys.img
emmc_fw.bin
gpt_backup5.bin
gpt_main5.bin
patch5.xml
rawprogram5.xml

Finally, an extracted phone with all the partitions dumped, again ignoring folder structure:
Code:
carrier.bin
frp.bin
gpt_backup0.bin
gpt_main0.bin
keystore.bin
metadata.bin
misc.bin
oplusdycnvbk.bin
opluslog.bin
oplusstanvbk_a.bin
oplusstanvbk_b.bin
param.bin
persist.bin
persist_bkp.bin
rawdump.bin
rawprogram0.xml
ssd.bin
super.bin
vbmeta_system_a.bin
vbmeta_system_b.bin
vbmeta_vendor_a.bin
vbmeta_vendor_b.bin
gpt_backup1.bin
gpt_main1.bin
rawprogram1.xml
xbl_a.bin
xbl_config_a.bin
gpt_backup2.bin
gpt_main2.bin
rawprogram2.xml
xbl_b.bin
xbl_config_b.bin
ALIGN_TO_128K_1.bin
cdt.bin
ddr.bin
dinfo.bin
engineering_cdt_a.bin
engineering_cdt_b.bin
gpt_backup3.bin
gpt_main3.bin
ocdt.bin
rawprogram3.xml
abl_a.bin
abl_b.bin
abl_log.bin
android_log.bin
aop_a.bin
aop_b.bin
apdp.bin
apdp_full.bin
bluetooth_a.bin
bluetooth_b.bin
boot_a.bin
boot_b.bin
connsec.bin
cpucp_a.bin
cpucp_b.bin
devcfg_a.bin
devcfg_b.bin
devinfo.bin
dip.bin
DRIVER.bin
dsp_a.bin
dsp_b.bin
dtbo_a.bin
dtbo_b.bin
featenabler_a.bin
featenabler_b.bin
gpt_backup4.bin
gpt_main4.bin
hyp_a.bin
hyp_b.bin
hyp_log.bin
imagefv_a.bin
imagefv_b.bin
kernel_log.bin
keymaster_a.bin
keymaster_b.bin
limits.bin
limits-cdsp.bin
logdump.bin
logfs.bin
mdcompress.bin
mdtp_a.bin
mdtp_b.bin
mdtpsecapp_a.bin
mdtpsecapp_b.bin
modem_a.bin
modem_b.bin
modemdump.bin
multiimgoem_a.bin
multiimgoem_b.bin
oplusreserve2.bin
oplusreserve3.bin
oplusreserve4.bin
oplusreserve5.bin
oplus_sec_a.bin
oplus_sec_b.bin
qmcs.bin
qsee_log.bin
qupfw_a.bin
qupfw_b.bin
qweslicstore_a.bin
qweslicstore_b.bin
rawprogram4.xml
rtice.bin
secdata.bin
shrm_a.bin
shrm_b.bin
splash_a.bin
splash_b.bin
spunvm.bin
storsec.bin
tz_a.bin
tz_b.bin
tzsc.bin
uefisecapp_a.bin
uefisecapp_b.bin
uefivarstore.bin
vbmeta_a.bin
vbmeta_b.bin
vendor_boot_a.bin
vendor_boot_b.bin
vm-bootsys_a.bin
vm-bootsys_b.bin
vm-data.bin
ALIGN_TO_128K_2.bin
fsc.bin
fsg.bin
gpt_backup5.bin
gpt_main5.bin
modemst1.bin
modemst2.bin
oplusreserve1.bin
rawprogram5.xml

OTA: 34 files
MSM: 80 files
Full dump: 135 files

In fact, I'll attach the MSM manifest.xml for you to check. Anywhere that has file="" means the public (non-factory) MSM doesn't even write. This includes obvious things like modemst1, and less obvious things like oplusdycnvbk. Obviously, things in _b doesn't need to be dumped, and is not even included in the MSM, but the fact is that even a MSM doesn't have all the SW components I need to analyze. EDIT: doesn't let me attach manifest.xml for some reason, oh well.

As for your link, thats one of the first things I did.... It might have worked in previous OP devices, since device_policy.xml was the same in all devices... however, see attached device_policy, we're gonna be flashing via QPST if we even get it to work. (Yes, I tried flashing it already, crashes modem)

Trust me, I don't want to have to borrow other people's devices...
 

Attachments

  • EU-device_config.xml
    848 bytes · Views: 14
  • US-device_config.xml
    517 bytes · Views: 14
Last edited:

drozd128

Member
Apr 14, 2021
10
4
You are operating under the assumption that the OTA has the SW to enable dual sim. If that was the case, flashing a EU rom on US would finish the job already.

To give you an idea of the difference, this is the directory list of the extracted OTA:
Code:
abl.img
aop.img
bluetooth.img
boot.img
cpucp.img
devcfg.img
dsp.img
dtbo.img
featenabler.img
hyp.img
imagefv.img
keymaster.img
modem.img
multiimgoem.img
odm.img
oplus_sec.img
oplusstanvbk.img
product.img
qupfw.img
qweslicstore.img
shrm.img
splash.img
system_ext.img
system.img
tz.img
uefisecapp.img
vbmeta.img
vbmeta_system.img
vbmeta_vendor.img
vendor_boot.img
vendor.img
vm-bootsys.img
xbl_config.img
xbl.img

Now, this is the directory list of an extracted MSM, ignoring folder structure:
Code:
carrier.img
frp.bin
gpt_backup0.bin
gpt_main0.bin
metadata.img
misc.bin
oem_stanvbk.bin
opluslog.img
param.bin
patch0.xml
persist.img
rawprogram0.xml
super.img
userdata.img
vbmeta_system.img
vbmeta_vendor.img
gpt_backup1.bin
gpt_main1.bin
patch1.xml
rawprogram1.xml
xbl_config.elf
xbl.elf
gpt_backup2.bin
gpt_main2.bin
patch2.xml
rawprogram2.xml
engineering_cdt.img
gpt_backup3.bin
gpt_main3.bin
ocdt.bin
patch3.xml
rawprogram3.xml
abl.elf
abl_log.bin
android_log.bin
aop.mbn
apdp.mbn
boot.img
BTFM.bin
cpucp.elf
devcfg.mbn
devinfo.bin
DRIVER.ISO
dspso.bin
dtbo.img
featenabler.mbn
gpt_backup4.bin
gpt_main4.bin
hyp_log.bin
hypvm.mbn
imagefv.elf
kernel_log16M.bin
km41.mbn
logfs_ufs_8mb.bin
mdcompress.mbn
multi_image.mbn
NON-HLOS.bin
oplusreserve2.img
oplus_sec.mbn
patch4.xml
qsee_log.bin
qupv3fw.elf
qweslicstore.bin
rawprogram4.xml
rtice.mbn
sec.elf
shrm.elf
splash.img
spunvm.bin
storsec.mbn
tz.mbn
uefi_sec.mbn
vbmeta.img
vendor_boot.img
vm-bootsys.img
emmc_fw.bin
gpt_backup5.bin
gpt_main5.bin
patch5.xml
rawprogram5.xml

Finally, an extracted phone with all the partitions dumped, again ignoring folder structure:
Code:
carrier.bin
frp.bin
gpt_backup0.bin
gpt_main0.bin
keystore.bin
metadata.bin
misc.bin
oplusdycnvbk.bin
opluslog.bin
oplusstanvbk_a.bin
oplusstanvbk_b.bin
param.bin
persist.bin
persist_bkp.bin
rawdump.bin
rawprogram0.xml
ssd.bin
super.bin
vbmeta_system_a.bin
vbmeta_system_b.bin
vbmeta_vendor_a.bin
vbmeta_vendor_b.bin
gpt_backup1.bin
gpt_main1.bin
rawprogram1.xml
xbl_a.bin
xbl_config_a.bin
gpt_backup2.bin
gpt_main2.bin
rawprogram2.xml
xbl_b.bin
xbl_config_b.bin
ALIGN_TO_128K_1.bin
cdt.bin
ddr.bin
dinfo.bin
engineering_cdt_a.bin
engineering_cdt_b.bin
gpt_backup3.bin
gpt_main3.bin
ocdt.bin
rawprogram3.xml
abl_a.bin
abl_b.bin
abl_log.bin
android_log.bin
aop_a.bin
aop_b.bin
apdp.bin
apdp_full.bin
bluetooth_a.bin
bluetooth_b.bin
boot_a.bin
boot_b.bin
connsec.bin
cpucp_a.bin
cpucp_b.bin
devcfg_a.bin
devcfg_b.bin
devinfo.bin
dip.bin
DRIVER.bin
dsp_a.bin
dsp_b.bin
dtbo_a.bin
dtbo_b.bin
featenabler_a.bin
featenabler_b.bin
gpt_backup4.bin
gpt_main4.bin
hyp_a.bin
hyp_b.bin
hyp_log.bin
imagefv_a.bin
imagefv_b.bin
kernel_log.bin
keymaster_a.bin
keymaster_b.bin
limits.bin
limits-cdsp.bin
logdump.bin
logfs.bin
mdcompress.bin
mdtp_a.bin
mdtp_b.bin
mdtpsecapp_a.bin
mdtpsecapp_b.bin
modem_a.bin
modem_b.bin
modemdump.bin
multiimgoem_a.bin
multiimgoem_b.bin
oplusreserve2.bin
oplusreserve3.bin
oplusreserve4.bin
oplusreserve5.bin
oplus_sec_a.bin
oplus_sec_b.bin
qmcs.bin
qsee_log.bin
qupfw_a.bin
qupfw_b.bin
qweslicstore_a.bin
qweslicstore_b.bin
rawprogram4.xml
rtice.bin
secdata.bin
shrm_a.bin
shrm_b.bin
splash_a.bin
splash_b.bin
spunvm.bin
storsec.bin
tz_a.bin
tz_b.bin
tzsc.bin
uefisecapp_a.bin
uefisecapp_b.bin
uefivarstore.bin
vbmeta_a.bin
vbmeta_b.bin
vendor_boot_a.bin
vendor_boot_b.bin
vm-bootsys_a.bin
vm-bootsys_b.bin
vm-data.bin
ALIGN_TO_128K_2.bin
fsc.bin
fsg.bin
gpt_backup5.bin
gpt_main5.bin
modemst1.bin
modemst2.bin
oplusreserve1.bin
rawprogram5.xml

OTA: 34 files
MSM: 80 files
Full dump: 135 files

In fact, I'll attach the MSM manifest.xml for you to check. Anywhere that has file="" means the public (non-factory) MSM doesn't even write. This includes obvious things like modemst1, and less obvious things like oplusdycnvbk. Obviously, things in _b doesn't need to be dumped, and is not even included in the MSM, but the fact is that even a MSM doesn't have all the SW components I need to analyze. EDIT: doesn't let me attach manifest.xml for some reason, oh well.

As for your link, thats one of the first things I did.... It might have worked in previous OP devices, since device_policy.xml was the same in all devices... however, see attached device_policy, we're gonna be flashing via QPST if we even get it to work. (Yes, I tried flashing it already, crashes modem)

Trust me, I don't want to have to borrow other people's devices...
It still can be driver enabling/disabling 2nd SIM slot based on SN of board or something... I will download EU OTA and check if I can find something in there (I don't have the phone so can't do much more than that, sorry).
 

xian1243

Member
Mar 1, 2010
39
50
I can confirm that flashing the full EU OTA does not result in the slot being active. The getprop still shows persist.radio.multisim.config = ssss, despite the build.prop for the EU ROM having it set to dsds. I also flashed the param partition from an EU device, and that also did not resolve the issue. I have a second tray coming in the mail, so I'll do more testing when I receive it.

Something I noticed in getprop from an EU device was the presence of this parameter: persist.radio.check.two.sim = 1. Setting that prop manually does not change anything, but interesting to note that the parameter only exists on EU devices, and not my US device flashed to the EU build.

There must be a flag somewhere else that's tripping it.
 

baselaa

New member
Apr 29, 2021
2
0
I just got my dual-sim tray today. I'm not very technical but I know my way around, would be happy to help with any testing
I already have my device rooted and flashed the EU ROM
 

xian1243

Member
Mar 1, 2010
39
50
I just got my dual-sim tray today. I'm not very technical but I know my way around, would be happy to help with any testing
I already have my device rooted and flashed the EU ROM
Does the dual SIM tray you ordered fit flush? If so, can you share the link? The one I ordered unfortunately doesn't fit right.
 
  • Like
Reactions: xavenged

baselaa

New member
Apr 29, 2021
2
0
Does the dual SIM tray you ordered fit flush? If so, can you share the link? The one I ordered unfortunately doesn't fit right.
Actually I haven't tried it yet, I'm not staying home for a few days, will try it once I get back.
This is the one I got

 

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    I just got my dual-sim tray today. I'm not very technical but I know my way around, would be happy to help with any testing
    I already have my device rooted and flashed the EU ROM
    Does the dual SIM tray you ordered fit flush? If so, can you share the link? The one I ordered unfortunately doesn't fit right.