on the Qin V6.1.3 there is another file in system/system_ext/etc/custom.conf which it has the user agent for mms and UAprofile…
Anyone with a Pixel. adb shell dumpsys carrier_config | findstr “uaProfUrl userAgent”
Can do tomorrow.
Does it have any unique information in it, or it’s just general info which is the same on any pixel?
Idk. Tried it on a Samsung and it came up blank.
Maybe a pixel is different? ![]()
Note on Linux replace finstr with grep
And in termux replace adb shell with sudo ![]()
Claude says
That’s a really astute observation. These values might be set in a layer that dumpsys carrier_config doesn’t show — specifically:
-
Samsung has
SemCarrierConfig(their proprietary layer) -
TCL and other brands may have their own OEM config layer
-
Google Pixels have
CarrierSettings.apkwith binary protobuf configs
All of these sit outside the standard Android CarrierConfigManager that dumpsys reads from. So dumpsys would show empty even if the values are actually being used at a lower level.
This would mean:
-
The UAProf theory might actually still be correct
-
Samsung and TCL do have these values set, just invisibly to
dumpsys -
The F21 Pro has no such proprietary layer, so the values are genuinely missing
To test this theory on the Samsung without root, you could install Network Log or PCAPdroid on it — no root needed, uses Android VPN API — and capture the actual HTTP headers it sends to mms.vtext.com when receiving an MMS.
If the Samsung’s actual HTTP request shows a x-wap-profile header with a URL, that confirms the values are there but hidden from dumpsys.
Worth trying before we go further down the APN path. Can you install PCAPdroid on the Samsung or any Smartphone?
Set it up on the Samsung to capture MMS traffic:
-
Install PCAPdroid on the Samsung
-
Open PCAPdroid and start a capture
-
Set the target app to Messages (or whatever SMS app is default)
-
Have someone send the Samsung an MMS
-
Stop the capture
-
Export the pcap file and pull it to Windows via USB
-
Open in Wireshark and look at the HTTP headers in the request to
mms.vtext.com
Specifically we want to see if the Samsung’s request contains:
x-wap-profile: http://...
User-Agent: ...
If it does — those values exist but are hidden from dumpsys, the UAProf theory is still alive, and we need to find a way to inject those same headers on the F21 Pro.
If it doesn’t — then Samsung gets full quality MMS through some completely different mechanism and we need to rethink entirely.
This is probably the single most useful test we can do right now. Do you want to try it?
It would be very hard for me to try this as I don’t use a Smartphone… If anyone else can that would be really helpful.
Spent way too much time on this already ![]()
here you go for commands dumpsys carrier_config
adb shell dumpsys carrier_config.zip (19.9 KB)
pcapdroid will not help for this, does not get routed that way.
Here’s the full mms (picture) download request on a OnePlus 12 on Verizon:
stuffs
MMS DOWNLOAD REQUESTS — captured via strace on com.android.phone
Captured: 2026-05-28 09:43–09:46 EDT
Device: OnePlus (UA code: odopcph2583)
Your number: [YOUR_NUMBER]
MMS APN IP: 10.145.180.101 (vzwims APN, separate from internet APN 100.111.109.20)
Transport: PLAIN HTTP (no TLS, no encryption)
====================================================================
TRANSACTION 1
====================================================================
Time: 09:44:07 EDT
MMSC: 63.59.166.90 port 80 (Verizon)
Local: 10.145.180.101:48562
--- REQUEST (exact bytes on wire) ---
GET /servlets/mms?message-id=09791460AEBE0000C6A0010101 HTTP/1.1
Accept: */*, application/vnd.wap.mms-message, application/vnd.wap.sic
Accept-Language: en-US
User-Agent: odopcph2583
Profile: http://uaprof.vtext.com/OnePlus/odopcph2583/odopcph2583.xml
Connection: close
x-up-calling-line-id: [YOUR_NUMBER]
X-VzW-MDN: [YOUR_NUMBER]
Host: 63.59.166.90
Accept-Encoding: gzip
--- RESPONSE ---
HTTP/1.1 200 OK
Date: Thu, 28 May 2026 13:44:07 GMT
Server: Apache
Content-Length: 131250
Connection: close
Content-Type: application/vnd.wap.mms-message
MMS PDU headers (decoded):
X-Mms-Message-Type: m-retrieve-conf
X-Mms-Transaction-Id: 09791460AEBE0000C6A0010101
X-Mms-Message-Id: 09791460AEBE0000C6A00101
X-Mms-From: [SENDER_NUMBER]/TYPE=PLMN
X-Mms-To: [YOUR_NUMBER]/TYPE=PLMN
Attachment filename: 123_1.jpeg
Body: JPEG image (128 KB, JFIF magic confirmed)
====================================================================
TRANSACTION 2
====================================================================
Time: 09:44:13 EDT
MMSC: 63.59.166.90 port 80 (Verizon)
Local: 10.145.180.101:34662
--- REQUEST (exact bytes on wire) ---
GET /servlets/mms?message-id=097914611A970000D580020101 HTTP/1.1
Accept: */*, application/vnd.wap.mms-message, application/vnd.wap.sic
Accept-Language: en-US
User-Agent: odopcph2583
Profile: http://uaprof.vtext.com/OnePlus/odopcph2583/odopcph2583.xml
Connection: close
x-up-calling-line-id: [YOUR_NUMBER]
X-VzW-MDN: [YOUR_NUMBER]
Host: 63.59.166.90
Accept-Encoding: gzip
--- RESPONSE ---
HTTP/1.1 200 OK
Date: Thu, 28 May 2026 13:44:12 GMT
Server: Apache
Content-Length: 75078
Connection: close
Content-Type: application/vnd.wap.mms-message
MMS PDU headers (decoded):
X-Mms-Message-Type: m-retrieve-conf
X-Mms-Transaction-Id: 097914611A970000D580020101
X-Mms-Message-Id: 097914611A970000D5800201
X-Mms-From: [SENDER_NUMBER]/TYPE=PLMN
X-Mms-To: [YOUR_NUMBER]/TYPE=PLMN
Attachment filename: 123_1.jpeg
Body: JPEG image (73 KB, JFIF magic confirmed)
====================================================================
TRANSACTION 3
====================================================================
Time: 09:44:15 EDT
MMSC: 63.59.139.26 port 80 (Verizon, alternate MMSC)
Local: 10.145.180.101:42568
--- REQUEST (exact bytes on wire) ---
GET /servlets/mms?message-id=0E79146141CC00000B40000101 HTTP/1.1
Accept: */*, application/vnd.wap.mms-message, application/vnd.wap.sic
Accept-Language: en-US
User-Agent: odopcph2583
Profile: http://uaprof.vtext.com/OnePlus/odopcph2583/odopcph2583.xml
Connection: close
x-up-calling-line-id: [YOUR_NUMBER]
X-VzW-MDN: [YOUR_NUMBER]
Host: 63.59.139.26
Accept-Encoding: gzip
--- RESPONSE ---
HTTP/1.1 200 OK
Date: Thu, 28 May 2026 13:44:15 GMT
Server: Apache
Content-Length: 109856
Connection: close
Content-Type: application/vnd.wap.mms-message
MMS PDU headers (decoded):
X-Mms-Message-Type: m-retrieve-conf
X-Mms-Transaction-Id: 0E79146141CC00000B40000101
X-Mms-Message-Id: 0E79146141CC00000B400001
X-Mms-From: [SENDER_NUMBER]/TYPE=PLMN
X-Mms-To: [YOUR_NUMBER]/TYPE=PLMN
Attachment filename: 123_1.jpeg
Body: JPEG image (107 KB, JFIF magic confirmed)
====================================================================
WHAT VERIZON SEES (for every MMS you download)
====================================================================
1. Your phone number (MDN) in two headers:
x-up-calling-line-id: [YOUR_NUMBER]
X-VzW-MDN: [YOUR_NUMBER]
2. Your exact device model (OnePlus UA code odopcph2583) in two places:
User-Agent: odopcph2583
Profile: http://uaprof.vtext.com/OnePlus/odopcph2583/odopcph2583.xml
3. The message-id from the WAP-Push notification — Verizon already stored
the full MMS on their server before your phone fetched it. You are
retrieving a copy from their store.
4. The full plaintext conversation (sender, recipient, attachments) is
returned in the HTTP body. There is no encryption at any layer.
5. No M-NotifyResp.ind POST was observed — your device silently fetches
without acknowledging back to the MMSC (or the ACK happens via SMS/WAP).
Now that you have this it should be real easy. Not sure if every device works differently though. I can’t test cuz I’m in Israel
Run on f21 pro and send an mms:
bash mms_capture.sh
mms_capture.sh (12.9 KB)
Need to be rooted obviously.
Upload results.
So basically @ars18 if you upload your carrier config, there’s good chances we can just modify any phones carrier config with the values from yours.
OnePlus 12
CarrierConfig.apk (262.6 KB)
I changed the UAProf url to the OnePlus in custom.conf and carrierconfig.xml and it it didn’t help
Same exact as aosp. Not here. According to Claude’s research in aosp docs, the other options are com.verizon.mips.services or maybe some sort of overlay in vendor or something
But I’m not gonna pull you down this rabbit hole especially since I don’t even know for sure Claude is right (unless you really want to
)
In which files? Why’d you think it was supposed to go there?
/data/user_de/0/com.android.phone/files/carrierconfig-com.android.carrierconfig-89148000006944261898-1839.xml
/system/system_ext/etc/custom.conf
The first because Claude claimed it should be there and the second someone here pointed out that the qin stores the profurl there.
[+] strace ready: /data/local/tmp/strace_mmsc
[+] com.android.phone found (PID 1915)
[*] Output dir: /data/local/tmp/mms-capture-20260528-124507
[*] Strace running — 45s window
[*] Send yourself an MMS NOW
[+] Capture window closed.
[*] strace log:
Attaching to PID=1915
WARNING: linker: Warning: “/data/local/tmp/strace_mmsc” unused DT entry: unknown processor-specific (type 0x70000001 arg 0x0) (ignoring)
Illegal instruction
MMS DOWNLOAD REQUESTS – captured via strace on com.android.phone
Captured: 2026-05-28
Transport: PLAIN HTTP (no TLS, no encryption)
No MMSC transactions found.
Log lines captured: 4
All connect() calls in log:
(none)
MMSCapture.apk (341.0 KB)
My strace not compatible. Try this build
