写给应用开发的 Android Framework 教程——HAL与硬件服务篇之 Kernel 下载与编译

1,972 阅读2分钟

写给应用开发的 Android Framework 教程是一个系列教程,目前已更新以下内容:

1. 内核下载

下载适用于模拟器的内核


git clone https://aosp.tuna.tsinghua.edu.cn/android/kernel/goldfish.git

#查看分支

git branch -a

git checkout android-goldfish-4.14-gchips 

编译脚本:


#!/bin/bash

export ARCH=x86_64

export SUBARCH=x86_64

export CROSS_COMPILE=x86_64-linux-android-

export PATH=android源码目录/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/bin:$PATH

make x86_64_ranchu_defconfig

make -j16

将上面的内容保存为 build.sh 脚本文件。执行 sh build.sh 开始编译。

编译有错误修改代码:

  • 删除 scripts/selinux/mdp/mdp.c 文件中的 #include <sys/socket.h>
  • 删除 scripts/selinux/genheaders/genheaders.c 文件中的 #include <sys/socket.h>
  • 在 security/selinux/include/classmap.h 头部添加 #include <linux/socket.h>

执行编译脚本 sh build.sh 即可编译成功

2. 自定义内核启动

启动之前,需要把之前启动的模拟器和启动模拟器的终端都关掉。


source build/envsetup.sh

lunch aosp_x86_64-eng

emulator -kernel 内核地址/goldfish/arch/x86/boot/bzImage

启动成功,打开模拟器设置页面,进入版本信息。

image.png

可以看到 Kernel version 项里,已经是最新编译的内核版本了。