Google メッセージにはサードパーティ アプリ用の隠れた RCS API があります

Google メッセージ アプリには、サードパーティのメッセージング アプリが RCS メッセージを送信できるようにする隠れた Android メッセージ API があります。

アップデート 2 (2021 年 7 月 9 日 @ 4:49 PM ET): この RCS API は現在、サードパーティ アプリによる使用を目的としていないことがわかりました。 詳細については、ここをクリックしてください。

以前の更新

アップデート 1 (2021 年 7 月 9 日 @ 02:53 PM ET): この API は Samsung 限定バージョンの Google メッセージ アプリでのみ見つかるという情報を追加して記事を更新しました。 詳細については、ここをクリックしてください。

続きを読む

RCS は Rich Communication Services の略で、一般に SMS の後継とみなされています。 グループ チャット管理、高品質のファイル共有、開封確認、入力インジケーター、エンドツーエンド暗号化などの機能をサポートしています。 チャットに RCS プロトコルを使用するには、ネットワーク、電話の OS、および電話のメッセージング アプリで API を介して RCS プロトコルがサポートされている必要があります。 アメリカの通信事業者は RCS の採用にあまりにも長い間足を引っ張ったため、Google はそれらを完全に回避し、独自の RCS バックエンドを Google メッセージ アプリに追加しました。 ただし、Android では、 のみ Google メッセージ アプリは Android の RCS API にアクセスできます。 Googleが「Android Messages API」を公開すれば状況は変わるかもしれない。

2019年に遡ると、 私たちは習った Google が RCS API の追加に取り組んでいたということです。 残念なことに、API は開発者には隠されており、Google メッセージ アプリを含む非表示の許可リストに登録されているアプリでのみ使用できます。 Google メッセージ アプリは最近かなり改善されていますが、まだ改善されていません。 基本的な機能がアップデートされました 他にもたくさんあります Android 用のテキスト メッセージ アプリ

. これらの他のアプリに切り替える場合の問題は、RCS 経由でメッセージを送信できないため、上で説明したすべての機能が失われることです。 ただし、Google には、サードパーティのテキスト メッセージング アプリが Google メッセージを使用して SMS/MMS/RCS メッセージを送信できるようにする非公開の「Android Messages API」があるという証拠が見つかりました。

APK のティアダウンでは、多くの場合、アプリケーションの将来のアップデートで追加される可能性のある機能を予測できますが、ここで言及した機能のいずれも将来のリリースには含まれない可能性があります。 これは、これらの機能が現在ライブ ビルドに実装されておらず、開発者によって将来のビルドでいつでもプルされる可能性があるためです。

本日、Google メッセージが 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>

これらの文字列は、Google メッセージ アプリを通じて SMS、MMS、または RCS メッセージを送信できるようにするためにサードパーティのメッセージング アプリがリクエストできる権限を明確に記述しています。 Google メッセージ アプリのマニフェスト ファイル内には、メッセージ アプリが宣言する必要がある権限も見つかりました。

<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 が Android プラットフォームの RCS API を公開することを期待していましたが、Google メッセージにメッセージ ルーティングを処理させることには潜在的に大きな利点が 1 つあります。 これは、サードパーティのメッセージング アプリを通じて送信されるすべての RCS メッセージが、これまでのところ最も広く使用されている RCS 実装である Google のチャット サービスを使用することを意味する可能性があります。 どのキャリアのバージョンもありません 離陸しました。

この Android Messages API に関する Google からの発表はまだ見つかりませんが、すぐに公開されることを期待しています。 サードパーティのテキスト メッセージング アプリは、RCS をサポートしていないため、現時点では不利な立場にありますが、この API により、お気に入りのテキスト メッセージング アプリを使用して RCS のメリットを享受できるようになります。 もちろん、サードパーティのテキスト メッセージング アプリは新しい API を実際に実装する必要がありますが、実装はそれほど難しいものではないようです。

メッセージ開発者: Google LLC

価格:無料。

4.2.

ダウンロード

更新 1: API は Samsung バージョンのアプリでのみ見つかります

この記事を公開した直後、Android Messages API の文字列とマニフェスト エントリは、 Samsung Galaxy 携帯電話用の Google メッセージ アプリ. これは同じアプリとパッケージ名ですが、Google Play はこのバージョンのアプリを Samsung Galaxy 携帯電話に動的に展開します。 これらのエントリは数バージョン前に追加されたものであるため、API 自体は新しいものではないようです。 なぜこのエントリが Samsung 携帯電話用のアプリのバージョンにのみ表示されるのかはわかりませんが、可能性はあります。 Google は、Samsung のメッセージング アプリがユーザーが切り替えることなく Google のチャット サービスを使用できるように API を作成しました アプリ。 ただし、この API を他のアプリに公開できない理由はわかりません。また、Samsung Messages アプリ自体でこの API が使用されているという証拠もまだ見つかりません。 願わくば、Google がアプリのメイン バージョンに API を含めることで、すべてのサードパーティ メッセージング アプリに API を開放してくれることを願っています。


更新 2: API は Samsung アプリに制限されています

Google メッセージ アプリをさらに深く掘り下げる (h/t 9to5Google)、この Android Messages API は現在、一部の Samsung アプリによる使用が制限されているという証拠を発見しました。 具体的には、この機能は、Samsung のウェアラブルや接続されたタブレットが Google メッセージを介して SMS、MMS、および RCS メッセージを送信できるようにすることを目的としているようです。 これは、Samsung の通話とメッセージの継続機能の一部です。

現在の許可リストには、通話とメッセージの継続性のパッケージが含まれています。 「com.samsung.android.mdecservice」などのアプリ。 このコードは、API へのアクセスを許可する前に、要求側アプリのパッケージ名と署名をチェックします。 フラグを使用すると、すべてのアプリが API にアクセスできますが、この値は明らかに公に使用されることを意図していません。 (フラグの名前は適切に「allow_any_app_to_connect_do_not_use_in_public_builds」です。)

使用ライセンスを提供してくださった PNF Software に感謝します JEB デコンパイラ、Android アプリケーション用のプロフェッショナル グレードのリバース エンジニアリング ツールです。