利用Android提供的mk文件进行内核头文件的提取
在Android AOSP中,可以通过mk文件来提取内核头文件。具体步骤如下:
示例代码如下:
# 定义要使用的内核版本和CPU架构
KERNEL_VERSION := android3.18
ARCH := arm64
# 引入内核Makefile进行编译
include $(ANDROID_BUILD_TOP)/kernel/configs/$(KERNEL_VERSION)/Makefile
# 定义输出目录
KERNEL_OUT := $(ANDROID_HOST_OUT)/kernel-$(KERNEL_VERSION)-$(ARCH)
# 编译内核头文件
$(call populating_headers,$(KERNEL_ARCH_HEADER_DIR)/asm)
$(call populating_headers,$(KERNEL_ARCH_HEADER_DIR)/asm-generic)
$(call populating_headers,$(KERNEL_ARCH_HEADER_DIR)/generated)
$(call populating_headers,$(KERNEL_HEADERS_DIR)/linux)
$(call populating_headers,$(KERNEL_HEADERS_DIR)/rdma)
$(call populating_headers,$(KERNEL_HEADERS_DIR)/uapi)
$(call populating_headers,$(KERNEL_HEADERS_DIR)/asm-x86)
# 拷贝内核头文件到输出目录
adb pull $KERNEL_OUT/header_arch/$(ARCH)/include