内核配置

您可以将以下配置设置用作 Android 内核配置的基础。设置会整理到 android-baseandroid-base-<arch>android-recommended.cfg 文件中:

  • android-base。这些选项可实现核心 Android 功能,并且应配置为所有设备指定的选项。
  • android-base-<arch>。这些选项可实现核心 Android 功能,并且应配置为架构 <arch> 的所有设备指定的选项。并非所有架构都具有相应的特定于架构的必需选项文件。如果您的架构没有相应文件,则它没有任何额外特定于架构的 Android 内核配置要求。
  • android-recommended。这些选项可实现高级 Android 功能,设备可选择性启用。

这些配置文件位于 kernel/configs repo 中。使用一组对应您正在使用的内核版本的配置文件。

如需详细了解已用于加强设备内核的控件,请参阅系统和内核安全。如需详细了解必需的设置,请参阅 Android 兼容性定义文档 (CDD)

生成内核配置

对于具有极简 defconfig 的设备,您可以在内核树中使用 merge_config.sh 脚本来启用选项:

ARCH=<arch> scripts/kconfig/merge_config.sh <...>/device_defconfig <...>/android-base.cfg <...>/android-base-<arch>.cfg <...>/android-recommended.cfg

这会生成一个 .config 文件,您可以使用该文件来保存新的 defconfig 或编译一个启用 Android 功能的新内核。

启用 USB 主机模式选项

对于 USB 主机模式音频,请启用以下选项:

CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=y
# CONFIG_USB_AUDIO is for a peripheral mode (gadget) driver

对于 USB 主机模式 MIDI,请启用以下选项:

CONFIG_SND_USB_MIDI=y

Seccomp-BPF 与 TSYNC

Seccomp-BPF 是一种内核安全技术,支持创建沙盒来限制进程可以进行的系统调用。TSYNC 功能可以实现从多线程程序中使用 Seccomp-BPF。这种能力仅限具有 seccomp 支持上游的架构:ARM、ARM64、x86 和 x86_64。

用于 ARM-32、X86、X86_64 的内核 3.10 向后移植

确保已在 Kconfig 中启用 CONFIG_SECCOMP_FILTER=y(截至 Android 5.0 CTS 已验证),然后择优挑选来自 AOSP kernel/common:android-3.10 代码库的以下变更:9499cd23f9d05ba159fac6d55dc35a7f49f9ce76..a9ba4285aa5722a3b4d84888e78ba8adc0046b28

用于 ARM-64 的内核 3.10 向后移植

确保 Kconfig 中已启用 CONFIG_SECCOMP_FILTER=y(截至 Android 5.0 CTS 已验证),然后择优挑选来自 AOSP kernel/common:android-3.10 存储区的以下变更: