fix(constellation): assemble multipart MT SMS before matching - #5
Conversation
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 reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@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:
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 This is a volunteer verification request. No payment or bounty share is promised, and this is not a full microg#2994 bounty claim. |
Summary
SMS_RECEIVEDbroadcast into a single logical message before matchingWhy
MtSmsInboxcurrently converts each PDU into a separateReceivedSms. 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/errorsplay-services-constellationandplay-services-constellation-coregit diff --checkpassedThe full monorepo build could not complete in the offline audit environment because
com.android.volley:volley:1.2.1was not present in the local cache. Dependency resolution stopped infirebase-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.