Skip to content

Modify LGU+ IMS user agent to Google device carrier settings - #350

Open
imnyang wants to merge 2 commits into
GrapheneOS:17from
imnyang:lgup-ims-user-agent
Open

Modify LGU+ IMS user agent to Google device carrier settings#350
imnyang wants to merge 2 commits into
GrapheneOS:17from
imnyang:lgup-ims-user-agent

Conversation

@imnyang

@imnyang imnyang commented Aug 4, 2026

Copy link
Copy Markdown

Summary

  • Add ims.ims_user_agent_string to the LG U+ carrier settings for 20 Google Pixel devices.
  • Set the IMS user-agent string to:
    TTA-VoLTE/3.0 #MODEL#/#BUILD# Device-Type/Android_Phone OMD
  • Regenerate the corresponding .pb files and update the associated vendor spec SHA-256 hashes.

Rationale

The LG U+ carrier settings previously did not define an IMS user-agent string. This change adds the carrier-specific value while preserving the per-device #MODEL# and #BUILD# placeholders.

Validation

  • Confirmed at an LG U+ retail store that the Google Pixel 6 Pro can be registered as "국내 미출시 외산단말 (OMD-STDPHONE)", the operator profile used for devices not officially released in South Korea.
  • Tested the change on an actual Google Pixel 6 Pro with an LG U+ USIM card (not eSIM).
  • Confirmed that device activation completed successfully by receiving the LG U+ activation confirmation SMS.
  • Verified that IMS registration completed successfully and that VoLTE calls work correctly.
  • Verified that the SHA-256 hashes of all 20 generated lguplus_kr.pb files match their corresponding vendor spec entries.

Note

English is not my native language, so this description was translated with the assistance of an LLM. There may be minor differences in wording from the original Korean text.

@inthewaves

Copy link
Copy Markdown
Member

Hello, thank you for confirming that using OMD for the [OMCCODE] in TTA-VoLTE/[UICC_VERSION] [PRODUCT_MODEL]/[BUILD_VERSION] Device_Type/Android_Phone [OMCCODE] seems to be the correct user agent. We found that OMD was used in Samsung code for out-of-market devices in GrapheneOS/os-issue-tracker#7066 (comment)

Please note that all of the .pb files under vendor/adevtool/carrier-settings/ can be updated automatically by the adevtool update-carrier-settings and adevtool generate-all commands, so any updates would overwrite these changes. It would be better to patch carrier settings during the generate-all process like what is done in https://github.com/GrapheneOS/adevtool/pull/327/changes#diff-1f374dee7db2d144e667aee1b048b5563b4d9b0b1e9bf3fcfeb3a025a5e0516aR25-R30

@imnyang
imnyang force-pushed the lgup-ims-user-agent branch from 03dd6bb to 9cba325 Compare August 15, 2026 01:13
@imnyang

imnyang commented Aug 15, 2026

Copy link
Copy Markdown
Author

Hello, thank you for confirming that using OMD for the [OMCCODE] in TTA-VoLTE/[UICC_VERSION] [PRODUCT_MODEL]/[BUILD_VERSION] Device_Type/Android_Phone [OMCCODE] seems to be the correct user agent. We found that OMD was used in Samsung code for out-of-market devices in GrapheneOS/os-issue-tracker#7066 (comment)

Please note that all of the .pb files under vendor/adevtool/carrier-settings/ can be updated automatically by the adevtool update-carrier-settings and adevtool generate-all commands, so any updates would overwrite these changes. It would be better to patch carrier settings during the generate-all process like what is done in https://github.com/GrapheneOS/adevtool/pull/327/changes#diff-1f374dee7db2d144e667aee1b048b5563b4d9b0b1e9bf3fcfeb3a025a5e0516aR25-R30

Thanks for the feedback. I updated the implementation to apply the LGU+ carrier-settings change during generate-all instead of modifying the generated .pb files directly.

The generation-time patch updates ims.ims_user_agent_string for lguplus_kr to:

TTA-VoLTE/3.0 #MODEL#/#BUILD# Device-Type/Android_Phone OMD

This keeps the change reproducible and prevents update-carrier-settings or future generate-all runs from overwriting it. I also verified that generate-all produces the expected value in the generated lguplus_kr.pb.

The changes are committed and pushed to this branch.

@inthewaves

Copy link
Copy Markdown
Member

@fuyuka3725, you mentioned in GrapheneOS/os-issue-tracker#7066 (comment) that LG U+ must not register with OMD. Could you please reconfirm this if possible?

@fuyuka3725

fuyuka3725 commented Aug 19, 2026

Copy link
Copy Markdown

@inthewaves This does not mean that you should not register OMD in the User Agent [OMCCODE] field under Carrier Settings to activate VoLTE. rather, it means that you should not register OMD Code with the actual SIM card provider's customer service center.
In other words, even for LG U+ as the carrier, the [OMDCODE] field must contain OMD.

The ‘carrier settings’ on a mobile phone and the OMD code used by the carrier’s customer service centre may share the same name, but technically they are entirely different values.

@fuyuka3725

fuyuka3725 commented Aug 19, 2026

Copy link
Copy Markdown

However, if the question is asking whether you need to register OMD with the LG U+ carrier customer service center, the answer is STILL NO. Unlike with SKT or KT, various issues arise during registration. This is because LG U+ operates on an NR/LTE-only network, unlike the other two carriers.

Add: Based on the information above, I personally believe that even if the OMD-STDPHONE code is registered on the Pixel 6 Pro, it still functions because the device is explicitly marked as non-genuine. However, in my experience, there is no need to intentionally register this code on Pixel 7 or later models.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants