• Off Topic
  • Using RCS with Google Messages on GrapheneOS

I wanted to try out GrapheneOS for a bit of increased security and privacy. I have AT&T, and I was having issues with sending RCS messages, despite RCS displaying as being connected. It would show the first bubble with a circle and check mark (sender), but the second bubble (recipient) would not show and the message would not go through. I could receive RCS messages from people who had both Android and iOS. I was also able to see typing indicators. I decided to switch back to stock. It worked like normal at first; however, I started experiencing the same issue. I could not find what was causing the issue. I assumed it was on the carrier end, and they were of no help.

I think that I've finally identified the issue. I was using the quick tiles to disable both the camera and microphone (only enabling them when needed). I started this practice while using GrapheneOS. You're able to do the same thing on stock android. The issue appeared to resolve when I accidentally left the microphone enabled following a call. I started having issues again after disabling the microphone. I was able to fix the issue by enabling the microphone, but it didn't resolve the issue until after I reinstalled Google messages.

I thought that it might be helpful to share with the community. This could be causing issues for people based on the permissions that they are granting Google messages and for those who routinely disable the microphone.

    Unlit6179 TLDR::

    Problem: RCS was connected but not sending messages. Could receive RCS messages and see typing indicator. I suspect that disabling the microphone through the quick tile was the culprit. It does not resolve immediately re-enabling the microphone.

    Solution: It worked again after enabling the microphone and reinstalling Google Messages. I assume microphone permissions also matter for Messages.

      Unlit6179 from what I understand it doesn't need mic permissions... But I say that and have my enabled lol

      6 days later

      I found that giving messages, and carrier location permission fixed the RCS problem for me Pixel 9

      I was able to get RCS working on my device. I'm going to include as much detail as I can think of here to hopefully be of some help to someone else.

      Device and situation details

      Carrier: AT&T
      Phone: Google Pixel 9 Pro
      (e)SIM(s): 1 eSIM (that puts it in the second slot for Pixels with a physical SIM slot)
      Previous Phone: iPhone 14 Pro Max (logically I had iMessage enabled and RCS as of iOS 18)
      Connection Type(s): 5G and Wi-Fi

      Story

      1st attempt

      I setup the phone sans cellular service. I installed all my apps and secondary users. I attempted to use RCS under a secondary user after getting an eSIM provisioned to the phone. Under the secondary profile Messages could see the SIM details, but would never report a status.

      2nd attempt

      After reading the tips and instructions here in this thread, I reconfigured all the settings and permissions except for using adb to add the extra permission to Messages. I started to do this in the Owner profile. Reading this thread lead me to believe there is something about the RCS verification process that only works in the Owner process. A status never appeared in the RCS settings, but now I would get text messages from Google frequently attempting to confirm my number. I later tried some troubleshooting with AT&T, but they just had me reset network settings and cycled my connections to the towers. At some point in the troubleshooting with them clearing the cache got a status to appear and option to Verify my number. This ended up getting stuck in this state. Eventually they got my verification requests rate limited from asking me to re-input my details to verify so many times. So I would have to try again the next day.

      3rd attempt

      After getting to a dead end with AT&T, I factory reset GOS. This time I went through all the same steps from before but only setup Messages in the Owner profile. I was able to get the status messages again yet ultimately stuck at the "setting up" stage. I tried more cache clearing and eventually got familiar with the logs formats to have some basic comprehension. I discovered that sometimes when Messages would say RCS was unsupported on my device that it was actually because Messages was setting up RCS in Dual-SIM mode (DSDR) and well I only had one eSIM. Clearing cache while in airplane mode would clear that out and Messages would switch to a single SIM mode RCS setup after that. I also discovered that there was a consistent error in the logs stating something along the lines of "no RCS configuration on SIM." This made me curious if this had to do with the provisioning of my eSIM from AT&T. I tried provisioning a new eSIM from AT&T's website but the error persisted.

      4th attempt

      After reading all these logs, I got a hunch to setup the phone and RCS all under the stock system (as I call it SpywareOS). So I did just that. I used the Android flash tool to flash the latest stable release back to the Pixel. I configured RCS with Messages and it took several hours to actually work. An annoying part was that right after I opened Messages the first time the RCS status was CONNECTED, but I could not send an RCS message for a few hours. After this I hoped that there was now a configuration in the eSIM that would carry over when I flash GOS on the Pixel again.

      5th attempt

      At this time, I began to flash GOS again giving me a clean environment excluding the eSIM that would carry over. The first thing that I did, was install App Ops, Sandboxed Google Play services and Messages. That means I also signed into my Google account to download Messages from the Play Store. I added all the permissions and even added the extra permission using adb. I configured all the permissions while the devices was in airplane mode and cleared all caches for Messages, Carrier Services and Google Play Services. I made Messages the default SMS app. I disabled airplane mode and enabled cellular services only. Then I opened up Messages. The first launch I went into setting and had to enable RCS chats in settings. After a second launch, I got the "Enabling RCS" notification from RCS and when I checked the status in Messages' settings the status was CONNECTED. I attempted to send an RCS message, but no luck. Then after a few more hours of waiting it all worked.

      Conclusion

      So I'm not sure if setup in SpywareOS was a necessary step, but it was part of my steps that led to it being enabled. Also, in many of these steps I had to regularly go into my Google account and sign-out the devices from previous attempts and disable the devices allowed to perform automatic number verification (https://account.googel.com/phone).

      For a TL,DR:

      1. Possibly setup RCS in stock prior to GOS
      2. start with a fresh install of GOS
      3. install Google Play Services, Google Messages and Carrier Services
      4. set permissions on Google Play Services: Allowed (Contacts, Network, Notifications, Phone, Sensors, SMS) Not allowed (everything else) App batter usage (Unrestricted)
      5. sign into Google account and enable automatic phone verification
      6. enable airplane mode
      7. set permissions on Messages: Allowed (Call logs, Camera, Contacts, Microphone, Network, Notifications, Phone, Sensors, SMS) Storage scopes (Music and audio, Photos and videos) Not allowed (Location)
      8. enable Developer mode, enable USB debugging and set READ_DEVICE_IDENTIFIERS to allow then disable developer mode and USB debugging
      9. set permissions on Carrier Services: Allowed (Call logs, Network, Phone, Sensors) Storage scopes (Contacts) Not allowed (Camera, Location, Microphone) App batter usage (Unrestricted)
      10. clear cache on Messages and Google Play Services
      11. disable airplane mode
      12. ensure cellular services is enabled and Wi-Fi is disabled
      13. open Messages and ensure RCS chats are enabled
      14. wait a few hours

      I'm on TELUS, and RCS stopped working after a few weeks of constant usage.

      I know someone else on GrapheneOS as well who's RCS stopped working around the same time, and they use a different network (Freedom).

      This leads me to believe it was a recent GrapheneOS update that killed the RCS connection.

        quaff This leads me to believe it was a recent GrapheneOS update that killed the RCS connection

        People blame 'GrapheneOS update' for all kinds of things. Most often it is not the cause.

        In this case it is much more likely a change to Play Services or Googles RCS service or Messages app which is incompatible with the way a device is set up or the way some carriers are set up or a combination of these things. There are complex interactions and many places that there can be differences.

        Carlos-Anso

        Fair enough. Easy to blame GrapheneOS updates (especially without checking the changelogs to see if the updates actually broke anything). That thread you shared did the trick. That's crazy that all those steps are required. Will have to do it for the other person I know to see if it works for them too. Thanks again (until the next time).

        8 days later