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.

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.

2 participants