Wiadomości Google mają ukryty interfejs API RCS dla aplikacji innych firm

Aplikacja Wiadomości Google ma ukryty interfejs API Wiadomości na Androida, który umożliwia aplikacjom innych firm wysyłanie wiadomości RCS.

Aktualizacja 2 (07.09.2021 o 16:49 ET): Dowiedzieliśmy się, że ten interfejs API RCS nie jest obecnie przeznaczony do użytku przez aplikacje innych firm. Kliknij tutaj po więcej informacji.

Poprzednie aktualizacje

Aktualizacja 1 (07.09.2021 o 14:53 ET): Zaktualizowaliśmy artykuł o informację, że API znajdziemy wyłącznie w ekskluzywnej wersji aplikacji Google Messages przeznaczonej dla Samsunga. Kliknij tutaj po więcej informacji.

Czytaj więcej

RCS, czyli Rich Communication Services, jest powszechnie postrzegany jako następca SMS-ów. Obsługuje takie funkcje, jak zarządzanie czatami grupowymi, udostępnianie plików wyższej jakości, potwierdzenia odczytu, wskaźniki pisania i kompleksowe szyfrowanie. Aby móc korzystać z protokołu RCS do rozmów, musi on być obsługiwany przez sieć, system operacyjny telefonu i aplikację do przesyłania wiadomości w telefonie za pośrednictwem interfejsu API. Amerykańscy przewoźnicy zbyt długo zwlekali z przyjęciem RCS, więc Google całkowicie ich ominął i dodał własny backend RCS do aplikacji Wiadomości Google. Jednak na Androidzie

tylko aplikacja Wiadomości Google może uzyskać dostęp do interfejsu API RCS systemu Android. Może się to zmienić, jeśli Google udostępni swój „Android Messages API”.

W 2019 r. dowiedzieliśmy się że Google pracuje nad dodaniem interfejsu API RCS. Niestety interfejsy API zostały ukryte przed programistami i mogą z nich korzystać wyłącznie aplikacje znajdujące się na ukrytej liście dozwolonych, w tym aplikacja Wiadomości Google. Chociaż aplikacja Wiadomości Google ostatnio znacznie się poprawiła, nadal jest zaktualizowany o podstawowe funkcje znajdziesz w wielu innych aplikacje do wysyłania wiadomości tekstowych na Androida. Problem z przejściem na jedną z tych innych aplikacji polega na tym, że nie będziesz mógł wysyłać wiadomości przez RCS, więc stracisz wszystkie funkcje, o których mówiliśmy powyżej. Znaleźliśmy jednak dowody na to, że Google ma niepubliczny „Android Messages API”, który umożliwia dowolnej aplikacji do obsługi wiadomości tekstowych innej firmy wysyłanie wiadomości SMS/MMS/RCS za pomocą Wiadomości Google.

Porzucenie pakietu APK często pozwala przewidzieć funkcje, które mogą pojawić się w przyszłej aktualizacji aplikacji, ale możliwe jest, że którakolwiek z funkcji, o których tutaj wspominamy, może nie zostać uwzględniona w przyszłej wersji. Dzieje się tak, ponieważ te funkcje nie są obecnie zaimplementowane w aktualnej wersji i mogą zostać pobrane przez programistów w dowolnym momencie w przyszłej wersji.

Kiedy dzisiaj w Google Play wprowadzono Wiadomości Google, zdekodowaliśmy plik APK i znaleźliśmy w jego zasobach następujące ciągi:

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

Te ciągi wyraźnie opisują uprawnienia, o które mogą prosić aplikacje do przesyłania wiadomości innych firm, aby móc wysyłać wiadomości SMS, MMS lub RCS za pośrednictwem aplikacji Wiadomości Google. W pliku manifestu aplikacji Wiadomości Google znaleźliśmy także pozwolenie, które aplikacje do przesyłania wiadomości będą musiały zadeklarować:

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

Typ uprawnienia jest oznaczony jako „niebezpieczny”, co oznacza, że ​​nie zostanie przyznany aplikacji żądającej bez wyświetlenia użytkownikowi potwierdzenia. Wskazują na to również powyższe ciągi znaków, które stwierdzają, że aplikacja posiadająca uprawnienia może „wysyłać wiadomości bez żadnych dodatkowy zatwierdzeń”, co oznacza, że ​​najpierw należy wydać zgodę. Uprawnienia są pogrupowane w kategorii SMS-ów, co ma sens, ponieważ są przeznaczone wyłącznie do użytku przez aplikacje do przesyłania wiadomości.

Choć spodziewaliśmy się, że Google udostępni interfejs API RCS platformy Android, istnieje potencjalnie jedna wielka zaleta obsługiwania routingu wiadomości przez Wiadomości Google. Może to oznaczać, że wszystkie wiadomości RCS wysyłane za pośrednictwem aplikacji do przesyłania wiadomości innej firmy będą korzystać z usługi Google Chat, która jest jak dotąd najpowszechniej stosowaną implementacją RCS od czasu żadna z wersji przewoźnika odleciały.

Nie znaleźliśmy jeszcze ogłoszenia od Google na temat interfejsu API Wiadomości dla systemu Android, ale mamy nadzieję, że wkrótce zostanie on udostępniony. Aplikacje innych firm do przesyłania wiadomości tekstowych są obecnie w niekorzystnej sytuacji, ponieważ nie obsługują RCS, ale dzięki temu interfejsowi API możesz korzystać ze swojej ulubionej aplikacji do obsługi wiadomości tekstowych i cieszyć się korzyściami, jakie daje RCS. Oczywiście aplikacja do przesyłania wiadomości tekstowych innej firmy będzie musiała faktycznie wdrożyć nowy interfejs API, ale nie wygląda na to, aby było to zbyt trudne do wdrożenia.

WiadomościDeweloper: Google spółka z ograniczoną odpowiedzialnością

Cena: za darmo.

4.2.

Pobierać

Aktualizacja 1: API dostępne tylko w wersji aplikacji Samsung

Krótko po opublikowaniu tego artykułu dowiedzieliśmy się, że ciągi znaków i wpis manifestu dla interfejsu API wiadomości Android można znaleźć tylko w Aplikacja Wiadomości Google na telefony Samsung Galaxy. To ta sama aplikacja i nazwa pakietu, ale Google Play dynamicznie udostępnia tę wersję aplikacji na telefonach Samsung Galaxy. Wpisy te zostały dodane kilka wersji temu, więc samo API nie wydaje się nowe. Nie jesteśmy pewni, dlaczego wpisy pojawiają się tylko w wersji aplikacji na telefony Samsung, ale jest to możliwe Firma Google stworzyła interfejs API, dzięki któremu aplikacja Wiadomości firmy Samsung może korzystać z usługi Czat Google bez konieczności przełączania się użytkowników aplikacje. Nie rozumiemy jednak, dlaczego tego interfejsu API nie można otworzyć dla innych aplikacji, a w samej aplikacji Samsung Messages nie widzimy jeszcze żadnych dowodów na to, że korzysta ona z tego interfejsu API. Mamy nadzieję, że Google udostępni interfejs API wszystkim aplikacjom do przesyłania wiadomości innych firm, włączając go do głównej wersji aplikacji.


Aktualizacja 2: API ograniczone do aplikacji Samsung

Zagłębiając się w aplikację Wiadomości Google (h/t 9to5Google), znaleźliśmy dowody na to, że korzystanie z tego interfejsu API Wiadomości na Androida jest obecnie ograniczone w wybranych aplikacjach firmy Samsung. W szczególności wydaje się, że ta funkcja ma na celu umożliwienie urządzeniom do noszenia i podłączonym tabletom Samsunga wysyłania wiadomości SMS, MMS i RCS za pośrednictwem Wiadomości Google. Jest to część funkcji ciągłości połączeń i wiadomości firmy Samsung.

Obecna lista dozwolonych obejmuje pakiet zapewniający ciągłość połączeń i wiadomości, tj. „com.samsung.android.mdecservice” i innymi aplikacjami. Kod sprawdza nazwę pakietu i podpis aplikacji żądającej przed udzieleniem dostępu do interfejsu API. Flaga umożliwia dowolnej aplikacji dostęp do interfejsu API, ale ta wartość wyraźnie nie jest przeznaczona do użytku publicznego. (Flaga ma trafną nazwę „allow_any_app_to_connect_do_not_use_in_public_builds”).

Dziękujemy firmie PNF Software za udostępnienie nam licencji na użytkowanie Dekompilator JEB, profesjonalne narzędzie inżynierii wstecznej dla aplikacji na Androida.