Google Messages-appen har en skjult Android Messages API, der kan lade tredjeparts beskedapps sende RCS-beskeder.
Opdatering 2 (07/09/2021 @ 16:49 ET): Vi har erfaret, at denne RCS API i øjeblikket ikke er beregnet til brug af tredjepartsapps. Klik her for mere information.
Tidligere opdateringer
Opdatering 1 (07/09/2021 @ 02:53 PM ET): Vi har opdateret artiklen med oplysninger om, at API'et kun kan findes i den Samsung-eksklusive version af Google Messages-appen. Klik her for mere information.
Læs mere
RCS, som står for Rich Communication Services, ses generelt som efterfølgeren til SMS. Det understøtter funktioner som gruppechatstyring, fildeling af højere kvalitet, læsekvitteringer, skriveindikatorer og ende-til-ende-kryptering. For at bruge RCS-protokollen til chats, skal den understøttes af netværket, telefonens OS og telefonens beskedapp gennem en API. Amerikanske luftfartsselskaber trak deres fødder for længe med at vedtage RCS, så Google omgik dem fuldstændigt og tilføjede deres egen RCS-backend til Google Messages-appen. Men på Android,
Tilbage i 2019, vi lærte at Google arbejdede på at tilføje en RCS API. Desværre blev API'erne skjult for udviklere og kan kun bruges af apps på en skjult tilladelsesliste - som inkluderer Google Messages-appen. Selvom Google Messages-appen er blevet meget bedre på det seneste, er den det stadig opdateret med grundlæggende funktioner du finder i mange andre SMS-apps til Android. Problemet med at skifte til en af de andre apps er, at du ikke vil være i stand til at sende beskeder over RCS, så du vil miste alle de funktioner, vi talte om ovenfor. Vi fandt dog beviser på, at Google har en upubliceret "Android Messages API", der lader enhver tredjeparts app til tekstbeskeder sende SMS/MMS/RCS-beskeder ved hjælp af Google Messages.
En APK-teardown kan ofte forudsige funktioner, der kan ankomme i en fremtidig opdatering af en applikation, men det er muligt, at nogen af de funktioner, vi nævner her, muligvis ikke kommer med i en fremtidig udgivelse. Dette skyldes, at disse funktioner i øjeblikket ikke er implementeret i live-builden og kan trækkes til enhver tid af udviklerne i en fremtidig build.
Da Google Beskeder blev lanceret i dag på Google Play, afkodede vi APK'en og opdagede følgende strenge i dens ressourcer:
<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 strenge beskriver tydeligt en tilladelse, som tredjeparts beskedapps kan anmode om for at kunne sende SMS-, MMS- eller RCS-beskeder via Google Messages-appen. I Google Messages-appens Manifest-fil fandt vi også tilladelsen, som beskedapps skal erklære:
<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"/>
Tilladelsestypen er angivet som "farlig", hvilket betyder, at den ikke vil blive givet til en anmodende app, uden at der vises en bekræftelse til brugeren. Dette er også antydet i strengene indlejret ovenfor, som angiver, at en app, der har tilladelsen, kan "sende beskeder uden nogen ekstra godkendelser", hvilket betyder, at godkendelse først skal gives. Tilladelsen er grupperet under SMS-kategorien, hvilket giver mening, da det kun er beregnet til at blive brugt af beskedapps.
Mens vi håbede på at se Google åbne Android-platformens RCS API, er der potentielt én stor fordel ved at have Google Messages til at håndtere meddelelsesrouting. Det kan betyde, at alle RCS-beskeder, der sendes gennem en tredjeparts-meddelelsesapp, vil bruge Googles Chat-tjeneste, som indtil videre er den mest udbredte RCS-implementering siden ingen af operatørernes versioner har taget afsted.
Vi har endnu ikke fundet en meddelelse fra Google på denne Android Messages API, men vi håber at se den snart åbnet. Tredjeparts-sms-apps er i en ulempe lige nu, da de mangler RCS-understøttelse, men denne API vil betyde, at du kan bruge din foretrukne sms-app og nyde fordelene ved RCS. Selvfølgelig skal tredjeparts-sms-app'en faktisk implementere den nye API, men det ser ikke ud til, at det bliver for svært at implementere.
Pris: Gratis.
4.2.
Opdatering 1: API findes kun i Samsung-versionen af appen
Kort efter vi havde offentliggjort denne artikel, lærte vi, at strengene og Manifest-indgangen til Android Messages API kun kan findes i Google Messages app til Samsung Galaxy-telefoner. Det er den samme app og pakkenavn, men Google Play udruller dynamisk denne version af appen til Samsung Galaxy-telefoner. Disse poster blev tilføjet for flere versioner siden, så selve API'et ser ikke ud til at være nyt. Vi er ikke sikre på, hvorfor posterne kun vises i versionen af appen til Samsung-telefoner, men det er muligt Google lavede API'en, så Samsungs Messaging-app kan bruge Googles Chat-tjeneste, uden at brugerne behøver at skifte apps. Vi kan dog ikke se, hvorfor denne API ikke kan åbnes for andre apps, og vi ser heller ikke noget bevis endnu i selve Samsung Messages-appen på, at den bruger denne API. Forhåbentlig åbner Google API'en for alle tredjeparts meddelelsesapps ved at inkludere den i hovedversionen af appen.
Opdatering 2: API begrænset til Samsung-apps
Graver dybere ned i Google Messages-appen (h/t 9to5Google), fandt vi bevis for, at denne Android Messages API i øjeblikket er begrænset til brug af udvalgte Samsung-apps. Specifikt ser det ud til, at denne funktion er rettet mod at lade Samsung wearables og tilsluttede tablets sende SMS-, MMS- og RCS-beskeder via Google Messages. Dette er en del af Samsungs Call & Message Continuity-funktion.
Den aktuelle tilladelsesliste inkluderer pakken til Call & Message Continuity, dvs. "com.samsung.android.mdecservice", blandt andre apps. Koden kontrollerer pakkenavnet og signaturen på den anmodende app, før den giver adgang til API'en. Et flag tillader enhver app at få adgang til API'en, men denne værdi er tydeligvis beregnet til ikke at blive brugt offentligt. (Flaget er passende navngivet "allow_any_app_to_connect_do_not_use_in_public_builds".)
Tak til PNF Software for at give os en licens til at bruge JEB Decompiler, et professionelt reverse engineeringværktøj til Android-applikationer.