Додаток Google Messages має прихований Android Messages API, який може дозволити стороннім програмам обміну повідомленнями надсилати повідомлення RCS.
Оновлення 2 (09.07.2021 о 16:49 за східним часом): Ми дізналися, що цей RCS API наразі не призначений для використання програмами сторонніх розробників. Натисніть тут для отримання додаткової інформації.
Попередні оновлення
Оновлення 1 (09.07.2021 о 14:53 за східним часом): Ми оновили статтю, додавши інформацію про те, що API можна знайти лише в ексклюзивній версії програми Google Messages для Samsung. Натисніть тут для отримання додаткової інформації.
читати далі
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 має неоприлюднений «Android Messages API», який дозволяє будь-якому сторонньому додатку для текстових повідомлень надсилати 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 щодо цього Android Messages API, але сподіваємося незабаром його відкрити. Програми для обміну текстовими повідомленнями сторонніх розробників зараз знаходяться в невигідному становищі, оскільки вони не підтримують RCS, але цей API означає, що ви можете використовувати свою улюблену програму для обміну текстовими повідомленнями та користуватися перевагами RCS. Звичайно, стороння програма обміну текстовими повідомленнями повинна буде фактично впровадити новий API, але не схоже, що це буде надто складно реалізувати.
Ціна: безкоштовно.
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 Call & Message Continuity.
Поточний білий список включає пакет безперервності викликів і повідомлень, тобто. "com.samsung.android.mdecservice", серед інших програм. Перш ніж надати доступ до API, код перевіряє назву пакета та підпис додатка, який запитує. Прапор дозволяє будь-якій програмі отримувати доступ до API, але це значення явно не призначене для публічного використання. (Прапорець має влучну назву «allow_any_app_to_connect_do_not_use_in_public_builds».)
Дякуємо PNF Software за надання нам ліцензії на використання Декомпілятор JEB, професійний інструмент зворотного проектування для програм Android.