Android 16 互換性定義 - 変更のみ

最終更新日: 2025 年 12 月 2 日

2. デバイスタイプ

2.2. ハンドヘルドの要件

2.2.1. ハードウェア

Android 16 で追加された要件の開始

(32 ビット ABI の有無にかかわらず)64 ビット ABI のサポートを宣言し、ActivityManager.isLowRamDevice()false を返す場合、ハンドヘルド デバイス実装は:

  • [7.1.4.2/H-2-1] Vulkan 1.1 をサポートしなければなりません。

2.2.3. ソフトウェア

Android 16 で追加された要件の開始

アプリのライブ情報通知は、アプリがプロモーションの特性をすべて満たしている場合にプロモートできます。このドキュメントでは、このような通知のことをプロモートされたライブ更新通知と呼びます。ハンドヘルド デバイス実装は、次の要件に従ってプロモートされたライブ情報通知を目立つように表示しなければなりません。

API レベル 36.1 以上を宣言する場合、ハンドヘルド デバイス実装は:

  • [3.8.3.1/H-0-1] プロモートされたライブ情報通知をロック画面の目立つ場所に表示しなければなりません。

  • [3.8.3.1/H-0-12] プロモートされたライブ情報通知が他の通知とともに表示される場合は、通知スタックのヘッドアップ通知の一番上、および色付き通知(setColorizedtrue の場合)の上に表示しなければなりません。

    • 複数のアプリがプロモートされたライブ情報通知の対象となる場合、通知シェードとロック画面内に表示するプロモートされたライブ情報通知の順序を決定しても構いません。
  • [3.8.3.1/H-0-2] プロモートされたライブ情報通知を開いた状態で表示しなければなりません。

  • [3.8.3.1/H-0-3] 上記の開かれた通知を閉じるためのユーザー アフォーダンスを提供してはなりません。

  • [3.8.3.1/H-0-4] プロモートされたライブ情報通知では、StyleSpan または UnderlineSpan で提供されるとおり、テキスト コンテンツの基本スタイル(太字、斜体、下線)を表示しなければなりません。

  • [3.8.3.1/H-0-5] プロモートされたライブ情報通知には、標準アクション オブジェクトのみを(Notification.Action を介して)表示し、入力ボックス、返信ボタン、コンテキスト アクションなどの標準以外のアクション オブジェクトを(addRemoteInput()setContextual() を介して)非表示にしなければなりません。通知に標準以外のアクション オブジェクトが含まれている場合も同様です。

  • [3.8.3.1/H-0-6] Notification.getSmallIcon() を含まなければならないプロモートされたライブ情報通知については(SDK ドキュメントではステータス チップと呼ばれる)コンパクトな表現を表示しなければなりません。

    • [3.8.3.1/H-0-7] 他のフィールドはコンパクトな表現では省略可能ですが、コンパクトな表現を開くことが可能な場合は必ず、Notification.getShortCriticalText() が存在する場合はそれを、Notification.getShortCriticalText が存在しない場合は Notification.when を表示しなければなりません。

    • [3.8.3.1/H-0-8] プロモートされたライブ表示通知が複数ある場合は、そのうちの少なくとも 1 つをステータスバーにコンパクトな表現として表示しなければなりません。

    • [3.8.3.1/H-0-9] ユーザーがコンパクトな表現をタップしたときに、関連付けられた通知を表示するか(推奨)、関連付けられたアプリを(Notification.contentIntent を介して)開かなければなりません。

    • [3.8.3.1/H-0-13] 関連付けられた通知には、通知シェードで利用可能なものと同じコンテンツをすべて表示しなければなりません。

  • [3.8.3.1/H-0-10] 個々のアプリの通知のプロモートされた表示を無効または有効にするユーザー アフォーダンスを提供しなければなりません。

  • [3.8.3.1/H-0-11] すべてのライブ情報通知を正しく表示しなければなりません。これには、プロモーション特性を満たしていない、または一部しか満たしていない、プロモート対象外のライブ情報通知も含まれます(ただし、これらに限定されません)。このようなプロモート対象外の通知は、プロモート対象外の状態で表示しなければなりません。

2.2.5. セキュリティ モデル

Android 16 で削除された要件の開始

android.hardware.telephony のサポートを宣言する場合、デバイス実装は:

  • [9.5/H-1-1] UserManager.isHeadlessSystemUserModetrue に設定してはなりません。

Android 16 で削除された要件の開始

UserManager.isHeadlessSystemUserModetrue に設定している場合、ハンドヘルド デバイス実装は:

  • [9.5/H-4-1] eUICC のサポート、または通話機能のある eSIM のサポートを含めてはなりません。
  • [9.5/H-4-2] android.hardware.telephony のサポートを宣言してはなりません。

2.5. 自動車の要件

2.5.1. ハードウェア

自動車デバイス実装は:

Android 16 で追加された要件の開始

  • [7.1.1.1/A-0-3] グラフィック バッファが内蔵ディスプレイの最高解像度と同程度以上である GPU 合成をサポートしなければなりません。

Android 16 で追加された要件の開始

Vulkan のサポートが含まれる場合、自動車デバイス実装は:

Android 16 で追加された要件の開始

Configuration.isScreenHdr() を通じてハイ ダイナミック レンジ表示のサポートを主張する場合、自動車デバイス実装は:

  • [7.1.4.5/A-1-1] 拡張機能 EGL_EXT_gl_colorspace_bt2020_pqEGL_EXT_surface_SMPTE2086_metadataEGL_EXT_surface_CTA861_3_metadataVK_EXT_swapchain_colorspaceVK_EXT_hdr_metadata のサポートをアドバタイズしなければなりません。

Android 16 で追加された要件の開始

自動車デバイス実装は:

  • [7.1.4.6/A-0-1] システム プロパティ graphics.gpu.profiler.support を介して、デバイスが GPU プロファイリングをサポートしているかどうかをレポートしなければなりません。

システム プロパティ graphics.gpu.profiler.support を介してサポートを宣言する場合、自動車デバイス実装は:

Android 16 で追加された要件の開始

自動車デバイス実装は:

  • [7.1.5/A-0-1] アップストリームの Android オープンソース コードで実装されたレガシーアプリ互換モードのサポートを含まなければなりません。つまり、デバイス実装は、互換モードが有効になるトリガーまたはしきい値を変更してはなりません。また、互換モード自体の動作を変更してはなりません。

Android 16 で追加された要件の開始

ペリフェラル モードで動作するコントローラを備えた USB ポートを含む場合、自動車デバイス実装は:

  • [7.7.1/A-1-1] Android Open Accessory(AOA)API を実装しなければなりません。

Android 16 で追加された要件の開始

ホストモードをサポートする USB ポートが含まれる場合、自動車デバイス実装は:

Android 16 で追加された要件の開始

USB 周辺機器が接続されている間に API AudioManager.getDevices() が呼び出された場合:

  • [7.8.2.2/A-1-1] USB オーディオ端子タイプのフィールドが 0x0302 であれば、タイプ AudioDeviceInfo.TYPE_USB_HEADSET、ロール isSink() のデバイスをリストしなければなりません。

  • [7.8.2.2/A-1-2] USB オーディオ端子タイプのフィールドが 0x0402 であれば、タイプ AudioDeviceInfo.TYPE_USB_HEADSET、ロール isSink() のデバイスをリストしなければなりません。

  • [7.8.2.2/A-1-3] USB オーディオ端子タイプのフィールドが 0x0603 であれば、タイプ AudioDeviceInfo.TYPE_USB_HEADSET、ロール isSink() のデバイスをリストしなければなりません。

  • [7.8.2.2/A-1-4] USB オーディオ端子タイプのフィールドが 0x0400 であれば、タイプ AudioDeviceInfo.TYPE_USB_HEADSET、ロール isSink() のデバイスをリストしなければなりません。

2.5.3. ソフトウェア

自動車デバイス実装は:

Android 16 で追加された要件の開始

Android 16 で追加された要件の開始

アクティビティの埋め込みを使用して、自動車デバイス実装の設定アプリに分割機能を実装する場合、デバイス実装は:

Android 16 で追加された要件の開始

ユーザーが任意の種類の通話をできるようにする場合、自動車デバイス実装は:

2.5.4. パフォーマンスと電力

Android 16 で追加された要件の開始

  • [8.1/A-0-1] 一貫したフレーム レイテンシ。一貫性のないフレーム レイテンシ、またはフレームのレンダリングの遅延は、1 秒間に 5 フレームを超えて発生してはならず、1 秒間に 1 フレーム未満であるべきです。

  • [8.1/A-0-2] ユーザー インターフェースのレイテンシ。デバイス実装は、Android 互換性テストスイート(CTS)で定義された 10,000 リストエントリのリストを 36 秒未満でスクロールすることで、低レイテンシのユーザー エクスペリエンスを実現しなければなりません。

  • [8.1/A-0-3] タスクの切り替え。複数のアプリが起動されている場合、起動後に実行中のアプリを再起動するまでにかかる時間は 1 秒未満でなければなりません。

自動車デバイス実装は:

Android 16 で追加された要件の開始

  • [8.2/A-0-2] 少なくとも 5 MB/s のシーケンシャル書き込みパフォーマンスを実現しなければなりません。

  • [8.2/A-0-3] 少なくとも 0.5 MB/s のランダム書き込みパフォーマンスを実現しなければなりません。

  • [8.2/A-0-4] 少なくとも 15 MB/s のシーケンシャル読み取りパフォーマンスを実現しなければなりません。

  • [8.2/A-0-5] 少なくとも 3.5 MB/s のランダム読み取りパフォーマンスを実現しなければなりません。

Android 16 で追加された要件の開始

android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS について android.os.Build.VERSION_CODES.U を返す場合、自動車デバイス実装は:

  • [8.2/A-1-1] 少なくとも 150 MB/s のシーケンシャル書き込みパフォーマンスを実現しなければなりません。

  • [8.2/A-1-2] 少なくとも 10 MB/s のランダム書き込みパフォーマンスを実現しなければなりません。

  • [8.2/A-1-3] 少なくとも 250 MB/s のシーケンシャル読み取りパフォーマンスを実現しなければなりません。

  • [8.2/A-1-4] 少なくとも 100 MB/s のランダム読み取りパフォーマンスを実現しなければなりません。

  • [8.2/A-1-5] 少なくとも 50 MB/s の並列シーケンシャル読み取り / 書き込みパフォーマンス(2 つの読み取りと 1 つの書き込み)を実現しなければなりません。

2.5.5. セキュリティ モデル

複数ユーザーをサポートする場合、自動車デバイス実装は:

Android 16 で追加された要件の開始

システム API VisualQueryDetectionService、または、マイクやカメラへのアクセスを示さないクエリ検出の別のメカニズムをサポートする場合、自動車デバイス実装は:

  • [9.8/A-1-1] クエリ検出サービスがデータを送信できる対象を、システム、ContentCaptureService、またはデバイス上の音声認識サービス(SpeechRecognizer#createOnDeviceSpeechRecognizer()によって作成されるサービス)に限定しなければなりません。

  • [9.8/A-3-2] ContentCaptureService またはデバイス上の音声認識サービスを除き、音声情報または動画情報を VisualQueryDetectionService から送信できるようにしてはなりません。

  • [9.8/A-3-3] デジタル アシスタント アプリを使用しようとするユーザーの意図をデバイスが検出したとき(カメラを介してユーザーの存在を検出したときなど)は、システム UI にユーザー通知を表示しなければなりません。

  • [9.8/A-1-4] ユーザークエリが検出された直後に、マイク インジケーターを表示し、検出されたユーザークエリを UI に表示しなければなりません。

  • [9.8/A-1-5] ユーザーがインストール可能なアプリが、ビジュアル クエリ検出サービスを提供できるようにしてはなりません。

3. ソフトウェア

3.4. ウェブの互換性

3.4.1. WebView の互換性

android.webkit.Webview API の完全な実装を提供する場合、デバイス実装は:

Android 16 で変更された要件の開始

  • [C-1-3] SDK レベル 35 以下をターゲットとするアプリの WebView がレポートするユーザー エージェント文字列は、次の形式でなければなりません。

    Mozilla/5.0 (Linux; Android $(VERSION); \[$(MODEL)\] \[Build/$(BUILD)\]; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 $(CHROMIUM_VER) Mobile Safari/537.36

    • $(VERSION) 文字列の値は、android.os.Build.VERSION.RELEASE の値と同じでなければなりません。

    • $(MODEL) 文字列は空にしても構いませんが、空でない場合は、値が android.os.Build.MODEL と同じでなければなりません。

    • 「Build/$(BUILD)」は省略しても構いませんが、存在する場合、$(BUILD) 文字列は android.os.Build.ID の値と同じでなければなりません。

    • $(CHROMIUM_VER) 文字列の値は、アップストリームの Android オープンソース プロジェクトの Chromium バージョンでなければなりません。

    • デバイス実装は、ユーザー エージェント文字列で Mobile を省略しても構いません。

Android 16 で変更された要件の開始

3.8. ユーザー インターフェースの互換性

3.8.14. マルチウィンドウ

Android 16 で削除された要件の開始

  • [C-1-2] こちらの SDK に記載されているとおり、AndroidManifest.xml ファイル内の、アプリによって設定された android:resizeableActivity を使用しなければなりません。

3.9. デバイス管理

3.9.1. デバイスのプロビジョニング

3.9.1.2. 管理対象プロファイルのプロビジョニング

android.software.managed_users を宣言する場合、デバイス実装は:

Android 16 で変更された要件の開始

3.9.4. デバイス ポリシー管理ロールの要件

Android 16 で変更された要件の開始

android.software.device_adminまたは android.software.managed_users を宣言する場合、デバイス実装は:

  • [C-1-1] セクション 9.1 で定義されているとおり、デバイス ポリシー管理のロールをサポートしなければなりません。デバイス ポリシー管理ロールを保持するアプリは、config_devicePolicyManagement をパッケージ名に設定することで定義しても構いません。アプリがプリロードされていない限り、パッケージ名の後にコロン(:)と署名証明書を付けなければなりません。

3.9.5. デバイス ポリシー解決フレームワーク

Android 16 で変更された要件の開始

android.software.device_adminまたは android.software.managed_users を宣言する場合、デバイス実装は:

3.18. 連絡先

Android 16 で変更された要件の開始

カスタム ローカル アカウント: デバイスにのみ保存され、AccountManager のアカウントに関連付けられていない未加工連絡先のアカウントであって、ACCOUNT_NAME 列と ACCOUNT_TYPE 列の両方少なくとも 1 つの非 null 値で作成されるもの。

デバイス実装がカスタム ローカル アカウントを使用する場合:

Android 16 で変更された要件の開始

  • [C-1-3] デフォルト ローカル アカウントでサードパーティ アプリによって挿入される(ACCOUNT_NAMEACCOUNT_TYPE に null 値を設定することで挿入される)未加工連絡先は、カスタム ローカル アカウントに挿入されなければなりません。

  • [C-1-3] アカウントの指定なしでサードパーティ アプリによって挿入される未加工連絡先は、デバイスのデフォルトの連絡先アカウントに挿入されなければなりません。デフォルトの連絡先アカウントが DEFAULT_ACCOUNT_STATE_LOCAL または DEFAULT_ACCOUNT_STATE_NOT_SET である場合、これらの未加工連絡先はカスタム ローカル アカウントに保存されなければなりません。

5. マルチメディアの互換性

5.1. メディア コーデック

5.1.3. オーディオ コーデックの詳細

Android 16 で変更された要件の開始
形式 / コーデック 詳細 サポートされるファイル形式 / コンテナ形式
G.711 μ-law および A-law 8 kHz でサンプリングしたモノラル / ステレオ / 5.1 コンテンツをサポート
  • WAVE(.wav)
MPEG-4 AAC プロファイル
(AAC LC)
標準サンプリング レート 8~48 kHz のモノラル / ステレオ / 5.0 / 5.1 コンテンツをサポート。
  • 3GPP(.3gp)
  • MPEG-4(.mp4、.m4a)
  • ADTS raw AAC(.aac、ADIF 非対応)
  • MPEG-TS(.ts、シーク不可、デコードのみ)
  • Matroska(.mkv、デコードのみ)
MPEG-4 HE AAC プロファイル(AAC+) 標準サンプリング レート 16~48 kHz のモノラル / ステレオ / 5.0 / 5.1 コンテンツをサポート。
  • 3GPP(.3gp)
  • MPEG-4(.mp4、.m4a)
MPEG-4 HE AACv2
プロファイル(Enhanced AAC+)
標準サンプリング レート 16~48 kHz のモノラル / ステレオ / 5.0 / 5.1 コンテンツをサポート。
  • 3GPP(.3gp)
  • MPEG-4(.mp4、.m4a)
AAC-ELD(Enhanced Low Delay AAC) 標準サンプリング レート 16~48 kHz のモノラル / ステレオ コンテンツをサポート。
  • 3GPP(.3gp)
  • MPEG-4(.mp4、.m4a)
USAC 標準サンプリング レート 16~48 kHz のモノラル / ステレオ / 5.0 / 5.1 コンテンツをサポート。 MPEG-4(.mp4、.m4a)
AMR-NB 8 kHz でサンプリングされた 4.75~12.2 kbps 3GPP(.3gp)
AMR-WB 16 kHz でサンプリングされた、6.60 kbit/s~23.85 kbit/s の 9 種類のレート(AMR-WB、Adaptive Multi-Rate - Wideband Speech Codec で定義) 3GPP(.3gp)
FLAC エンコーダとデコーダの両方について: 少なくともモノラルモードとステレオモードをサポートしなければなりません。192 kHz までのサンプルレートをサポートしなければなりません。16 ビットと 24 ビットの解像度をサポートしなければなりません。FLAC 24 ビット オーディオ データ処理が浮動小数点オーディオ構成で利用できなければなりません。
  • FLAC(.flac)
  • MPEG-4(.mp4、.m4a、デコードのみ)
  • Matroska(.mkv、デコードのみ)
MP3 モノラル / ステレオの 8~320 Kbps 固定ビットレート(CBR)または可変ビットレート(VBR)
  • MP3(.mp3)
  • MPEG-4(.mp4、.m4a、デコードのみ)
  • Matroska(.mkv、デコードのみ)
MIDI MIDI タイプ 0 と 1。DLS バージョン 1 と 2。XMF と Mobile XMF。着信音形式 RTTTL/RTX、OTA、iMelody をサポート。
  • タイプ 0 と 1(.mid、.xmf、.mxmf)
  • RTTTL/RTX(.rtttl、.rtx)
  • iMelody(.imy)
Vorbis デコード: サンプリング レート 8,000、12,000、16,000、24,000、48,000 Hz のモノラル、ステレオ、5.0、5.1 のコンテンツをサポート。
エンコード: サンプリング レート 8,000、12,000、16,000、24,000、48,000 Hz のモノラル、ステレオのコンテンツをサポート。
  • Ogg(.ogg)
  • MPEG-4(.mp4、.m4a、デコードのみ)
  • Matroska(.mkv)
  • Webm(.webm)
PCM(WAVE) PCM コーデックは 16 ビットのリニア PCM と 16 ビット浮動小数点をサポートしなければなりません。WAVE エクストラクタは 16 ビット、24 ビット、32 ビットのリニア PCM と 32 ビット浮動小数点をサポートしなければなりません(最大レートはハードウェアの上限値)。サンプリング レートは 8 kHz から 192 kHz までをサポートしなければなりません。 WAVE(.wav)
Opus デコード: サンプリング レート 8,000、12,000、16,000、24,000、48,000 Hz のモノラル、ステレオ、5.0、5.1 のコンテンツをサポート。
エンコード: サンプリング レート 8,000、12,000、16,000、24,000、48,000 Hz のモノラル、ステレオのコンテンツをサポート。
  • Ogg(.ogg)
  • MPEG-4(.mp4、.m4a、デコードのみ)
  • Matroska(.mkv)
  • Webm(.webm)

5.5. オーディオの再生

5.5.4. オーディオ オフロード

オーディオ オフロード再生をサポートする場合、デバイス実装は:

Android 16 で追加された要件の開始

  • [C-SR-2] AAC、MP3、OPUS、PCM 形式のオフロード再生を実装することを強く推奨します。

5.6. オーディオの再生

Android 16 で変更された要件の開始
デバイスと宣言 RTL(ミリ秒) MAD(ミリ秒) ループバック パス
ハンドヘルド 250 200 30 25 スピーカー / マイク、アナログ 3.5 mm(サポートされている場合)、USB(サポートされている場合)
>= MPC_T (13) 80 15 少なくとも 1 つのパス
FEATURE_AUDIO_LOW_LATENCY 50 10 少なくとも 1 つのパス
FEATURE_AUDIO_PRO 25 5 少なくとも 1 つのパス
FEATURE_AUDIO_PRO 20 5 アナログ(サポートされている場合)
FEATURE_AUDIO_PRO 25 5 USB(アナログがサポートされていない場合)

5.12. HDR 動画

デバイス実装に FEATURE_HdrEditing をサポートするコーデックが含まれる場合、デバイスは:

Android 16 で追加された要件の開始

HDR ディスプレイの要件

デバイス実装が ADATASPACE_TRANSFER_HLG でエンコードされたバッファ コンテンツを受け取り、そのコンテンツが SurfaceControl.Transaction#setBuffer を通じてディスプレイに送信される場合、以下の要件が適用されます。

  • [C-8-1] BT.2408-7 のグラフィック ホワイトに関する推奨事項に従わなければなりません。また、そのコンテンツを表示する際は必ず、最大で SDR コンテンツの 4.926 倍の大きさにしなければなりません。

6. デベロッパー ツール、開発者向けオプションの互換性

6.1. デベロッパー ツール

デバイス実装は:

Android 16 で変更された要件の開始

  • [C-0-10] 次のイベントを省略せずに記録し、cmd stats シェルコマンドと StatsManager システム API クラスからアクセスして利用できるようにしなければなりません。
    • ActivityForegroundStateChanged
    • AnomalyDetected
    • AppBreadcrumbReported
    • AppCrashOccurred
    • AppStartOccurred
    • BatteryLevelChanged
    • BatterySaverModeStateChanged
    • BleScanResultReceived
    • BleScanStateChanged
    • ChargingStateChanged
    • DeviceIdleModeStateChanged
    • ForegroundServiceStateChanged
    • GpsScanStateChanged
    • InputDeviceUsageReported
    • JobStateChanged
    • KeyboardConfigured
    • KeyboardSystemsEventReported
    • PluggedStateChanged
    • PressureStallInformation
    • ScheduledJobStateChanged
    • ScreenStateChanged
    • SyncStateChanged
    • SystemElapsedRealtime
    • TouchpadUsage
    • UidProcessStateChanged
    • WakelockStateChanged
    • WakeupAlarmOccurred
    • WifiLockStateChanged
    • WifiMulticastLockStateChanged
    • WifiScanStateChanged

7. ハードウェアの互換性

7.1. ディスプレイとグラフィック

7.1.3. 画面の向き

画面の向きを両方ともサポートする場合、デバイス実装は:

Android 16 で削除された要件の開始

  • [C-1-1] アプリが画面の向きを動的に横向きまたは縦向きに変更することをサポートしなければなりません。つまり、デバイスは、特定の画面の向きに関するアプリのリクエストを尊重しなければなりません。

7.3. センサー

7.3.5. 気圧計

Android 16 で追加された要件の開始

システム プロパティ sensor.barometer.high_quality.implemented を宣言しているデバイス実装は:

  • [C-2-1] 300 hPa から 1100 hPa までの圧力測定値を、絶対正確度 +/- 1 hPa でレポートしなければなりません。

  • [C-2-2] 相対正確度は 100 hPa の範囲で 0.15 hPa でなければなりません。これは、海面における ~1000 m の変化で正確度 ~1 m に相当します。

  • [C-2-3] ユーザーがデバイスをタップ、スクイーズ、または押したときは、+/- 0.5 hPa の範囲で安定していなければなりません。

  • [C-2-4] ユーザーがデバイスを手またはポケットで持ち歩いているときは、+/- 0.15 hPa の範囲で安定していなければなりません。

  • [C-2-5] 5 Hz を超える有効化において 300 ms を超える時定数で平滑化してはなりません。また、センサーの有効化を超えて平滑化を漏洩させてはなりません。

  • [C-2-6] 日常的な照明や、一般的なソース(Bluetooth、モバイル接続、Wi-Fi など)により導入された無線周波数にさらされるときは、+/- 0.15 hPa の範囲で安定していなければなりません。

7.3.14. カスタム センサー [新規セクション]

Android 16 で追加された要件の開始

差別化されたエクスペリエンスを提供できるようにするため、Android または Wear OS の対象でない追加のセンサーをデバイス実装に含め、プリロードされたアプリからアクセスしても構いません。

このようなセンサーのセンサー ID は:

  • [C-0-1] 65536 より大きな値にしなければなりません。

カスタム センサーを健康またはフィットネス関連の目的に使用する場合、そのセンサーを:

  • [C-0-2] プラットフォーム権限またはシステム権限で保護しなければなりません。

7.4. データ接続

7.4.3. Bluetooth

FEATURE_BLUETOOTH_LE を宣言する場合、デバイス実装は:

Android 16 で追加された要件の開始

FEATURE_BLUETOOTH_LE_CHANNEL_SOUNDING を宣言する場合、デバイス実装は:

  • [C-11-1] ハードウェア機能フラグ android.hardware.bluetooth_le.channel_sounding をレポートしなければなりません。

  • [C-11-2] 1 m の距離における範囲を累積分布関数で計算し、90 パーセンタイルで正確度 +/- 0.5 m 以内でレポートしなければなりません。

7.5. カメラ

Android 16 で追加された要件の開始

デバイス実装にカメラが 1 つ以上含まれ、プリインストールされたカメラアプリが MediaStore.ACTION_MOTION_PHOTO_CAPTURE インテントまたは MediaStore.ACTION_MOTION_PHOTO_CAPTURE_SECURE インテントを処理する場合、デバイス実装は:

  • [C-1-4] これらのインテントを処理する際、ACCESS_FINE_LOCATION 権限のないアプリに送信する前に、画像メタデータ内のユーザーの位置情報がプリインストールされたカメラアプリによって削除されるようにしなければなりません。

  • [C-1-5] 返されたモーション フォトがモーション フォト形式 1.0 仕様を使用していることを確認しなければなりません。

9. セキュリティ モデルの互換性

9.1. 権限

Android 16 で追加された要件の開始

デバイスに、健康に関連する生体認証データ(心拍数、皮膚温など)を公開するデータ センサーが含まれている場合、それらの生体認証データには以下の要件が適用されます。

  • [C-0-16] 対応する権限が HealthPermissions にある場合は、android.permission-group.HEALTH からのプラットフォーム権限で保護しなければなりません。

  • [C-0-17] 目的のデータ・タイプに該当するプラットフォーム権限がない場合は、カスタムのシステム権限(たとえば ELECTROCARDIOGRAM)で保護しなければなりません。

Android 16 で変更された要件の開始

android.software.managed_users をレポートする場合、デバイスは:

  • [C-1-1] 次の権限が管理者によって暗黙的に付与されてはなりません。

    • 位置情報(ACCESS_BACKGROUND_LOCATIONACCESS_COARSE_LOCATIONACCESS_FINE_LOCATION
    • カメラ(CAMERA
    • マイク(RECORD_AUDIO
    • ボディセンサー(BODY_SENSORS
    • 健康(HealthPermissions
    • 身体活動(ACTIVITY_RECOGNITION

9.5. マルチユーザー サポート

Android 16 で追加された要件の開始

デバイス実装で上記の追加プロファイルを作成した場合に、デバイス実装にカメラが 1 つ以上含まれ、プリインストールされたカメラアプリが MediaStore.ACTION_MOTION_PHOTO_CAPTURE インテントまたは MediaStore.ACTION_MOTION_PHOTO_CAPTURE_SECURE インテントを処理する場合、デバイス実装は:

  • [C-5-1] 追加のユーザー プロファイルからのこれらのインテントの処理を、プライマリ ユーザーのアプリに許可しなければなりません。

9.7. セキュリティ機能

カーネルの整合性と自己保護機能は Android のセキュリティに不可欠です。デバイス実装は:

Android 16 で変更された要件の開始

  • [C-0-8] 実行可能コードが読み取り専用、読み取り専用データが実行不可かつ書き込み不可、書き込み可能データが実行不可である場合、厳格なカーネルメモリ保護を実装しなければなりません(例: CONFIG_DEBUG_RODATA または CONFIG_STRICT_KERNEL_RWX(例: rodataCONFIG_STRICT_KERNEL_RWX の両方が有効である

9.8. プライバシー

9.8.2. 記録

デバイス実装は:

Android 16 で変更された要件の開始

Android 16 で削除された要件の開始

9.11. 鍵と認証情報

セキュアロック画面をサポートする場合、デバイス実装は:

Android 16 で変更された要件の開始

  • [C-1-6] 次のいずれかをサポートしなければなりません。

    • IKeymasterDevice 3.0、
    • IKeymasterDevice 4.0、
    • IKeymasterDevice 4.1、
    • IKeyMintDevice version 1、または
    • IKeyMintDevice version 2。

  • [C-1-6] IKeymasterDevice 3.0 以上、または IKeyMintDevice バージョン 1 以上をサポートしなければなりません。

  • [C-SR-1] IKeyMintDevice バージョン 1 をサポートすることが強く推奨されます。

9.11.1. セキュアロック画面、認証、仮想デバイス

アプリによるセカンダリ仮想ディスプレイの作成を許可し、関連する入力イベント(VirtualDeviceManager 経由など)をサポートする場合、デバイス実装は:

Android 16 で削除された要件の開始

  • [C-10-2] アイドル タイムアウト時にすべての仮想デバイスを切断しなければなりません。

  • [C-10-3] アイドル タイムアウトがなければなりません。

Android 16 で削除された要件の開始

  • [C-10-7] 次のいずれかでなければなりません。

    • クリップボードの使用を無効にする
    • クリップボードをサポートするデバイスごとに、個別のクリップボードを有効にする

Android 16 で変更された要件の開始

  • [C-10-15] デバイス間でクリップボードのデータがアクセスされた場合、通知しなければならず、最初の共有時間から 1 分が経過するとコンテンツにアクセスできないようにしなければなりません。

  • [C-10-15] クリップボードのデータが、アクセス元のデバイスとクリップボードの保存元デバイスの両方からアクセスされた場合は、通知しなければなりません。

9.18. デベロッパーの確認 [新規セクション]

Android 16 で追加された要件の開始

API レベル 36.1 以上を宣言する場合、デバイス実装は:

  • 既知のデベロッパーがアプリの提供元であることを証明するためにデベロッパー確認サービスのサポートを含めても構いません。

API レベル 36.1 以上を宣言し、config.xmlconfig_developerVerificationServiceProviderPackageName を定義してデベロッパー確認ツールを設定する場合、デバイス実装は:

  • [9.18/C-1-1] 新規インストールと既存のアプリのアップデートの両方を含む、アプリ パッケージのインストールごとに、設定済みの android.content.pm.verify.developer.DeveloperVerifierService を呼び出さなければなりません。

API レベル 36.1 以上を宣言する場合、デバイス実装は:

  • config.xmlconfig_developerVerificationPolicyDelegatePackageName を定義して、アクティブなポリシーを設定するためのデリゲートも設定しても構いません。

デベロッパー確認ツールが設定されている場合、デバイス実装は:

  • [9.18/C-2-1] android.content.pm.PackageInstaller で定義されているとおり、デベロッパー確認ツールまたはその設定済みのデリゲートのみがインストール ポリシーを設定できるようにしなければなりません。

パッケージ インストール セッションの一部として確認ツールが呼び出された場合、デバイス実装は:

  • [9.18/C-3-1] 次の場合はアプリ パッケージをインストールできないようにしなければなりません。

    • インストールでデベロッパーの身元確認に失敗した場合。
    • インストール セッションのデベロッパーの確認ポリシーが DEVELOPER_VERIFICATION_POLICY_NONE 以外の値に設定されている場合。
    • 9.18/C-3-2 または 9.18/C-3-3 のいずれかが適用される場合を除きます。
  • [9.18/C-3-2] 次の場合はポリシーや確認ステータスに関係なく、アプリ パッケージをインストールできないようにしてはなりません。

    • パッケージが Android Debug Bridge(ADB)を介してインストールされる場合。
    • パッケージが、設定済みのデベロッパー確認ツールまたはそのインストーラである場合。
  • [9.18/C-3-3] 次の条件をすべて満たす場合は、アプリ パッケージをインストールできないようにしてはなりません。

    • ポリシーが DEVELOPER_VERIFICATION_POLICY_BLOCK_FAIL_WARN または DEVELOPER_VERIFICATION_POLICY_BLOCK_FAIL_OPEN に設定されている場合。
    • 確認が未完了と報告されている場合。
    • インストーラが、DEVELOPER_VERIFICATION_USER_RESPONSE_INSTALL_ANYWAY をレポートして、ユーザーがインストールの続行を明示的にリクエストしたことを示している場合。
  • 管理対象デバイスのデバイス オーナーまたは管理対象プロファイルのプロファイル オーナーによって開始されたインストールについては、ポリシーや確認ステータスに関係なく、アプリ パッケージのインストールを許可しても構いませんが、9.18/C-3-1 で説明されているように、インストールできないようにすることが強く推奨されます。