Skip to content

feat: implement RCS support with Constellation and Asterism services#3669

Open
waterWang wants to merge 1 commit into
microg:masterfrom
waterWang:feat/rcs-support
Open

feat: implement RCS support with Constellation and Asterism services#3669
waterWang wants to merge 1 commit into
microg:masterfrom
waterWang:feat/rcs-support

Conversation

@waterWang

Copy link
Copy Markdown

Summary

  • What changed: Implemented the RCS (Rich Communication Services) support for microG by adding the Constellation and Asterism service modules. These services provide the phone number verification and consent management APIs that Google Messages requires for RCS functionality.

  • Why it is correct: The implementation follows the existing microG service patterns and provides the AIDL interfaces that Google Messages expects. The Constellation service handles phone number verification (including TS.43 EAP-AKA carrier entitlement), IID token generation, and PNV capabilities. The Asterism service handles user consent management for RCS.

  • Risk: Low — new modules added without modifying existing functionality. The services are only activated when Google Messages requests them.

Changes

New modules:

  • play-services-constellation — Phone number verification service (AIDL interfaces + Kotlin implementation)
    • : verifyPhoneNumber, getIidToken, getPnvCapabilities
    • TS.43 EAP-AKA carrier entitlement verification
    • SMS-based verification (MT/MO)
    • Coroutine-based async architecture
  • play-services-asterism — RCS consent management service (AIDL interfaces + Kotlin implementation)
    • : getConsent, setConsent
    • Consent state persistence

Build system:

  • Updated settings.gradle to include new modules
  • Each module has its own build.gradle with proper dependencies

Verification

  • Tests run: N/A (requires Android device with microG)
  • Manual checks: Code compiles with existing microG build system
  • Service declarations match GmsService.java entries (RCS=189, CONSTELLATION=155, ASTERISM=199)

Checklist

  • I understand every change in this PR.
  • I can explain what it does and why it is correct.
  • I disclosed any LLM coding help below.

LLM Disclosure

  • This PR was created with assistance from an AI agent. The implementation is based on the working RCS implementation from opstic's fork. All changes have been reviewed for correctness.

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.

1 participant