Google Messages-appen har en dold Android Messages API som kan låta tredjeparts meddelandeappar skicka RCS-meddelanden.
Uppdatering 2 (07/09/2021 @ 16:49 ET): Vi har lärt oss att detta RCS API för närvarande inte är avsett att användas av appar från tredje part. Klicka här för mer information.
Tidigare uppdateringar
Uppdatering 1 (07/09/2021 @ 02:53 PM ET): Vi har uppdaterat artikeln med information om att API: et endast kan hittas i den Samsung-exklusiva versionen av Google Messages-appen. Klicka här för mer information.
Läs mer
RCS, som står för Rich Communication Services, ses generellt som efterföljaren till SMS. Den stöder funktioner som gruppchatthantering, fildelningar av högre kvalitet, läskvitton, skrivindikatorer och end-to-end-kryptering. För att kunna använda RCS-protokollet för chattar måste det stödjas av nätverket, telefonens operativsystem och telefonens meddelandeapp via ett API. Amerikanska operatörer drog sina fötter för länge när de antog RCS, så Google kringgick dem helt och lade till sin egen RCS-backend till Google Messages-appen. Men på Android,
Tillbaka 2019, vi lärde oss att Google arbetade med att lägga till ett RCS API. Tyvärr gömdes API: erna för utvecklare och kan endast användas av appar på en dold godkännandelista - som inkluderar Google Messages-appen. Även om Google Messages-appen har blivit mycket bättre på sistone, är den fortfarande så uppdaterad med grundläggande funktioner du hittar i massor av andra SMS-appar för Android. Problemet med att byta till en av de andra apparna är att du inte kommer att kunna skicka meddelanden över RCS, så du kommer att förlora på alla funktioner vi pratade om ovan. Däremot hittade vi bevis på att Google har ett opublicerat "Android Messages API" som låter alla textmeddelandeappar från tredje part skicka SMS/MMS/RCS-meddelanden med Google Messages.
En APK-nedbrytning kan ofta förutsäga funktioner som kan komma i en framtida uppdatering av en applikation, men det är möjligt att någon av funktionerna som vi nämner här kanske inte kommer med i en framtida version. Detta beror på att dessa funktioner för närvarande inte är implementerade i livebygget och kan dras när som helst av utvecklarna i en framtida version.
När Google Messages lanserades i dag på Google Play avkodade vi APK: n och upptäckte följande strängar i dess resurser:
<stringname="external_messaging_api_description">With this permission the app will be allowed to send SMS/MMS/RCS using Android Messages. It will have an access to send messages without any extra approvals.string>
<stringname="external_messaging_api_label">Permission to send SMS/MMS/RCS messages using Android Messages APIstring>
Dessa strängar beskriver tydligt ett tillstånd som meddelandeappar från tredje part kan begära för att kunna skicka SMS-, MMS- eller RCS-meddelanden via Google Messages-appen. I Google Messages-appens Manifest-fil hittade vi också tillståndet som meddelandeappar måste deklarera:
<permissionandroid: description="@string/external_messaging_api_description"android: label="@string/external_messaging_api_label"android: name="com.google.android.apps.messaging.EXTERNAL_MESSAGING_API"android: permissionGroup="android.permission-group.SMS"android: protectionLevel="dangerous"/>
Behörighetstypen är listad som "farlig", vilket innebär att den inte kommer att beviljas till en begärande app utan att en bekräftelse visas för användaren. Detta antyds också i strängarna inbäddade ovan, som säger att en app som har behörigheten kan "skicka meddelanden utan extra godkännanden", vilket innebär att godkännande måste ges initialt. Behörigheten är grupperad under SMS-kategorin, vilket är vettigt eftersom det bara är avsett att användas av meddelandeappar.
Medan vi hoppades att se Google öppna upp Android-plattformens RCS API, finns det potentiellt en stor fördel med att Google Messages hanterar meddelandedirigering. Detta kan innebära att alla RCS-meddelanden som skickas via en meddelandeapp från tredje part kommer att använda Googles chatttjänst, som hittills är den mest använda RCS-implementeringen sedan dess ingen av operatörernas versioner har tagit fart.
Vi har inte hittat något tillkännagivande från Google om detta Android Messages API ännu, men vi hoppas att det ska öppnas snart. Tredjeparts textmeddelandeappar är i en nackdel just nu eftersom de saknar RCS-stöd, men detta API kommer att innebära att du kan använda din favoritapp för textmeddelanden och njuta av fördelarna med RCS. Naturligtvis måste textmeddelandeappen från tredje part faktiskt implementera det nya API: t, men det ser inte ut som att det kommer att bli alltför svårt att implementera.
Pris: Gratis.
4.2.
Uppdatering 1: API finns endast i Samsung-versionen av appen
Strax efter att vi publicerade den här artikeln fick vi veta att strängarna och manifestposten för Android Messages API endast kan hittas i Google Messages-appen för Samsung Galaxy-telefoner. Det är samma app- och paketnamn, men Google Play rullar dynamiskt ut den här versionen av appen till Samsung Galaxy-telefoner. Dessa poster lades till för flera versioner sedan, så själva API: et verkar inte vara nytt. Vi är inte säkra på varför posterna bara visas i versionen av appen för Samsung-telefoner, men det är möjligt Google skapade API: et så att Samsungs Messaging-app kan använda Googles Chat-tjänst utan att användarna behöver byta appar. Vi ser dock inte varför detta API inte kan öppnas för andra appar, och vi ser inte heller några bevis ännu i själva Samsung Messages-appen för att den använder detta API. Förhoppningsvis öppnar Google upp API: et för alla meddelandeappar från tredje part genom att inkludera det i huvudversionen av appen.
Uppdatering 2: API begränsat till Samsung-appar
Gräver djupare i Google Messages-appen (h/t 9to5Google), hittade vi bevis på att denna Android Messages API för närvarande är begränsad för användning av utvalda Samsung-appar. Specifikt verkar det som att den här funktionen syftar till att låta Samsung bärbara enheter och anslutna surfplattor skicka SMS, MMS och RCS-meddelanden via Google Messages. Detta är en del av Samsungs Call & Message Continuity-funktion.
Den aktuella godkännandelistan innehåller paketet för Call & Message Continuity, dvs. "com.samsung.android.mdecservice", bland andra appar. Koden kontrollerar paketnamnet och signaturen för den begärande appen innan den ger åtkomst till API: et. En flagga tillåter vilken app som helst att komma åt API: t, men detta värde är uppenbarligen avsett att inte användas offentligt. (Flaggan heter det passande namnet "allow_any_app_to_connect_do_not_use_in_public_builds".)
Tack till PNF Software för att du har gett oss en licens att använda JEB Decompiler, ett professionellt omvänd ingenjörsverktyg för Android-applikationer.