For over a decade, sending a video or photo from an Android device to an iPhone felt like stepping backward into 2004. Cellular carriers compressed 50MB 4K MP4 clips into pixelated 800KB MMS blobs, group chats routinely broke when participants changed platforms, and read receipts were nonexistent outside closed walled gardens like WhatsApp or Signal.
With Apple's formal adoption of RCS (Rich Communication Services) Universal Profile in iOS 18, the mobile messaging landscape underwent its most critical modernization in twenty years.
However, cross-platform RCS is not identical to proprietary protocols like iMessage. Here is an architectural deep-dive into how RCS operates, carrier backend requirements, security boundaries, and step-by-step troubleshooting when messages fail to deliver over IP.
How RCS Works: Replacing SS7 with SIP and HTTP
Legacy SMS and MMS operate over the cellular network’s signaling channel (SS7) using limited payload capacities (160 7-bit characters for SMS; ~1MB carrier limits for MMS).
RCS, by contrast, operates entirely as an IP-based protocol:
Carrier IMS infrastructure routes RCS payloads over IP data rather than legacy cellular signaling channels.
[Mobile Device]
│
▼ (HTTPS / TLS 1.3 over LTE/5G or Wi-Fi)
[Carrier IMS Core (IP Multimedia Subsystem)]
│
▼ (SIP Signaling / MSRP Media Delivery)
[Inter-Carrier RCS Hub / Cloud Gateway]
│
▼
[Recipient Carrier IMS Core]
│
▼
[Recipient Device]
Under RCS Universal Profile 2.4:
- Text and typing indicators travel via SIP (Session Initiation Protocol) and MSRP (Message Session Relay Protocol).
- Large media files (up to 100MB) upload to an encrypted carrier content server via HTTPS, delivering an XML/JSON pointer to the recipient client for immediate background download.
- Delivery and read receipts trigger discrete IP packets without incurring SMS billing ticks.
Cross-Platform Feature Parity Matrix
| Feature | SMS / MMS | Apple iMessage | Google Messages (Android RCS) | Cross-Platform RCS (iOS <-> Android) |
|---|
| Max Media Attachment Size | ~1MB (Carrier-compressed) | Up to 2GB | Up to 100MB | Up to 100MB (High-res uncompressed) |
| Typing Indicators | No | Yes | Yes | Yes |
| Read Receipts | No | Yes | Yes | Yes |
| In-Line Tapback Reactions | Converted to SMS text strings | Yes | Yes | Yes (Native emoji rendering) |
| End-to-End Encryption (E2EE) | None | Full (Curve25519 + AES-GCM) | Full (Signal Protocol via Google Jibe) | In Progress (TLS in transit; GSMA standardizing E2EE) |
| Works over Wi-Fi without Cell | No (Unless carrier Wi-Fi calling on) | Yes | Yes | Yes |
The Security Distinction: Transport Encryption vs End-to-End Encryption
The critical technical distinction users must understand is End-to-End Encryption (E2EE):
1. Google Messages to Google Messages: Uses the Signal Protocol layered on top of RCS via Google's Jibe cloud infrastructure. Only the sender and receiver hold the cryptographic keys.
2. iMessage to iMessage: Uses Apple's end-to-end encrypted messaging pipeline.
3. iPhone to Android RCS: Uses the GSMA Universal Profile 2.4 standard. While payloads are encrypted in transit via TLS 1.3 between your device and the carrier IMS server, the carrier has the technical capability to decrypt messages at their internal gateway.
The GSMA is currently finalizing Universal Profile 2.7, which introduces standardized MLS (Messaging Layer Security) for universal cross-platform E2EE. Until full deployment, sensitive conversations requiring strict cryptographic privacy should remain on audited applications like Signal or WhatsApp. For an in-depth comparison of encrypted protocols, check our analysis on Signal vs Telegram vs WhatsApp Privacy & Cryptography.
Understanding the cryptographic differences between Apple iMessage, Google Messages RCS, and Universal Profile 2.4.
Step-by-Step Carrier Activation and Troubleshooting
If your messages between iOS and Android still revert to green SMS bubbles with small file sizes, run through this verification procedure.
On iPhone (iOS 18+):
1. Navigate to `Settings > Apps > Messages`.
2. Scroll to `RCS Messaging`.
3. Verify the toggle is enabled. If the option is missing, your carrier has not yet pushed their carrier bundle update to Apple.
4. To check carrier bundle status: `Settings > General > About` -> Tap `Carrier`. If the IMS status reads "Voice & SMS" instead of "Voice, SMS & RCS", contact your carrier to provision the APN entitlement.
On Android (Google Messages):
1. Open Google Messages -> Tap your profile icon -> `Messages settings`.
2. Tap `RCS chats`.
3. Check status:
-
Connected: RCS is fully active.
-
Setting up... / Trying to verify: Often caused by Dual-SIM contention. Ensure the primary mobile data SIM matches the voice number.
-
Registration failed: Clear cache for `Carrier Services` and `Google Messages` under `Settings > Apps`.
By configuring RCS properly, users across both major mobile operating systems finally enjoy high-resolution photos, stable group chats, and responsive communication without artificial ecosystem walls.