Google Messages har en skjult RCS API for tredjepartsapper

Google Messages-appen har en skjult Android Messages API som kan la tredjeparts meldingsapper sende RCS-meldinger.

Oppdatering 2 (07/09/2021 @ 16:49 ET): Vi har lært at denne RCS API for øyeblikket ikke er ment for bruk av tredjepartsapper. Klikk her for mer informasjon.

Tidligere oppdateringer

Oppdatering 1 (07/09/2021 @ 02:53 PM ET): Vi har oppdatert artikkelen med informasjon om at API-en bare finnes i den eksklusive Samsung-versjonen av Google Messages-appen. Klikk her for mer informasjon.

Les mer

RCS, som står for Rich Communication Services, blir generelt sett på som etterfølgeren til SMS. Den støtter funksjoner som gruppechatadministrasjon, fildeling av høyere kvalitet, lesebekreftelser, skriveindikatorer og ende-til-ende-kryptering. For å bruke RCS-protokollen for chatter, må den støttes av nettverket, telefonens operativsystem og telefonens meldingsapp gjennom en API. Amerikanske operatører trakk føttene for lenge med å ta i bruk RCS, så Google omgikk dem fullstendig og la til sin egen RCS-backend til Google Messages-appen. Men på Android,

bare Google Messages-appen kan få tilgang til Androids RCS API. Det kan endre seg hvis Google åpner «Android Messages API».

Tilbake i 2019, vi lærte at Google jobbet med å legge til et RCS API. Dessverre ble API-ene skjult for utviklere og kan bare brukes av apper på en skjult godkjenningsliste - som inkluderer Google Messages-appen. Selv om Google Messages-appen har blitt mye bedre i det siste, er den det fortsatt oppdatert med grunnleggende funksjoner du finner i mye annet tekstmeldingsapper for Android. Problemet med å bytte til en av de andre appene er at du ikke vil kunne sende meldinger over RCS, så du vil gå glipp av alle funksjonene vi snakket om ovenfor. Vi fant imidlertid bevis på at Google har et upublisert «Android Messages API» som lar enhver tredjeparts tekstmeldingsapp sende SMS/MMS/RCS-meldinger ved hjelp av Google Messages.

En APK-nedrettelse kan ofte forutsi funksjoner som kan komme i en fremtidig oppdatering av en applikasjon, men det er mulig at noen av funksjonene vi nevner her kanskje ikke kommer i en fremtidig utgivelse. Dette er fordi disse funksjonene for øyeblikket ikke er implementert i live-bygget og kan trekkes når som helst av utviklerne i en fremtidig build.

Da Google Messages ble lansert i dag på Google Play, dekodet vi APK-en og oppdaget følgende strenger i ressursene:

<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>

Disse strengene beskriver tydelig en tillatelse som tredjeparts meldingsapper kan be om for å kunne sende SMS-, MMS- eller RCS-meldinger gjennom Google Messages-appen. I Manifest-filen til Google Messages-appen fant vi også tillatelsen som meldingsapper må deklarere:

<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"/>

Tillatelsestypen er oppført som "farlig", noe som betyr at den ikke vil bli gitt til en app som ber om uten at en bekreftelse vises til brukeren. Dette er også antydet i strengene som er innebygd ovenfor, som sier at en app som har tillatelsen kan "sende meldinger uten noen ekstra godkjenninger", noe som antyder at godkjenning må gis først. Tillatelsen er gruppert under SMS-kategorien, noe som er fornuftig siden den kun er ment å brukes av meldingsapper.

Mens vi håpet å se Google åpne opp Android-plattformens RCS API, er det potensielt én stor fordel ved å ha Google Messages til å håndtere meldingsruting. Dette kan bety at alle RCS-meldinger som sendes gjennom en tredjeparts meldingsapp vil bruke Googles Chat-tjeneste, som så langt er den mest brukte RCS-implementeringen siden ingen av operatørenes versjoner har tatt av.

Vi har ikke funnet en kunngjøring fra Google på denne Android Messages API ennå, men vi håper å se den åpnes snart. Tredjeparts tekstmeldingsapper er i en ulempe akkurat nå siden de mangler RCS-støtte, men denne API-en vil bety at du kan bruke din favoritt tekstmeldingsapp og nyte fordelene med RCS. Selvfølgelig må tredjeparts tekstmeldingsappen faktisk implementere det nye API-et, men det ser ikke ut til at det blir for vanskelig å implementere.

MeldingerUtvikler: Google LLC

Pris: Gratis.

4.2.

nedlasting

Oppdatering 1: API bare funnet i Samsung-versjonen av appen

Kort tid etter at vi publiserte denne artikkelen, fikk vi vite at strengene og Manifest-oppføringen for Android Messages API bare finnes i Google Messages-appen for Samsung Galaxy-telefoner. Det er samme app- og pakkenavn, men Google Play ruller ut denne versjonen av appen dynamisk til Samsung Galaxy-telefoner. Disse oppføringene ble lagt til for flere versjoner siden, så selve API-en ser ikke ut til å være ny. Vi er ikke sikre på hvorfor oppføringene bare vises i versjonen av appen for Samsung-telefoner, men det er mulig Google laget API slik at Samsungs Messaging-app kan bruke Googles Chat-tjeneste uten at brukerne trenger å bytte apper. Vi ser imidlertid ikke hvorfor denne API-en ikke kan åpnes for andre apper, og vi ser heller ingen bevis ennå i selve Samsung Messages-appen for at den bruker denne API-en. Forhåpentligvis åpner Google opp API-en for alle tredjeparts meldingsapper ved å inkludere den i hovedversjonen av appen.


Oppdatering 2: API begrenset til Samsung-apper

Graver dypere inn i Google Messages-appen (h/t 9to5Google), fant vi bevis på at denne Android Messages API for øyeblikket er begrenset for bruk av utvalgte Samsung-apper. Spesielt ser det ut til at denne funksjonen er rettet mot å la Samsung bærbare og tilkoblede nettbrett sende SMS-, MMS- og RCS-meldinger gjennom Google Messages. Dette er en del av Samsungs funksjon for samtale- og meldingskontinuitet.

Gjeldende godkjenningsliste inkluderer pakken for Call & Message Continuity, dvs. "com.samsung.android.mdecservice", blant andre apper. Koden sjekker pakkenavnet og signaturen til appen som ber om før den gir tilgang til API. Et flagg lar enhver app få tilgang til API-en, men denne verdien er tydeligvis ikke ment å brukes offentlig. (Flagget heter det passende navnet "allow_any_app_to_connect_do_not_use_in_public_builds".)

Takk til PNF Software for å gi oss en lisens til bruk JEB Dekompiler, et omvendt utviklingsverktøy av profesjonell kvalitet for Android-applikasjoner.