Google Messages има скрит RCS API за приложения на трети страни

Приложението Google Messages има скрит Android Messages API, който може да позволи на приложения за съобщения на трети страни да изпращат RCS съобщения.

Актуализация 2 (09.07.2021 г. @ 16:49 ET): Научихме, че този RCS API в момента не е предназначен за използване от приложения на трети страни. Щракнете тук за повече информация.

Предишни актуализации

Актуализация 1 (09.07.2021 г. в 14:53 ET): Актуализирахме статията с информация, че API може да бъде намерен само в ексклузивната за Samsung версия на приложението Google Messages. Щракнете тук за повече информация.

Прочетете още

RCS, което означава Rich Communication Services, обикновено се разглежда като наследник на SMS. Той поддържа функции като управление на групов чат, споделяне на файлове с по-високо качество, разписки за четене, индикатори за въвеждане и криптиране от край до край. За да използвате RCS протокола за чатове, той трябва да се поддържа от мрежата, операционната система на телефона и приложението за съобщения на телефона чрез API. Американските оператори се бавиха твърде дълго с приемането на RCS, така че Google ги заобиколи изцяло и добави свой собствен RCS бекенд към приложението Google Messages. Въпреки това, на Android,

само приложението Google Messages има достъп до RCS API на Android. Това може да се промени, ако Google отвори своя „Android Messages API“.

Още през 2019 г. научихме че Google работи върху добавянето на RCS API. За съжаление, API бяха скрити от разработчиците и могат да се използват само от приложения в скрит списък с разрешени - който включва приложението Google Messages. Въпреки че приложението Google Messages стана много по-добро напоследък, то все още е актуализиран с основни функции ще намерите в много други приложения за текстови съобщения за Android. Проблемът с превключването към едно от тези други приложения е, че няма да можете да изпращате съобщения през RCS, така че ще загубите всички функции, за които говорихме по-горе. Открихме обаче доказателства, че Google има непубликуван „API за Android Messages“, който позволява на всяко приложение за текстови съобщения на трета страна да изпраща SMS/MMS/RCS съобщения чрез Google Messages.

Разглобяването на APK често може да предвиди функции, които може да се появят в бъдеща актуализация на приложение, но е възможно някоя от функциите, които споменаваме тук, да не се появи в бъдеща версия. Това е така, защото тези функции в момента не са внедрени в живата компилация и могат да бъдат изтеглени по всяко време от разработчиците в бъдеща компилация.

Когато Google Messages беше пуснат днес в Google Play, декодирахме APK и открихме следните низове в неговите ресурси:

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

Тези низове ясно описват разрешение, което приложенията за съобщения на трети страни могат да поискат, за да могат да изпращат SMS, MMS или RCS съобщения чрез приложението Google Messages. Във файла с манифеста на приложението Google Messages открихме и разрешението, което приложенията за съобщения ще трябва да декларират:

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

Типът разрешение е посочен като „опасен“, което означава, че няма да бъде предоставено на искащо приложение, без да се покаже потвърждение на потребителя. Това също е намекнато в низовете, вградени по-горе, които гласят, че приложение, което притежава разрешението, може да „изпраща съобщения без никакви екстра одобрения“, което означава, че одобрението трябва да бъде дадено първоначално. Разрешението е групирано в категорията SMS, което има смисъл, тъй като е предназначено да се използва само от приложения за съобщения.

Въпреки че се надявахме да видим Google да отвори RCS API на платформата Android, потенциално има едно голямо предимство на това Google Messages да управлява маршрутизирането на съобщения. Това може да означава, че всички RCS съобщения, изпратени чрез приложение за съобщения на трета страна, ще използват услугата за чат на Google, която досега е най-широко използваната реализация на RCS от нито една от версиите на превозвачите са излетели.

Все още не сме намерили съобщение от Google за този API на Android Messages, но се надяваме да го видим скоро. Приложенията за текстови съобщения на трети страни са в неизгодно положение в момента, тъй като им липсва поддръжка за RCS, но този API ще означава, че можете да използвате любимото си приложение за текстови съобщения и да се насладите на предимствата на RCS. Разбира се, приложението за текстови съобщения на трета страна ще трябва действително да внедри новия API, но не изглежда, че ще бъде твърде трудно за прилагане.

СъобщенияРазработчик: Google LLC

Цена: Безплатно.

4.2.

Изтегли

Актуализация 1: API се намира само във версията на приложението на Samsung

Малко след като публикувахме тази статия, научихме, че низовете и записът в манифеста за Android Messages API могат да бъдат намерени само в Приложението Google Messages за телефони Samsung Galaxy. Това е същото приложение и име на пакет, но Google Play динамично пуска тази версия на приложението на телефони Samsung Galaxy. Тези записи бяха добавени преди няколко версии, така че самият API не изглежда нов. Не сме сигурни защо записите се показват само във версията на приложението за телефони Samsung, но е възможно Google създаде API, така че приложението за съобщения на Samsung да може да използва услугата за чат на Google, без потребителите да трябва да превключват приложения. Въпреки това не виждаме защо този API не може да бъде отворен за други приложения и също така все още не виждаме никакви доказателства в самото приложение Samsung Messages, че то използва този API. Надяваме се, че Google отваря API за всички приложения за съобщения на трети страни, като го включва в основната версия на приложението.


Актуализация 2: API, ограничен до приложения на Samsung

Копаем по-дълбоко в приложението Google Messages (h/t 9to5Google), открихме доказателства, че този API на Android Messages в момента е ограничен за използване от избрани приложения на Samsung. По-конкретно, изглежда, че тази функция е насочена към това да позволи на носими устройства и свързани таблети на Samsung да изпращат SMS, MMS и RCS съобщения чрез Google Messages. Това е част от функцията за непрекъснатост на разговори и съобщения на Samsung.

Текущият разрешен списък включва пакета за непрекъснатост на повикванията и съобщенията, т.е. "com.samsung.android.mdecservice", наред с други приложения. Кодът проверява името на пакета и подписа на искащото приложение, преди да предостави достъп до API. Флаг позволява на всяко приложение да има достъп до API, но тази стойност е ясно предназначена да не се използва публично. (Флагът е подходящо наречен "allow_any_app_to_connect_do_not_use_in_public_builds".)

Благодарим на PNF Software, че ни предостави лиценз за използване JEB декомпилатор, професионален инструмент за обратно инженерство за приложения за Android.