セーフティ センターの概要

このページでは、Android でのセキュリティとプライバシー設定およびセーフティ センターを通じて、設定にアクセスする方法(構造、統合、カスタマイズを含む)について説明します。

Android 13 以降では、セーフティ センターによってセキュリティとプライバシーのアイテムがセキュリティとプライバシーという 1 つのページに結合されます。セーフティ センターには、クイック設定タイルからもアクセスできます。 .

セーフティ センターには、ユーザーが特定のセキュリティとプライバシーの設定にアクセスできるよう、リダイレクト用のエントリも用意されています。セーフティ センターは、複数のソースから動的データを組み合わせることで、ユーザーがデバイスまたはアカウント上で修正できる問題も特定します。このようなデータにより、ユーザーは全般的な安全性ステータスを具体的な推奨事項とともに把握できます。

セキュリティとプライバシーの設定 セキュリティとプライバシーの設定

図 1. セーフティ センターの画面

統合要件とガイドライン

  • Android 13 および Mainline M-2022-11 以降
  • セーフティ センターを有効にするための Android フレームワーク構成ファイル:
  • サーバー側の要件(Android 13 のみ):

    • DeviceConfig フラグ safety_center_is_enabledtrue に設定されている(Android 14 からのデフォルト true)。

ガイドライン

  • セーフティ センターを実装しない GMS OEM は、config.xml ファイルのオーバーレイ可能な config_enableSafetyCenter フィールドを false に設定してオプトアウトできます(デフォルトは true)。詳細については、セーフティ センターを有効または無効にするを参照してください。
  • Android 13 で、ロック画面統合のバグを回避するには、PendingIntent についておよび PendingIntent の回避策を参照してください。Android 14 または Android 13 QPR では、この問題が修正されているため、この操作を行う必要はありません。

セーフティ センターとの統合

  1. セーフティ センターを有効にするをデバイス上で実行します。
  2. (任意)セーフティ センターの構成ファイルを変更して、データがどのように提供されるかを変更します。構成ファイルをアップデートするを参照してください。構成ファイルに対する変更は、カスタマイズの要件を満たしている必要があります。また、変更に関する厳密な制約を適用する GTS テストを通じてテストする必要があります。
  3. (任意)設定アプリを変更して、セキュリティとプライバシーエントリを追加または変更します。
  4. 安全性ソースのサポートを追加または変更して、セーフティ センターがロック画面または生体認証などのシグナルに応じて確実に動作するようにします(サポートされている場合)。これを正しく実装するには、設定アプリでの変更が必要になる場合があります。たとえば、構成ファイルで設定パッケージの名前を適切なものに変更する場合と、設定アプリでセーフティ センターのソース API を使用する場合があります。
  5. (任意)オーバーレイ テーマ、パディングなどの機能によって、セーフティ センター UI をカスタマイズします。
  6. 関連の GTS および CTS テストを実行して合格できるようにします。
  7. Android 13 では、サーバー側の許可リストに応じてデバイスのフィンガープリントを送信していることを確認します。Android 14 ではこの操作を行う必要がありません。

セーフティ センターのソース

セーフティ センターのソースはセーフティ センターにデータを提供します。一般に、ソースはデバイス上の個別のアプリによって所有されます。現在はシステムアプリのみが安全性ソースとして有効です。サードパーティ アプリは安全性ソースではありません。

以下にセーフティ センターのソースの例を示します。

  • ロック画面
  • 生体認証システム
  • セキュリティ アップデート
  • 「デバイスを探す」機能
  • Google Play プロテクト
  • Google アカウント セキュリティ チェックアップ
  • プライバシー シグナル

セーフティ センターのソースは、以下のタイプのデータを提供できます。

  • 別の画面にユーザーをリダイレクトするためのセーフティ センター UI 内のエントリ。 このエントリには、ユーザーにとってリスクがあるかどうかを表すステータスとともに、たとえば、タイトルやサマリーなどのステータスに関連付けられたその他のメタデータが示されます。
  • セーフティ センターから直接解決するか、ユーザーを別の画面にリダイレクトして解決できる警告カード(問題とも呼ばれる)。それぞれの問題には、タイトル、サマリー、ボタンラベル、アクションなどのその他のメタデータも関連付けられています。
  • データをセーフティ センターに提供しようとするときに起こり得るエラー。
  • ソースがセーフティ センターにデータを送信する理由。

構成ファイル

セーフティ センターのソースは、許可リストとして機能する構成ファイルにリストされています。このファイルでは、UI エントリごとのデフォルトのデータも用意されています。構成ファイルでは、セーフティ センターのステータスまたは問題に影響しない静的リダイレクト エントリ(静的安全性ソースとも呼ばれる)を指定できます。詳細については、構成ファイルを更新するを参照してください。

Mainline モジュール

セーフティ センターは、PermissionController Mainline モジュールの主要部分です。したがって、Google ではこの機能を、Mainline をサポートする GMS OEM デバイス向けの Mainline アップデートの一部として更新できます。

Mainline をサポートしない GMS OEM 以外のデバイスおよび GMS OEM デバイスでは、セーフティ センターを使用できます(この機能がシステム イメージに含まれている場合)。ただし、M-2022-11 以降からのコードを使用する必要があります。要件については、セーフティ センターを有効または無効にするを参照してください。

セーフティ センター API

セーフティ センター API とこのページ上のコードサンプルは Java で書かれています。ただし、Kotlin は Java との相互運用性を備えているので、Kotlin でもセーフティ センター API は使用可能です。セーフティ センターとやり取りする PermissionController システムアプリの一部は Kotlin で書かれています。

API を使用して、セーフティ センターとやり取りできます。これらの API は主に、システム API である SafetyCenterManager を通じてアクセス可能です。詳細については、セーフティ センターとやり取りするを参照してください。

インテントのアクションとエクストラ

Android 13 以降では、公開されているインテントのアクション(サードパーティ アプリからアクセス可能)は、セーフティ センターにリダイレクトするための Intent クラスで定義されています。

その他のアクションとエクストラは、SafetyCenterManager で定義されていて、たとえば、特定の問題へのリダイレクトなどが可能なシステムアプリによってのみアクセス可能です。

セーフティ センター対応 API

SafetyCenterManager は、セーフティ センターがデバイス上で有効になっているかどうかについて出力を返す API を公開します。この API は、デバイスが正しい Mainline モジュールがインストールされているかなどといったセーフティ センター要件を満たしてことを確認します。この確認を通じて、セーフティ センターが設定およびその他の場所に表示されるかどうかを特定します。また、データがセーフティ センターに提供されるかどうかを特定するためにも使用できます。セーフティ センターのオン/オフを切り替える方法については、セーフティ センターの有効化または無効化を参照してください。

セーフティ センターのソース API

セーフティ センター ソースでは、セーフティ センターのソース API を使用して、動的データをセーフティ センターに提供します。セーフティ センターのソース API は以下の機能を実行します。

  • ある特定のセーフティ センター ソースに対してデータを設定する。
  • ある特定のセーフティ センター ソースに対して設定された最新のデータセットを取得する。
  • ある特定のセーフティ センター ソースに対してエラーを報告する。

セーフティ センター ソースでは、オプトインを通じて特殊な状況でセーフティ センターにデータを送信するためのシグナルを受信できます。たとえば、セーフティ センター ページが開かれたときに最新のデータが提供されるようにします。

内部セーフティ センター API

一部のセーフティ センター API は内部的なもので、シェルおよびテストを除いて、PermissionController Mainline モジュールによってのみ使用されます。技術的理由により、これらの API 非表示にならず、SafetyCenterManager によって公開されます。

セーフティ センター API は以下の機能を実行します。

  • セーフティ センターのソースにシグナルを送信して、そのデータを更新する。
  • 構成ファイルの表現内容を取得する。
  • 結合されたデータを複数のセーフティ センター ソースから取得する。
  • データの変更に対して登録および登録解除する。
  • 警告カードを閉じる。
  • 警告カード アクションを実行する。

テスト API

SafetyCenterManager には、テストに使用するセーフティ センター テスト API が含まれています。

セーフティ センター テスト API は以下のことを実行できます。

  • セーフティ センターによって保存されたすべてのデータを消去する。
  • 構成ファイルのオーバーライドとオーバーライドの削除

シェルコマンド

Android Debug Bridge Shell(adb shell)を通じてセーフティ センターとやり取りするためのいくつかのシェルコマンドが用意されています。コマンドのリストとその実行内容を確認するには、adb shell cmd safety_center help を使用してください。

セーフティ センターのユーザー インターフェース

セーフティ センターのユーザー インターフェースは、PermissionController モジュール内の PermissionController システムアプリで定義されています。この UI は、内部セーフティ センター API で説明されている API を利用するためのアクティビティといくつかのフラグメントで構成されています。セーフティ センターによって公開されるクイック設定タイルでは、各要素のレイアウトに軽微な変更を加える場合と同じ UI コンポーネントを使用します。

このページのルック アンド フィールは、オーバーレイを使用して変更できます。詳細については、セーフティ センター UI のカスタマイズを参照してください。