Android 8.0 introduced a modular kernel, splitting the device kernel into a system-on-chip (SoC), device, and board-specific deliverables. This change made it possible for original device manufacturers (ODMs) and original equipment manufacturers (OEMs) to work in isolated, board-specific trees for board-specific features and drivers, enabling them to override common kernel configurations, add new drivers in the form of kernel modules, etc.
Modular kernel support in Android includes the following:
- Platform support for independent SoC and OEM/ODM kernel development. Android 9 and higher recommends building and shipping all board-specific code as kernel modules in devices. As a result:
- Application binary interface (ABI)/application programming interface (API) tests in Vendor Test Suite (VTS). These tests ensure that a given kernel can run the Android Open Source Project (AOSP) framework.
- Minimum kernel version per Android release.
- Support for generating Android Vendor Interface (VINTF) kernel objects.