You are wrong.
This is how RCS works (
oversimplification)
Carriers implement their own RCS or just use the standard Universal Profile;
US carriers have decided to default to use Google's implementation as of 2022 but also support Universal Profile. (2020
outdated list)
The carriers connect to RCS Interconnect Hubs just like how SMS and MMS have interconnected hubs, that is how you are able to receive text messages from people on different network operators. Major SMS/MMS Hub operators like GMS,
Mavenir, etc, also have RCS Hubs.
3rd Party Hubs operated by different companies connect with one another and client messaging apps connect to the hub. This is where Google comes in the picture.
Google's Jibe Hub connects to and works with every other Hub. You don't need to use Google's implementation of RCS to work with Google, they also support RCS Universal Profile.
Wrong again
This is how Apple will support RCS.
Apple Message App with RCS Universal Profile - Apple's or 3rd-Party IMS - Apple's or 3rd Party RCS Hub which connects to any 3rd-Party or Jibe Hub.
As long as you connect to one hub then you are automatically connected to every hub that is connected in the RCS network, the same way SMS works. You do not need to connect to Google's Jibe hub directly. Any feature added to the Universal Profile will be supported.
At no point does Google need to provide Apple with APIs or Touch iOS for Apple to support RCS.
Apple can implement RCS. You are right about one thing, only Google - Google messages support e2e encryption which is the only feature Google has that Universal profile does not. But it's a matter of time before the Universal Profile gets updated to support e2e encryption.
It's not a matter of if but when.
Apple has engaged the GSMA about implementing RCS dating far back to 2019, but they sure are dragging their feet. I could speculate and say perhaps apple is waiting for e2e encryption to be added before they implement it but that's just my speculation.
The last bullet is funny because that is exactly what google is trying to do.