Google is committed to advancing racial equity for Black communities. See how.

Core Kernel Requirements

Android 8.0 and higher mandate a minimum kernel version and kernel configuration that is verified by the Vendor Test Suite (VTS) and over-the-air (OTA) updates. Android device kernels must enable kernel .config support and the option to read the kernel configuration at runtime through procfs.

Kernel .config support

All device kernels must enable the entirety of android-base.cfg, which must include the following kernel-config options (or their kernel-version equivalent):

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y

Kernel version

For Android 9, the minimum Long Term Support (LTS) kernel version requirements are 4.4.107, 4.9.84, and 4.14.42.

  • All system-on-chips (SoCs) productized in 2018 must launch with kernel 4.9.84 or newer.
  • All other SoCs launching Android devices running Android 9 must use kernel 4.4.107 or higher.
  • Device kernels based on 4.14 must include the 4.14.42 or higher LTS release.
  • Regardless of launch date, all SoCs with device launches on Android 8.0 and higher remain subject to the kernel changes required to enable Treble.
  • Older Android devices upgrading to Android 8.0 or higher can continue to use their original base kernel version.

For details on LTS kernels, see Long-term stable kernels and Android Common Kernels

Devicetree support

If the platform doesn't support Advanced Configuration and Power Interface (ACPI), devicetree support in the kernel must be enabled and bootloaders must pass the hardware description in the form of a devicetree to the kernel. The devicetree must also be available for Android to read and be able to pass vendor- and ODM-specific parameters to Android. CONFIG_OF is mandatory, along with all other device- and subsystem-specific CONFIG_OF_* kernel config options.

DebugFS

The implementation of the vendor interface can't rely on debugfs. In Android 7.0–10, debugfsmay be enabled, but VTS testing may be done with debugfs unmounted.

In Android 11, debugfs can't be accessed or mounted on production devices. Device manufacturers should remove debugfs. Before Android 11, dumpstate accessed binder statistics from debugfs. Because user builds launching with Android 11 can no longer access debugfs dumpstate can now also access binder statistics from binderfs. Binderfs can be enabled by enabling the kernel config CONFIG_ANDROID_BINDERFS.

In Android 11 , VTS enforces that CONFIG_DEBUG_FS isn't enabled in the device’s kernel config and debugfs isn't listed under /proc/filesystems.