Google が Android プライバシー サンドボックスの SDK ランタイム設計提案を詳しく説明

Google は、SDK ランタイムの設計提案についていくつかの詳細を提供しました。 SDK ランタイムは、Android プライバシー サンドボックスの一部を構成します。

最近、Apple と Google の両方が、広告に関してよりプライバシーを意識したエコシステムの構築に努めているのを目にしました。 Apple の場合は、アプリによるユーザーの追跡を防ぐボタンが導入されました。Google の場合は、 Android プライバシー サンドボックス イニシアチブ. 発表時には情報が不足していたが、広告とプライバシーに対するGoogleのソリューションの一部を包含する「SDKランタイム」に関する詳細が明らかになった。

Android プライバシー サンドボックスは、SDK ランタイムとプライバシー保護 API という 2 つの主要コンポーネントで構成されており、これらはモジュラー システム コンポーネントとして配布されます。 プロジェクトのメインライン. Google はその後、SDK ランタイムとそれがユーザーのプライバシーをさらに強化する方法に関する開発者向けドキュメントを公開しました。 同社によれば、SDK ランタイムにより、サードパーティの SDK を専用のランタイム環境で実行できるようになります。 アンドロイド13、アプリのコードから離れてください。

Android では、各アプリは独自の権限を持つサンドボックス内で実行され、付与されたアクセスに応じてシステムへのアクセスが異なります。 Google が言うように, 「アプリ A がアプリケーション B のデータを読み取ったり、許可なく電話にダイヤルしたりするなど、悪意のあることを行おうとしても、アプリ A には SDK ランタイムは、そのサンドボックスをさらに拡張して、特定のランタイム環境から離れた専用のランタイム環境でサードパーティ SDK を実行します。 アプリ。

SDK ランタイムが存在する理由

Google は、ホスト アプリのサンドボックスを共有した結果、広告主 SDK が悪意を持って (あるいは不注意で) アクセスすべきではないデータを収集することを防ぎたいと考えています。 広告 SDK がアプリ内で実行されると、アプリが実行するすべての機能にアクセスできるようになりますが、アプリ開発者は実際のアクセス量を完全には認識していない可能性があります。 その広告主コードを削除して独自のランタイムで実行すると、開発者が明示的に共有するデータにのみアクセスできるようになります。

その結果、Google は、SDK ランタイムはユーザー データの収集と共有に関して次のより強力な保護手段と保証を提供すると述べています。

  • 変更された実行環境
  • SDK に対する明確に定義された権限とデータ アクセス権

SDK ランタイムの最初のバージョンは、広告配信、広告測定、広告詐欺、不正行為検出を可能にする SDK など、広告関連の SDK にのみ焦点を当てています。

SDK ランタイムの仕組み

現在、SDK ランタイムがないと、アプリ プロセスは SDK を呼び出し、その SDK はアプリの残りのコードと同じサンドボックス内で実行されます。 Google は開発者に対し、アプリのフォアグラウンド プロセスで動作する SDK のインターフェースを提供することを望んでいます。 そして、そのインターフェイスは、SDK に接続して、特定のデータを相互に共有できます。 活用されている。

前に

「前」の図 (最初) は、SDK 呼び出しコードと、このコードからの呼び出しを受け取る SDK がすべてアプリのプロセス内に存在することを示しています。 これは、SDK がアプリがアクセスできるすべてのデータにアクセスできることを意味します。 「後」の図 (2 番目) は、アプリのフォアグラウンド プロセスで、SDK 呼び出しコードが SDK インターフェイスと通信することを示しています。 これらのインターフェイスはプロセス境界を越えて SDK ランタイム プロセスに入り、SDK 自体を呼び出します。 これは、使用されている SDK が必要なものにアクセスするだけではなく、同時に実行されるアプリからの情報のみを提供できることを意味します。

SDK のための新しい信頼できる配布モデル

現在、サードパーティの SDK を含むアプリケーションをダウンロードすると、それらの SDK は、Google Play ストアにアップロードおよび配布されるアプリに開発者によって組み込まれます。 Googleは代わりに、これらのSDKを使用するアプリを携帯電話にインストールすると、それらのSDKがダウンロードされるようにしたいと考えています 別々に アプリ自体から。 つまり、SDK 開発者は破壊的ではない変更を加えることができます (つまり、API や セマンティクス) を SDK に追加し、アプリの関与なしにデバイスに配布します。 開発者。

その結果、SDK の破壊的でない変更は、必ずしも待つ必要なくデプロイまたはロールバックできるようになります。 アプリ開発者が新しい SDK を使用してアプリを再構築するか、エンドユーザーが SDK を更新するのを待ちます。 アプリ。 API とそのセマンティクスを変更する重大な変更は、依然としてアプリ開発者によって更新される必要がありますが、SDK 開発者は最新の非破壊的変更を入手できます。 新しいバージョンでアプリとパッケージを更新するアプリ開発者に依存することなく、より多くの人が一度に変更や修正をより迅速かつ均一に行うことができます。 SDK。

前に

「以前」の図は、現在 SDK を使用してアプリがどのように配布されているかを正確に示しています。 これらはアプリにパッケージ化されており、そのアプリが Google Play ストアに送信されます。 「後」の図では、SDK 開発者は SDK をアプリに直接組み込むことはなくなります。 代わりに、SDK 開発者は SDK をアップロードして、Google Play ストアに公開します。 Google Play ストアは、SDK の依存関係とともに、エンドユーザー デバイスへのアプリの配布を処理します。 また、Google は図の中で「アプリ ストア」という表現を意図的に使用しています。これは、他のストアでも機能するオープンで汎用的なソリューションであるためです。

SDK とアプリの構築、実行、配布方法の変更

SDK ランタイムの最初の提案では、次の 5 つの主要領域にわたる一連の変更が提案されています。

  • アクセス
  • 実行
  • コミュニケーション
  • 発達
  • 分布

Google は、SDK ランタイムに対して次の一連の権限を定義したいと考えています。

  • INTERNET: Web サービスと通信できるようにするためのインターネットへのアクセス。
  • ACCESS_NETWORK_STATE:ネットワークに関する情報にアクセスします。
  • にアクセスする権限 プライバシー保護 API、アプリ間の識別子にアクセスする必要なく、コアの広告機能を提供します。 権限名はまだ最終決定されていませんが、これらの API は、アプリによるこれらの権限へのアクセスによって制限されます。
  • AD_ID: 広告 ID をリクエストする機能。 これは、アプリのこの権限へのアクセスによっても制限されます。
  • BIND_GET_INSTALL_REFERRER_SERVICE: を使用する能力 Google Play インストール リファラー API アプリのインストール元を特定します。

同社はまた、実行中のアプリのメモリに対する SDK のアクセスを制限するだけでなく、アプリが SDK 自身のデータにもアクセスできないようにしたいと考えています。 アプリはその SDK ストレージに直接アクセスできず、その逆も同様で、外部ストレージにはアクセスできません。 SDK に対してオープンであり、すべての SDK にアクセスできるストレージと、特定の SDK にプライベートなストレージの両方が存在します。 SDK。

SDK の実行方法については、アプリ自体よりもわずかに低い優先度で実行されます。 つまり、システムによってアプリを閉じる必要がある状況が発生した場合、SDK ランタイムが終了した直後にアプリが終了する可能性が非常に高くなります。 同時に終了しない場合、または別の理由がある場合は、提案は アプリ開発者がこの例外を処理し、SDK を再初期化できるように、関連するライフサイクル コールバック メソッドをアプリ開発者に提供します。 ランタイム。 ランタイム SDK は、いつでも通知 API を使用してユーザー通知を送信できなくなります。

最後に、Google は、これは一般的な提案であり、特定のアプリ ストアに固有のものではないことを指摘しています。 おそらく Google Play ストアに組み込まれる予定ですが、他のアプリ ストアでも同様の構造を組み込めない理由はありません。 Google によれば、次のような利点があることは明らかです。

  • SDK の品質と一貫性を確保します。
  • SDK 開発者向けの公開を合理化します。
  • インストールされているアプリに対する SDK マイナー バージョン アップデートのロールアウトを迅速化します。

Android プライバシー サンドボックスは有望に見える

Google のリリース タイムラインでは、2022 年の第 1 四半期に最初のデザイン提案とデザインのフィードバックと反復が含まれます。 開発者向けプレビューは年内に公開され、ベータ版は年末に公開される予定です。 最後に、2023 年には大規模なテストが開始されます。 これらのプレビューとベータ版は、Android 13 のリリース サイクルとは無関係です。 公開されたら、設定アプリにもユーザー向けのコントロールが追加される予定です。

私の意見では、Android プライバシー サンドボックス 見た目 有望ですが、会社がそれをどのように実装するかを待つ必要があります。 開発者がそれを好まない可能性や、実際には解決するよりも多くの問題を引き起こす可能性があります。 開発者は、Android のプライバシーの将来についてよりよく理解するために、Google が投稿したドキュメントを読むことをお勧めします。

これは現時点では提案であり、最終的な見通しではありません。 その通り 将来の Android バージョンで実現される予定ですが、最終的にはかなり近いものになる可能性があります。 今後の展開にも注目していきたいと思います!


ソース: Android 開発者向けドキュメント