コアカーネルの要件

Android 8.0 以上では、ベンダー テストスイート(VTS)と無線(OTA)アップデートにおいて、最小カーネル バージョンと最小カーネル構成の検証が求められます。Android デバイス カーネルで、カーネル .config のサポートと、実行時に procfs ファイル システムからカーネル構成を読み取るオプションを有効にする必要があります。

カーネル .config のサポート

すべてのデバイス カーネルで、android-base.cfg 全体を有効にする必要があります。これは、以下の kernel-config オプション(またはこれに相当する kernel-version)を含んでいなければなりません。

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y

カーネル バージョン

Android 9 の場合、必要とされる最小 LTS(長期サポート)カーネル バージョンは、4.4.107、4.9.84、4.14.42 です。

  • 2018 年に製品化される SoC はすべて、カーネル 4.9.84 以上でリリースする必要があります。
  • Android 9 を搭載した Android デバイスでリリースするその他のすべての SoC では、カーネル 4.4.107 以上を使用する必要があります。
  • 4.14 ベースのデバイス カーネルには、4.14.42 以上の LTS リリースが含まれている必要があります。
  • リリース日にかかわらず、Android 8.0 以上を搭載したデバイスでリリースするすべての SoC では、Treble の有効化に必要なカーネルの変更を適用しなければなりません。
  • Android 8.0 以上にアップグレードされた古い Android デバイスでは、引き続き元のベースカーネル バージョンを使用できます。

LTS カーネルの詳細については、長期安定版カーネルAndroid の共通カーネルをご覧ください。

devicetree のサポート

プラットフォームが ACPI(Advanced Configuration and Power Interface)仕様をサポートしていない場合は、カーネルで devicetree のサポートを有効にして、ブートローダーがハードウェア記述を devicetree の形式でカーネルに渡す必要があります。また、devicetree は、Android による読み取りが可能で、ベンダー / ODM に固有のパラメータを Android に渡すことができなければなりません。CONFIG_OF は必須であり、デバイス / サブシステムに固有の他の CONFIG_OF_* カーネル構成オプションもすべて必須です。

DebugFS の使用

デバッグ情報にアクセスするために、ベンダー インターフェースの実装が DebugFS ファイル システムに依存しないようにしてください。Android 7.0~10 では、DebugFS を有効にすることはできますがDebugFS をマウントしなくても VTS テストは実施可能だからです。

Android 11 では、製品版デバイスで DebugFS にアクセスしたりマウントしたりすることはできないため、デバイス メーカーはこれを削除する必要があります。Android 11 より前では、dumpstateDebugFS からバインダー統計情報にアクセスしていました。Android 11 以上を搭載したユーザービルドは DebugFS にアクセスできないため、dumpstatebinderfs からバインダー統計情報にアクセスします。Binderfs を有効にするには、カーネル構成 CONFIG_ANDROID_BINDERFS を有効にします

Android 11 では、VTS に次の 2 つの要件が適用されます。

  • デバイスのカーネル構成で CONFIG_DEBUG_FS が有効になっていない。
  • DebugFS/proc/filesystems に表示されない。

Android 11 の DebugFS

次の表に、Android 11 でこの 3 つのカテゴリがそれぞれどのようにサポートされるかを示します。ユーザービルドには DebugFS をマウントできないため、以下は userdebug ビルドのみ該当します。Android 11 を搭載してリリースするデバイスのユーザービルドには DebugFS をマウントしないでください

ユースケース Android 11 の userdebug ビルド
1 回限りの DebugFS ファイルの初期化(起動中): このアクセスは起動中に 1 回だけ行われます ベンダー init が、初期化を行います。
バグレポートの生成: dumpstate HAL がバグレポートの一部となる DebugFS ファイルを読み取ります。 dumpstate ツールによって呼び出されたときに、DumpstateBoard() 内の dumpstate HAL が実行します。
デバイス固有のテストと検証 adb の root とシェル