内核配置

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

  • android-base。这些选项可实现核心 Android 功能,所有设备都应该启用。
  • android-recommended。这些选项可实现高级 Android 功能,设备可选择性启用。

android-base.cfg 和 android-recommended.cfg 文件均位于 android-common 内核 Repo: https://android.googlesource.com/kernel/common/

上游 Linux 内核 4.8 版本中为内核配置片段指定了新的位置 (kernel/configs)。对于基于版本 4.8 或更高版本的分支,Android 基础和建议的配置片段位于该目录中。对于基于版本 4.8 之前版本的内核分支,配置片段位于 android/ 目录中。

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

生成内核配置

对于具有极简 defconfig 的设备,您可以使用以下命令来启用选项:

ARCH=arch scripts/kconfig/merge_config.sh path/device_defconfig android/configs/android-base.cfg android/configs/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 存储区的以下变更: