Hey all,

I have spent HOURS trying to figure out why my RCS support stopped working with Google Messages. It was working fine, only to then say, "Your device does not currently support this feature."

I tried everything, from adding permissions, to calling Verizon, to resetting network settings and getting eSIMs provisioned multiple times. I even (stupidly) allowed them to talk me into a newer but equivalently priced plan to see if that fixes things. No dice.

Then, randomly, I stumbled upon a valuable insight. I set the pre-installed Messaging app as the default SMS app, just for funsies - and then I noticed all the RCS settings in Google Messages became enabled! There were no nasty error messages, just the normal settings. After switching the default SMS app back to Google messages, the settings stuck and there were no error messages, which was good, but RCS didn't work. Alright, I thought: I'm getting somewhere.

That's when I had the epiphany. I switched back to the pre-installed Messaging app as the default, then checked out Google Messages permissions. To my surprise, it only had two: Sensors and Network. It didn't have any useful permissions that weren't given to it by being the default SMS app. So while it was NOT set as the default, I gave it the permissions it needed, including what I was fine with: Phone, SMS, Contacts, Call Logs, and a few others that probably aren't relevant. And then, only after giving it the right permissions, did I set it back to being the default SMS app. And guess what: RCS worked again! Hurray! I don't know why, but giving it the permissions ahead of time seems to make them more permanent.

TL;DR: Give Google Messages the permissions it needs before setting it as the default SMS app. This will make sure they stick. Aside: Could this perhaps be a bug in Graphene?

Enjoy!

    Thank you for the heads-up. I installed Google Messages and gave it the exact same permissions as the AOSP SMS/MMS app. Set it as the SMS default afterwards, and RCS works like a charm (Deutsche Telekom contract).

    tcoulter

    A bug in Google Message maybe cause if you right carefully the two megathread there is for RCS there is no mention of messing with Google messages permissions

      Excellent news. It's working properly in my main profile where I'm logged in with a Google account. Too bad it doesn't work in secondary profile without Google account

      When I open Google Messages, it says: "To use Messages, make it your default SMS app". I can access the RCS menu but everything is greyed out. If I make it the default SMS app, the RCS settings become unavailable again.

      Version messages.android_20250317_01_RC00.phone.openbeta_dynamic

      com.google.android.apps.messaging
      versionCode 273589100

      targetSdk 36
      minSdk 26

      Installed: 9 Mar 2025; 15:45
      Updated: 18 Mar 2025; 19:05

      Edit: 5 mins later and it's suddenly started working! Thank you!

      tcoulter Hi, thanks you are smart. I had "rcs not avalaible on this device" on Google Messages. After I doing your trick, I am now presented the option to validate my phone number but it won't verify of course -_- .

      Edit (sorry) : I don't know if it is because I mixed it with the good old trick of Shizuku/AppOps/device identifiers permission, but it ended up activating instantly. Thanks for the tip !!
      but honestly this cringes me a lot. I received a notification that my Google account was now linked to my phone number 💀

        KitchenSync439 Anything specific? or did you just follow as written. I'm on Fi and while I can receive messages I cannot send them.

        IamZorro I understand the cringe. I'm so engrained in Google for the last 15+ years that's there's no getting out. Even if I could get around that here, Google would have my phone number in other ways.

        Glad that this is working for many people, but unfortunately it didn't work for me. I'm still stuck on "Setting up... Trying to verify your phone number..."

        There's been a lot of people having issues with Google messages and I'll lay out all the troubleshooting steps and ways to get it working.

        First off. Deregister your number from the Google messages web portal if you just recently moved to grapheneOS from iOS or went from stock to Graphene or changed to a new device,recently ported your phone number to a different carrier.

        Secondly, Google messages will not work unless it is installed from the play store directly. Don't bother trying to get it from Aurora. It uses play install Referral API. It's about as picky as a banking application.

        To quote the scripture xD

        From Android source:

        The android.permission.PERFORM_IMS_SINGLE_REGISTRATION permission must be defined by the messaging app with the RCS features. For this permission to be granted, the following must be true:

        The app must be installed as a privileged app, meaning that it's preinstalled on the device and is allowed to access privileged permissions
        The app must be set as the user's default SMS role using RoleManager
        If both of these conditions aren't met, the app is denied access to the android.permission.PERFORM_IMS_SINGLE_REGISTRATION permission. This means that third party apps aren't allowed to access RCS single registration APIs as they require carrier certification on the device.

        The android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE permission when granted to an app that also has the READ_CONTACTS permission allows the app to request the RCS capabilities of phone numbers using RcsUceAdapter. For this permission to be granted, the following must be true:

        The app must be installed as a privileged app, meaning that it's preinstalled on the device and is allowed to access privileged permissions.
        The app must be defined as one of the following RoleManager roles:

        Default messaging app: Set by the user.
        Default dialer app: Set by the user.
        Default contacts app: A role introduced in Android 12 that allows the OEM to define a package name through the device overlay value config_systemContacts, which must correspond to the device's contacts app. That app is then given the contacts role.

        Default messaging app: Set by the user.
        Default dialer app: Set by the user.
        Default contacts app: A role introduced in Android 12 that allows the OEM to define a package name through the device overlay value config_systemContacts, which must correspond to the device's contacts app. That app is then given the contacts role.

        In short. Google messages expects to be a privileged app with the ability to read device identifiers and be assigned the default messaging app permission prior to first launch or it will fail. If it's notices even a slightly irregularity it will not register and you'll have to start over.

        Here's how how to get it working.

        1) Turn off your VPN. Turn off WiFi. Use Mobile data, preferably 5G so it uses 5G/LTE/GSM/WCDMA. Make sure re-route location requests is on and you're using the GrapheneOS proxy servers for SUPL and AGNSS. Don't use Google's for this process. You can after word. The latest update says location data is shared by the way, and even with the location permission on off google messages uses googles default SUPL and AGNSS servers anyways after reviewing the debug menu. So if that's a deal breaker for you I'd just use Signal . Like everyone should be anyways. But easier said then done.
        2) Make sure the system apps com.android.ims has all special permissions and basic permissions. This goes for com.shannon.rcs as well if you have it on your device. Usually this entails all files access, change system settins, display over other apps. It they both need location all the time most importantly as well. Set the battery to unrestricted.
        3) In Sandboxed Google play settings go to all services> account management > enable phone number verification. Give google play services Contacts(scope is fine), SMS, Network, sensors, display other over apps, unrestricted mobile data and battery and DCL via memory and storage set to allow. As of recently, you may also need to go to Google Settings and go to Auto fill and enable "SMS verification codes" I was getting errors in the loga during testing indicating the most recent version of Google messages is looking for VSMS(verified SMS) and auto fill. All of these can be revoked after we get RCS enabled expect for DCL via memory and storage, network and sensors.
        4) Give Google play store phone, SMS, contacts(scope) network, sensors permissions.
        5) Enable developer options. Turn on USB debugging. Make sure exploit protection for USB is set to Charging only while locked at least. In your terminal on your PC run adb devices -l thenrun

        adb shell appops set com.google.android.gms
        READ_DEVICE_IDENTIFIERS allow

        6) Install Carrier Services if your carrier supports RCS messaging. Enroll in BETA. To speed up phone number verification you can run the same command for this app:

        appops set com.google.android.ims
        READ_DEVICE_IDENTIFIERS allow

        Both of these can safely be revoked as well once RCS has been activated using deny instead of allow at the end of the command. Only revoke this once RCS is active.

        7) Enroll in Google Messages BETA install Google messages. When you get the prompt to confirm the installation, allow the network permission. Denying it immediately will cause it not to work. Once installed immediately toggle airplane mode.
        don't install it in secondary profile as it will not work for RCS unless its in the owner profile. You can later install it in a secondary profile but it will show RCS as enabled but will only send as an SMS. ( You won't see your phone # next to RCS either)*

        Do not launch messsages**

        Now go to Messages App info. Enable unrestricted battery and mobile data. Allow DCL via memory and storage. You'll get an error saying, "RCS is not available for this device" if you don't. Once you get messages working if you disable it you'll see it will even display this once RCS is activated. Toggling it back on makes it work again.
        8) Go to Settings> Apps> Default apps and set messages as the default. This will immediately give messages all permissions aside from location. Once again don't launch messages. Now disable Calls logs, Set up storage scopes and music and audio scopes if you want. It needs contacts, SMS, Network, sensors and phone to function.
        9) Launch Messages. Navigate to settings and enable RCS. Perform phone number verification. It may take up to two hours.

        10) What you want see if the logs are the lines listed below

        -RCS is available but RCS is not ready. - it's going to work be patient

        -CARRIER_SETUP_PENDING. - Carrier received your request to register.

        -Rcs is AVAILABLE for SelfIdentity. You'll want to see availability="7" - this means it's been received by your carrier. -This means it is performing VSMS or phone number verification (verified SMS). And it will activate shortly:

        RcsSettingsDataService; fetching RCS SimInfo for RcsProvisioningId redacted-pii:sim_Id[chars:20 last three: {3 digit number will be the last 3 digits of your sim card your trying to activate RCS on} - it's pulling your ICCID to create a provisioning ID (MSISDN)

        -Current Transport Chat type is : 2
        Ready: true
        -RCS is ready and it was off Trigger scheduling
        -Bugle kickOffPendingIfNowConnected
        -UPDATE_TRIGGER_CARRIER_CONFIG_CHANGED
        Scheduling WORK_TYPE_UPDATE_PHONES_SIM_STATE using PWQ.
        -Transition to verify MSISDN { you'll see a long string of characters here which is sort of like your IMSI}

        If you see anything in the logs regarding . requires device to be idle. it's in the process of setting up RCS still. plug in your device and leave it idle.

          I've had RCS working for close to 2 months now. And every time there's been an issue with it, I've always managed to find a workaround. So let me know if you need help. I do have quite a bit of knowledge on using the messages xyzzy debug menu as well. But I don't recommend doing this for most people. There is other ways to get it working through this menu but I'm not comfortable sharing them on a public forum. I can elude to how to do this....Go to messages settings>archived (not directly to the debug menu)> toggle the top right menu > go to values > carrier config. Changing Boolean values here can force registration but it's not clear, cut and dry. I'm actively working on forcing DSDS MSDR working here too but it's proven difficult. I will report back once I've found a solution for for dual sim RCS.

          DeletedUser177 didn't read it all but I think you are wrong on many points. No, it can work while connected to Wifi, it can work while connected to VPN, with exploit protections on, I didn't install the beta version of Messages, nor Carrier Services

            DeletedUser177
            Thanks for the detailed post - I went through everything listed here step by step
            I keep seeing the following throughout the log once I am activating RCS:

            RcsProvisioningManager: getSimIdFromSubId for subId: 1 returned no mapping.
            BugleSelfIdentity: Rcs is NOT_AVAILABLE for SelfIdentity. [CONTEXT sub_id=1 rcs_availability="13"

            Not entirely sure where to go from here.

            IamZorro it is long but saying you didn't read it then say I'm wrong is interesting. The mere point of not using WiFi and VPN is too reduce the amount of variables that may cause RCS to not register. I have seen people's log show"Wifi is on" and caused no Registration before. Yes you can try to perform this with wifi or VPN on but this will not work for ALL carriers. This is mean to be a more universal approach then an outlier approach. If you had a more thorough understanding of how IMS registration worked you'd see why I recommend this. Some carriers require to know your precise location for Emergency Services in order for registration to occur similar to know wifi calling works.

            • de0u replied to this.

              DeletedUser177 Yes you can try to perform this with wifi or VPN on but this will not work for ALL carriers.

              I think this is the key point. It seems clear that different carriers are (at present) requiring different verification steps. Over time maybe more of them will converge on requiring many invasive things. If so maybe that will succeed in killing RCS!