免責条項: ポリシーの要約に記載してあるのは概要のみです。コンプライアンスを徹底するため、必ずポリシーの全文を確認してください。ポリシーの概要と全文に齟齬がある場合は、全文が優先されます
Google Play では、アプリ(またはアプリ内のサードパーティ SDK)が、ユーザーのデバイス、他のデバイス、ネットワーク、API、サービス、デバイス上の他のアプリ、Google サービス、または認定携帯通信会社のネットワークに不正にアクセスしたり干渉したりすることを禁止しています。これには、Google Play ストア外での自己更新の実行、不正な実行コードのダウンロード、セキュリティ上の脆弱性の悪用、ハッキングの促進、他のアプリに影響を与えるゲーム裏技の作成など、さまざまな有害で高リスクの行為や破壊的な行為が含まれます。最も重要なのは、ユーザーのデバイスとエコシステム全体の完全性を確保することです。コンプライアンスを徹底するため、ポリシー全体を確認してください。
ユーザーのデバイスやその他のデバイス、パソコン、サーバー、ネットワーク、アプリケーション プログラミング インターフェース(API)、サービスなど(デバイス上の他のアプリ、Google サービス、許可された携帯通信会社のネットワークを含む)を妨害、阻害、破損する、またはそれらに無断でアクセスするアプリは認められません。
Google Play に公開するアプリは、Google Play のアプリの中核品質に関するガイドラインに定めるデフォルトの Android システム最適化要件を遵守している必要があります。
Google Play で販売または配布されるアプリについては、Google Play の更新機能以外の方法によりアプリ自体の変更、差し替え、更新を行うことはできません。同様に、Google Play 以外の提供元から実行コード(dex、JAR、.so などのファイル)をダウンロードすることもできません。この制限は、Android API への間接アクセスを提供する仮想マシンまたはインタープリタ(WebView またはブラウザ内の JavaScript など)で実行されるコードには適用されません。
アプリまたはサードパーティのコード(SDK など)でインタープリタ言語(JavaScript、Python、Lua など)が実行時に読み込まれる場合(たとえば、アプリにパッケージされていない場合)、それらが Google Play ポリシーに違反する可能性があってはなりません。
セキュリティの脆弱性を組み込むまたは悪用するコードは許可されません。デベロッパーに報告された最近のセキュリティに関する問題については、アプリ セキュリティ向上プログラムをご確認ください。
デバイスやネットワークでの不正行為の一般的な違反の例
- 広告を表示して他のアプリをブロックまたは妨害するアプリ。
- 他のアプリのゲームプレイに影響を与えるようなゲームチート アプリ。
- サービス、ソフトウェア、ハードウェアのハッキング方法や、セキュリティ保護の回避方法を推進または説明するアプリ。
- サービスや API に対してその利用規約に違反する方法でアクセスまたは利用するアプリ。
- システムの電源管理を迂回しようとするアプリのうち許可リストへの登録が認められないもの。
- 第三者に対するプロキシ サービスの利用を支援するアプリのうち、その利用支援がアプリのユーザー向けの主たる基本目的ではないもの。
- Google Play 以外の提供元から実行コード(dex ファイルやネイティブ コードなど)をダウンロードするアプリまたはサードパーティのコード(例: SDK)。
- ユーザーの事前の同意なしに他のアプリをデバイスにインストールするアプリ。
- 不正なソフトウェアにリンクするアプリや、その配信やインストールを推進するアプリ。
- 信頼できないウェブ コンテンツ(http:// URL など)、または信頼できない提供元から取得された未検証の URL(信頼できないインテントで取得された URL など)を読み込む JavaScript インターフェースが追加された WebView を含むアプリまたはサードパーティのコード(例: SDK)。
- 全画面インテントの権限を使用してユーザーに混乱させる広告や通知を操作させるアプリ。
- 他のアプリからユーザーのアクションまたはユーザー ID を取得するために Android サンドボックス保護を回避するアプリ。
考慮すべきポイント
| すべきこと | すべきでないこと |
| アプリとすべての統合 SDK が、アプリの中核品質に関するガイドラインに記載されている Android システムの最適化要件を満たすようにする。 | ユーザーの明示的な同意なしに他のアプリをデバイスにインストールしない。 |
FLAG_SECURE 設定を尊重する。また、オンデバイス コンテナでは REQUIRE_SECURE_ENV を尊重する。 |
第三者に対するプロキシ サービスの利用を促進しない(ただし、それがアプリにおけるユーザー向けの主要な目的である場合を除く)。 |
| ユーザーが開始するデータ転送ジョブは、ユーザーが開始するネットワーク データ転送を必要な間だけ実行する目的でのみ使用する。 | Google Play 以外の提供元(VM / インタープリタ内を除く)から実行コード(dex や .so などのファイル)をダウンロードするサードパーティの SDK をアプリで使用しない。 |
| デベロッパーに報告された最近のセキュリティに関する問題について、アプリ セキュリティ向上プログラムを確認する。 | 要件を満たさない限り、システムの電源管理を迂回しない。 |
| フォアグラウンド サービスに関するポリシーを遵守する。 | 広告を表示して他のアプリをブロックまたは妨害しない。 |
混乱させる広告や通知を表示してユーザーに操作させるために FULL-SCREEN INTENT 権限を使用しない。 |
フォアグラウンド サービスの権限
フォアグラウンド サービス権限に関するポリシーにより、ユーザーに対する透明性、プライバシー、最適なデバイス パフォーマンスが確保されます。Android 14 以降をターゲットとするアプリの場合、マニフェストと Google Play Console で有効なフォアグラウンド サービス(FGS)タイプを宣言して説明し、ユーザーへの影響や、ユーザーが開始した認識可能なアクションに基づいて FGS の使用が正当であることを示すデモ動画を提供する必要があります。コンプライアンスを徹底するため、ポリシー全体を確認してください。
フォアグラウンド サービス権限は、ユーザー向けのフォアグラウンド サービスが適切に使用されるようにするためのものです。Android 14 以降を対象とするアプリの場合、アプリで使用されるフォアグラウンド サービスごとに有効なタイプを指定し、そのタイプに適したフォアグラウンド サービス権限を宣言する必要があります。たとえば、アプリのユースケースで地図の位置情報が必要な場合は、アプリのマニフェストで FOREGROUND_SERVICE_LOCATION 権限を宣言しなければなりません。
フォアグラウンド サービス権限を宣言するには、以下のすべての要件を満たしている必要があります。
- ユーザーにとって有益な、アプリのコア機能に関連する機能を提供するために使用する
- ユーザーによって開始されたか、ユーザーが認識できる(例: 曲の再生、別のデバイスへのメディアのキャスト、正確で明確なユーザー通知、ユーザーによるクラウドへの写真のアップロード要求)
- ユーザーが終了および停止できる
- システムによって中断または延期できるのは、ユーザー エクスペリエンスに悪影響を及ぼす場合や、ユーザーの想定どおりに機能しない場合のみである(たとえば、電話は直ちに発信する必要があり、システムによって延期することはできない)
- タスクの完了に必要な間だけ実行する
以下のユースケースでフォアグラウンド サービスを使用する場合は、上記の要件は適用されません。
- フォアグラウンド サービスのタイプが systemExempted または shortService である
- dataSync タイプのフォアグラウンド サービスを Play Asset Delivery 機能でのみ使用する
フォアグラウンド サービスの使用について詳しくは、こちらをご覧ください。
考慮すべきポイント
| すべきこと | すべきでないこと |
| タスクの完了に必要な間だけ FGS を実行する。 | タスクのシステム管理がアプリのユーザー エクスペリエンスを損なっていない場合は、FGS を使用しない(WorkManager などの代替策を検討してください)。 |
| FGS がユーザーによって開始され、ユーザーにとって有益なコアアプリ機能を提供していること、および FGS の開始を通知で表示するかユーザーが認識できるようにしていることを確認する(例: 曲の再生中は音声で通知する)。 | アプリのマニフェストで無効または不正確な FGS タイプを宣言しない。 |
| ターゲットが Android 14 以上の場合は Google Play Console で申告フォームを送信し、使用するフォアグラウンド サービス(FGS)権限ごとにユースケースを記述する。その際、適切な FGS タイプを選択する。 |
ユーザーが開始したデータ転送ジョブ
ユーザーによる制御を維持し、バックグラウンドでアクティビティが長時間実行されないようにするため、Google Play では、ユーザーが開始するデータ転送ジョブ API を使用するアプリに対して厳格なガイドラインを定めています。データ転送はユーザーが直接起動する必要があり、アプリは勝手に転送を開始するのではなく、コマンドを実行する必要があります。以下の転送はネットワーク データ転送タスク専用であり、要求されたアクションを完了するために必要な期間のみ動作する必要があります。コンプライアンスを徹底するため、ポリシーの全文を確認してください。
アプリは、次の場合にのみ、user-initiated data transfer jobs API を使用できます。
- ユーザーによって開始された場合
- ネットワークのデータ転送タスクに使用する場合
- データ転送を完了するために必要な期間だけ実行される場合
User-Initiated Data Transfer API の利用について詳しくは、こちらをご覧ください。
考慮すべきポイント
| すべきこと | すべきでないこと |
| 転送はユーザー アクションで開始する。 | 転送を自動的に開始しない。 |
| ネットワーク データ転送タスクにのみ使用する。 | ネットワーク以外のタスクには API を使用しない。 |
| 転送が完了したら停止する。 | 必要以上に長時間実行しない。 |
FLAG_SECURE の要件
FLAG_SECURE は、アプリで宣言される表示関連のフラグで、UI に含まれるセンシティブ データが安全なサーフェスにのみ表示されるよう制限することを示し、こうしたデータがスクリーンショットや安全でないディスプレイで閲覧 / キャプチャされたりするのを防ぐためのフラグです。コンテンツがアプリやデバイスの外部にブロードキャストされたり、外部で閲覧されたりできないようにする場合にこのフラグを使用してください。セキュリティとプライバシーを確保するため、Google Play ではすべてのアプリが他のアプリの FLAG_SECURE 宣言を尊重する必要があり、宣言を回避してはなりません。コンプライアンスを徹底するため、ポリシーの全文を確認してください。
FLAG_SECURE は、アプリのコードで宣言される表示関連のフラグです。アプリの使用中、UI に含まれるセンシティブ データの表示場所をセキュアなサーフェスに限定することを示せます。このフラグは、センシティブ データがスクリーンショットに表示されたり、セキュアでないディスプレイで閲覧されたりするのを防ぐために設計されています。デベロッパーは、アプリのコンテンツがアプリやユーザーのデバイスの外部で閲覧されたり、外部にブロードキャストまたは送信されたりできないようにする場合に、このフラグを宣言します。
セキュリティおよびプライバシー保護のため、Google Play で配信されるすべてのアプリが、他のアプリの FLAG_SECURE 宣言を尊重しなければなりません。つまり、他のアプリでの FLAG_SECURE の設定を回避する手段を作成または促進してはいけません。
ユーザー補助ツールとして認められるアプリは、FLAG_SECURE で保護されたコンテンツをユーザーのデバイスの外部でアクセスするために転送、保存、またはキャッシュに保存しない限り、この要件の対象外となります。 考慮すべきポイント
| すべきこと | すべきでないこと |
キャプチャから保護する必要がある UI 内のセンシティブ データに対して、FLAG_SECURE を宣言する。 |
他のアプリの |
セキュリティとプライバシーのために、他のアプリの FLAG_SECURE 宣言を尊重する。 |
ユーザー補助ツールであっても、FLAG_SECURE で保護されたコンテンツをデバイスの外部に送信、保存、またはキャッシュしない。 |
デバイス上で Android コンテナを実行するアプリ
デベロッパーは、セキュリティとプライバシーに関する問題が発生しないように、オンデバイス Android コンテナアプリに Android OS のセキュリティ機能がすべて備わっていない場合、アプリ マニフェストで「REQUIRE_SECURE_ENV」フラグを使用できます。このフラグは、アプリがシミュレーション環境では実行されないことを示します。該当のコンテナを提供するアプリは、このフラグを尊重し、このフラグが宣言されているアプリを読み込まないようにする必要があります。このセキュリティ対策を回避することは禁止されています。コンプライアンスを徹底するため、ポリシーの全文を確認してください。
オンデバイスの Android コンテナアプリは、基盤となる Android OS の全体、または一部をシミュレートする環境を提供します。この環境では、すべての Android セキュリティ機能が反映されない場合があります。このため、自身のアプリを他のシミュレートされた Android 環境で操作してはならない旨をオンデバイスの Android コンテナアプリに明示するため、デベロッパーは安全な環境に関するマニフェスト フラグを追加できるようになっています。
安全な環境に関するマニフェスト フラグ
- このフラグについて、オンデバイスの Android コンテナで読み込む予定のアプリのマニフェストを確認します。
- このフラグを宣言したアプリはオンデバイスの Android コンテナアプリで読み込まないでください。
- アプリがコンテナにインストールされていると表示させるために、デバイスで API をインターセプトしたり呼び出したりすることでプロキシとして機能させないでください。
- フラグを迂回しやすくしたり、フラグを迂回するための回避策を作成したりしないでください(現在のアプリの REQUIRE_SECURE_ENV フラグを迂回するために古いバージョンのアプリを読み込むなど)。
考慮すべきポイント
| すべきこと | すべきでないこと |
オンデバイス コンテナを提供するアプリでは、他のアプリのマニフェスト内の REQUIRE_SECURE_ENV フラグを必ずチェックし、フラグを追加しているアプリを読み込まない。 |
フラグを無視しない(REQUIRE_SECURE_ENV フラグを宣言しているアプリはコンテナに読み込めません)。 |
| 回避策を取ることを避ける(アプリの以前のバージョンを読み込むなど、フラグを回避する行為は禁止されています)。 | セキュリティ対策を迂回しない。アプリのセキュリティ設定をオーバーライドする回避策を作成してはいけません。 |
| API のプロキシ処理を避ける(コンテナ外の API をインターセプトしたり呼び出したりしてプロキシとして機能させないでください)。 | アプリが安全な環境で実行されていない場合に、そのように見せかけない。 |
| オンデバイス Android コンテナに関するポリシーの要件を確認する。 |