Skip to content

RCS: Constellation/Asterism plus DroidGuard fixes and IID/key-ack follow-up (#2994) - #3749

Open
ylcharan wants to merge 55 commits into
microg:masterfrom
ylcharan:rcs-2994-solution
Open

RCS: Constellation/Asterism plus DroidGuard fixes and IID/key-ack follow-up (#2994)#3749
ylcharan wants to merge 55 commits into
microg:masterfrom
ylcharan:rcs-2994-solution

Conversation

@ylcharan

@ylcharan ylcharan commented Aug 29, 2026

Copy link
Copy Markdown

Summary

  • Completes the existing Opstic Constellation/Asterism stack (#3359, #3360) plus @br413's DroidGuard/Tachyon work (#3644) for bounty #2994.
  • Stops AuthManager.getIidToken() from returning "" after failure (that could send empty GPNV requests) and clears is_public_key_acked whenever missing/corrupt EC keys are regenerated.
  • Keeps only verified Messages/IMS Phenotype flags (merged the duplicate apps.messaging#… map key). Does not add attestation-disable flags. Does not add an empty rcs.START binder as a svc 189 fix.

Test plan

  • ./gradlew :play-services-constellation-core:testDebugUnitTest
  • ./gradlew :play-services-asterism-core:testDebugUnitTest (Get/Set Asterism consent request/response parcel + mapping)
  • ./gradlew :play-services-droidguard:testDebugUnitTest
  • ./gradlew :play-services-constellation-core:lintDebug :play-services-asterism-core:lintDebug :play-services-droidguard:lintDebug :play-services-core:lintVtmDefaultDebug (0 errors; no NewApi/RestrictedApi in these modules)
  • Locked-bootloader, non-root device: provisioning → Connected → bidirectional RCS, no Tachyon PERMISSION_DENIED

This PR does not claim the locked-bootloader E2E finish line. Stock GMS daily drivers cannot take this APK; a microG ROM (and separately a signed CalyxOS Pixel) is still required for that evidence.

Related

Made with Cursor

opstic and others added 25 commits April 6, 2026 02:30
Align DG cache naming and VM keys with stock GMS, preserve partial init replies, and fall back to phone number hints during Constellation provisioning.
Introduce shared phone-number and VM cache utilities, wire them into Constellation and DroidGuard, and add offline JUnit coverage for provisioning and tachyon-related logic.
Do not send GPNV with a blank IID token, reset is_public_key_acked when EC keys are replaced, keep only verified Messages/IMS Phenotype flags, and add Asterism consent request/response tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
DummyService returns API_DISABLED and aborts Messages RCS setup. Accept the bind for Google packages, log unknown binder codes, and keep a manifest regression test so the action cannot fall back onto DummyService.

Co-authored-by: Cursor <cursoragent@cursor.com>
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