Skip to content

fix(constellation): assemble multipart MT SMS before matching - #5

Merged
naormeit merged 2 commits into
naormeit:rcs-bounty-2994from
HumbleDrummer:fix/mt-sms-multipart
Sep 15, 2026
Merged

naormeit merged 2 commits into
naormeit:rcs-bounty-2994from
HumbleDrummer:fix/mt-sms-multipart

Conversation

@HumbleDrummer

@HumbleDrummer HumbleDrummer commented Sep 14, 2026

Copy link
Copy Markdown

Summary

  • assemble the ordered PDU parts from one SMS_RECEIVED broadcast into a single logical message before matching
  • reject empty broadcasts and missing body parts instead of accepting a partial message
  • preserve single-part behavior and use the first available originating address

Why

MtSmsInbox currently converts each PDU into a separate ReceivedSms. For a multipart SMS, a challenge split across segments can never match as one body, and the segments are buffered separately. This change assembles the ordered parts delivered in the broadcast before buffering and matching.

Verification

  • :play-services-constellation-core:testDebugUnitTest — 14 tests, 0 failures/errors
  • :play-services-constellation-core:testReleaseUnitTest — 14 tests, 0 failures/errors
  • Debug and Release assemble/lint passed for play-services-constellation and play-services-constellation-core
  • git diff --check passed
  • remote branch content was compared with the locally tested patch and matches exactly

The full monorepo build could not complete in the offline audit environment because com.android.volley:volley:1.2.1 was not present in the local cache. Dependency resolution stopped in firebase-auth-core, outside the changed modules.

Scope

This is a narrow correctness follow-up on top of microg#3784. It does not claim to solve all of microg#2994.

No physical SIM/locked-bootloader RCS end-to-end test was performed. The existing microg#3784 hardware-validation gap remains.

Implementation and tests were prepared with Codex assistance; both commits include explicit co-author attribution.

HumbleDrummer and others added 2 commits September 14, 2026 12:50
Assemble the ordered PDU parts from a single SMS_RECEIVED broadcast before matching and buffering the logical message. Reject missing parts and keep the first available sender.

Co-authored-by: Codex <codex@openai.com>
Cover multipart ordering, invalid or missing parts, and single-part/null-sender behavior.

Co-authored-by: Codex <codex@openai.com>
@qodo-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 14, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-14T10:58:33.062075Z 6af8c09 PR opened
🔒 Security Review Completed 2026-09-14T10:58:29.107157Z 6af8c09 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@HumbleDrummer HumbleDrummer changed the title Fix/mt sms multipart fix(constellation): assemble multipart MT SMS before matching Sep 14, 2026

Copy link
Copy Markdown
Author

@naormeit @opstic @unpluggederan — we are looking for one experienced ROM builder/tester for a narrow hardware check of microg#3784 together with this follow-up at commit 6af8c095.

The main blocker is deployment: on a locked-bootloader device, the combined GmsCore build needs signing compatible with the tester's microG ROM. Is there already a prepared build/ROM path for this branch?

@opstic, you previously reported testing the MT-SMS flow; @unpluggederan, you coordinated the wider carrier testing. Would either of you be able to test this head, or point us to a ROM builder/tester who already has:

  • a physical microG device with a locked bootloader and no root/Magisk;
  • an active SIM and current Google Messages;
  • a second RCS endpoint for send/receive?

We can provide a short checklist and log filters. Please share only manually redacted evidence; raw logcat may contain phone numbers or tokens. With the tester's consent, we will credit the public report as Hardware-tested-by.

This is a volunteer verification request. No payment or bounty share is promised, and this is not a full microg#2994 bounty claim.

@naormeit
naormeit merged commit 276523b into naormeit:rcs-bounty-2994 Sep 15, 2026
0 of 2 checks passed
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